--- /dev/null
+Support installation of .a file when doing static linking
+
+When doing static linking (i.e ENABLE_SHARED != yes), the acl build
+logic wasn't installing any library at all, not even the .a file which
+is needed for static linking. This patch fixes that.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/include/buildmacros
+===================================================================
+--- a/include/buildmacros
++++ b/include/buildmacros
+@@ -97,7 +97,15 @@
+
+ INSTALL_LTLIB_STATIC = \
+ cd $(TOPDIR)/$(LIBNAME)/.libs; \
+- ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR);
++ ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR); \
++ ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).la $(PKG_DEVLIB_DIR); \
++ ../$(INSTALL) -m 644 $(LIBNAME).la $(PKG_DEVLIB_DIR)/$(LIBNAME).la ; \
++ ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
++ ../$(INSTALL) -T so_base $(LIBNAME).la $(PKG_LIB_DIR); \
++ if test "x$(PKG_DEVLIB_DIR)" != "x$(PKG_LIB_DIR)" ; then \
++ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \
++ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \
++ fi
+
+ INSTALL_MAN = \
+ @for d in $(MAN_PAGES); do \
+++ /dev/null
-Support installation of .a file when doing static linking
-
-When doing static linking (i.e ENABLE_SHARED != yes), the acl build
-logic wasn't installing any library at all, not even the .a file which
-is needed for static linking. This patch fixes that.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/include/buildmacros
-===================================================================
---- a/include/buildmacros
-+++ b/include/buildmacros
-@@ -97,7 +97,15 @@
-
- INSTALL_LTLIB_STATIC = \
- cd $(TOPDIR)/$(LIBNAME)/.libs; \
-- ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR);
-+ ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR); \
-+ ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).la $(PKG_DEVLIB_DIR); \
-+ ../$(INSTALL) -m 644 $(LIBNAME).la $(PKG_DEVLIB_DIR)/$(LIBNAME).la ; \
-+ ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
-+ ../$(INSTALL) -T so_base $(LIBNAME).la $(PKG_LIB_DIR); \
-+ if test "x$(PKG_DEVLIB_DIR)" != "x$(PKG_LIB_DIR)" ; then \
-+ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \
-+ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \
-+ fi
-
- INSTALL_MAN = \
- @for d in $(MAN_PAGES); do \
--- /dev/null
+Partially roll back upstream commit 4711119089e1ad08dad206f4fded68f1972fdeed
+since released versions of uClibc don't support isfdtype().
+
+Signed-off-by: Gustavo Zaarias <gustavo@zacarias.com.ar>
+
+diff -Nura acpid-2.0.22.orig/sock.c acpid-2.0.22/sock.c
+--- acpid-2.0.22.orig/sock.c 2014-04-22 18:04:19.706841764 -0300
++++ acpid-2.0.22/sock.c 2014-04-22 18:05:08.285479625 -0300
+@@ -53,7 +53,10 @@
+ int
+ is_socket(int fd)
+ {
+- return (isfdtype(fd, S_IFSOCK) == 1);
++ int v;
++ socklen_t l = sizeof(int);
++
++ return (getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&v, &l) == 0);
+ }
+
+ /* accept a new client connection */
--- /dev/null
+Add missing MSG_CMSG_CLOEXEC
+
+Unpatched uClibc toolchains, even using the latest 0.9.33.2, do not
+have the MSG_CMSG_CLOEXEC definition. Even though the Buildroot
+internal toolchain backend has a uClibc patch to provide it, it
+doesn't apply to external toolchains. This patch provides the
+definition of MSG_CMSG_CLOEXEC.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/libnetlink.h
+===================================================================
+--- a/libnetlink.h
++++ b/libnetlink.h
+@@ -7,6 +7,10 @@
+ #include <linux/netlink.h>
+ #include <linux/rtnetlink.h>
+
++#ifndef MSG_CMSG_CLOEXEC
++#define MSG_CMSG_CLOEXEC 0x40000000
++#endif
++
+ struct rtnl_handle
+ {
+ int fd;
+Index: b/kacpimon/libnetlink.h
+===================================================================
+--- a/kacpimon/libnetlink.h
++++ b/kacpimon/libnetlink.h
+@@ -7,6 +7,10 @@
+ #include <linux/netlink.h>
+ #include <linux/rtnetlink.h>
+
++#ifndef MSG_CMSG_CLOEXEC
++#define MSG_CMSG_CLOEXEC 0x40000000
++#endif
++
+ struct rtnl_handle
+ {
+ int fd;
+++ /dev/null
-Partially roll back upstream commit 4711119089e1ad08dad206f4fded68f1972fdeed
-since released versions of uClibc don't support isfdtype().
-
-Signed-off-by: Gustavo Zaarias <gustavo@zacarias.com.ar>
-
-diff -Nura acpid-2.0.22.orig/sock.c acpid-2.0.22/sock.c
---- acpid-2.0.22.orig/sock.c 2014-04-22 18:04:19.706841764 -0300
-+++ acpid-2.0.22/sock.c 2014-04-22 18:05:08.285479625 -0300
-@@ -53,7 +53,10 @@
- int
- is_socket(int fd)
- {
-- return (isfdtype(fd, S_IFSOCK) == 1);
-+ int v;
-+ socklen_t l = sizeof(int);
-+
-+ return (getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&v, &l) == 0);
- }
-
- /* accept a new client connection */
+++ /dev/null
-Add missing MSG_CMSG_CLOEXEC
-
-Unpatched uClibc toolchains, even using the latest 0.9.33.2, do not
-have the MSG_CMSG_CLOEXEC definition. Even though the Buildroot
-internal toolchain backend has a uClibc patch to provide it, it
-doesn't apply to external toolchains. This patch provides the
-definition of MSG_CMSG_CLOEXEC.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/libnetlink.h
-===================================================================
---- a/libnetlink.h
-+++ b/libnetlink.h
-@@ -7,6 +7,10 @@
- #include <linux/netlink.h>
- #include <linux/rtnetlink.h>
-
-+#ifndef MSG_CMSG_CLOEXEC
-+#define MSG_CMSG_CLOEXEC 0x40000000
-+#endif
-+
- struct rtnl_handle
- {
- int fd;
-Index: b/kacpimon/libnetlink.h
-===================================================================
---- a/kacpimon/libnetlink.h
-+++ b/kacpimon/libnetlink.h
-@@ -7,6 +7,10 @@
- #include <linux/netlink.h>
- #include <linux/rtnetlink.h>
-
-+#ifndef MSG_CMSG_CLOEXEC
-+#define MSG_CMSG_CLOEXEC 0x40000000
-+#endif
-+
- struct rtnl_handle
- {
- int fd;
--- /dev/null
+aiccu.h, common.c, common.h: fixes for deprecated GNUTLS functions and types
+resolver.c: fixes for selection of wrong resolver function under uclibc
+
+Signed-off-by: Michael Rommel <rommel@layer-7.net>
+
+diff -purN aiccu_20070115.orig/common/aiccu.h aiccu_20070115/common/aiccu.h
+--- aiccu_20070115.orig/common/aiccu.h 2007-01-15 13:01:43.000000000 +0100
++++ aiccu_20070115/common/aiccu.h 2013-08-31 23:50:53.651936146 +0200
+@@ -111,7 +111,7 @@ struct AICCU_conf
+ #endif
+
+ #ifdef AICCU_GNUTLS
+- gnutls_certificate_credentials tls_cred; /* GNUTLS credentials */
++ gnutls_certificate_credentials_t tls_cred; /* GNUTLS credentials */
+ #endif
+
+ bool daemonize; /* Daemonize? */
+diff -purN aiccu_20070115.orig/common/common.c aiccu_20070115/common/common.c
+--- aiccu_20070115.orig/common/common.c 2006-12-21 15:08:50.000000000 +0100
++++ aiccu_20070115/common/common.c 2013-09-01 01:21:36.031396740 +0200
+@@ -271,9 +271,8 @@ TLSSOCKET sock_alloc(void);
+ TLSSOCKET sock_alloc(void)
+ {
+ #ifdef AICCU_GNUTLS
+- /* Allow connections to servers that have OpenPGP keys as well */
+- const int cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
+ int ret;
++ const char *err;
+ #endif /* AICCU_GNUTLS*/
+
+ TLSSOCKET sock;
+@@ -297,11 +296,16 @@ TLSSOCKET sock_alloc(void)
+ }
+
+ /* Use default priorities */
+- gnutls_set_default_priority(sock->session);
+- /* XXX: Return value is not documented in GNUTLS documentation! */
+-
+- gnutls_certificate_type_set_priority(sock->session, cert_type_priority);
+- /* XXX: Return value is not documented in GNUTLS documentation! */
++ ret = gnutls_priority_set_direct(sock->session, "NORMAL", &err);
++ if (ret < 0)
++ {
++ if (ret == GNUTLS_E_INVALID_REQUEST)
++ {
++ dolog( LOG_ERR, "TLS set priority failed, syntax error at: %s\n", err);
++ }
++ free(sock);
++ return NULL;
++ }
+
+ /* Configure the x509 credentials for the current session */
+ gnutls_credentials_set(sock->session, GNUTLS_CRD_CERTIFICATE, g_aiccu->tls_cred);
+@@ -474,7 +478,7 @@ bool sock_gotls(TLSSOCKET sock)
+ }
+
+ /* Set the transport */
+- gnutls_transport_set_ptr(sock->session, (gnutls_transport_ptr)sock->socket);
++ gnutls_transport_set_ptr(sock->session, (gnutls_transport_ptr_t) sock->socket);
+
+ /* Perform the TLS handshake */
+ ret = gnutls_handshake(sock->session);
+diff -purN aiccu_20070115.orig/common/common.h aiccu_20070115/common/common.h
+--- aiccu_20070115.orig/common/common.h 2007-01-11 15:50:51.000000000 +0100
++++ aiccu_20070115/common/common.h 2013-08-31 23:26:13.683659455 +0200
+@@ -381,7 +381,7 @@ struct tlssocket
+ SOCKET socket;
+ #ifdef AICCU_GNUTLS
+ bool tls_active; /* TLS active? */
+- gnutls_session session; /* The GnuTLS sesision */
++ gnutls_session_t session; /* The GnuTLS sesision */
+ #endif
+ };
+
+diff -purN aiccu_20070115.orig/common/resolver.c aiccu_20070115/common/resolver.c
+--- aiccu_20070115.orig/common/resolver.c 2006-07-23 16:55:14.000000000 +0200
++++ aiccu_20070115/common/resolver.c 2013-08-31 23:44:31.574866862 +0200
+@@ -26,7 +26,7 @@
+
+ int getrrs(const char *label, int rrtype, void gotrec(unsigned int num, int type, const char *record))
+ {
+-#ifdef _LINUX
++#if defined(_LINUX) && !defined(__UCLIBC__)
+ struct __res_state res;
+ #endif
+ unsigned char answer[8192];
+@@ -38,7 +38,7 @@ int getrrs(const char *label, int rrtype
+ uint16_t type = 0, class = 0;
+ uint32_t ttl = 0;
+
+-#ifdef _LINUX
++#if defined(_LINUX) && !defined(__UCLIBC__)
+ memset(&res, 0, sizeof(res));
+ res.options = RES_DEBUG;
+ res_ninit(&res);
+@@ -47,7 +47,7 @@ int getrrs(const char *label, int rrtype
+ #endif
+
+ memset(answer, 0, sizeof(answer));
+-#ifdef _LINUX
++#if defined(_LINUX) && !defined(__UCLIBC__)
+ ret = res_nquery(&res, label, C_IN, rrtype, answer, sizeof(answer));
+ #else
+ ret = res_query(label, C_IN, rrtype, answer, sizeof(answer));
--- /dev/null
+Makefile: change LDFLAGS order on the compile line for --static
+
+Signed-off-by: Michael Rommel <rommel@layer-7.net>
+
+--- aiccu_20070115.orig/unix-console/Makefile 2007-01-15 12:04:27.000000000 +0100
++++ aiccu_20070115/unix-console/Makefile 2013-09-29 22:54:42.742963861 +0200
+@@ -144,7 +144,7 @@ endif
+ all: aiccu
+
+ aiccu: $(OBJS) ${SRCS} ${INCS}
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS)
++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)
+ ifeq ($(shell echo $(CFLAGS) | grep -c "DEBUG"),0)
+ ifeq ($(shell echo "$(RPM_OPT_FLAGS)" | wc -c),1)
+ strip $@
--- /dev/null
+aiccu: fix undefined reference to clock_* functions
+
+Since glibc 2.17 the clock_* suite functions are available directly in
+the main C library. For previous versions we still need -lrt to link.
+
+Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
+
+--- aiccu/unix-console/Makefile.orig 2014-01-14 10:17:20.204602513 +0000
++++ aiccu/unix-console/Makefile 2014-01-14 10:17:31.435777359 +0000
+@@ -42,7 +42,7 @@ CFLAGS += -D AICCU_CONSOLE
+ # Currently defaultly builds only on Linux, but other platforms might easily also support it
+ ifeq ($(shell uname | grep -c "Linux"),1)
+ CFLAGS += -D AICCU_GNUTLS
+-LDFLAGS += -lgnutls
++LDFLAGS += -lgnutls -lrt
+ endif
+
+ # Linux
+++ /dev/null
-aiccu.h, common.c, common.h: fixes for deprecated GNUTLS functions and types
-resolver.c: fixes for selection of wrong resolver function under uclibc
-
-Signed-off-by: Michael Rommel <rommel@layer-7.net>
-
-diff -purN aiccu_20070115.orig/common/aiccu.h aiccu_20070115/common/aiccu.h
---- aiccu_20070115.orig/common/aiccu.h 2007-01-15 13:01:43.000000000 +0100
-+++ aiccu_20070115/common/aiccu.h 2013-08-31 23:50:53.651936146 +0200
-@@ -111,7 +111,7 @@ struct AICCU_conf
- #endif
-
- #ifdef AICCU_GNUTLS
-- gnutls_certificate_credentials tls_cred; /* GNUTLS credentials */
-+ gnutls_certificate_credentials_t tls_cred; /* GNUTLS credentials */
- #endif
-
- bool daemonize; /* Daemonize? */
-diff -purN aiccu_20070115.orig/common/common.c aiccu_20070115/common/common.c
---- aiccu_20070115.orig/common/common.c 2006-12-21 15:08:50.000000000 +0100
-+++ aiccu_20070115/common/common.c 2013-09-01 01:21:36.031396740 +0200
-@@ -271,9 +271,8 @@ TLSSOCKET sock_alloc(void);
- TLSSOCKET sock_alloc(void)
- {
- #ifdef AICCU_GNUTLS
-- /* Allow connections to servers that have OpenPGP keys as well */
-- const int cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
- int ret;
-+ const char *err;
- #endif /* AICCU_GNUTLS*/
-
- TLSSOCKET sock;
-@@ -297,11 +296,16 @@ TLSSOCKET sock_alloc(void)
- }
-
- /* Use default priorities */
-- gnutls_set_default_priority(sock->session);
-- /* XXX: Return value is not documented in GNUTLS documentation! */
--
-- gnutls_certificate_type_set_priority(sock->session, cert_type_priority);
-- /* XXX: Return value is not documented in GNUTLS documentation! */
-+ ret = gnutls_priority_set_direct(sock->session, "NORMAL", &err);
-+ if (ret < 0)
-+ {
-+ if (ret == GNUTLS_E_INVALID_REQUEST)
-+ {
-+ dolog( LOG_ERR, "TLS set priority failed, syntax error at: %s\n", err);
-+ }
-+ free(sock);
-+ return NULL;
-+ }
-
- /* Configure the x509 credentials for the current session */
- gnutls_credentials_set(sock->session, GNUTLS_CRD_CERTIFICATE, g_aiccu->tls_cred);
-@@ -474,7 +478,7 @@ bool sock_gotls(TLSSOCKET sock)
- }
-
- /* Set the transport */
-- gnutls_transport_set_ptr(sock->session, (gnutls_transport_ptr)sock->socket);
-+ gnutls_transport_set_ptr(sock->session, (gnutls_transport_ptr_t) sock->socket);
-
- /* Perform the TLS handshake */
- ret = gnutls_handshake(sock->session);
-diff -purN aiccu_20070115.orig/common/common.h aiccu_20070115/common/common.h
---- aiccu_20070115.orig/common/common.h 2007-01-11 15:50:51.000000000 +0100
-+++ aiccu_20070115/common/common.h 2013-08-31 23:26:13.683659455 +0200
-@@ -381,7 +381,7 @@ struct tlssocket
- SOCKET socket;
- #ifdef AICCU_GNUTLS
- bool tls_active; /* TLS active? */
-- gnutls_session session; /* The GnuTLS sesision */
-+ gnutls_session_t session; /* The GnuTLS sesision */
- #endif
- };
-
-diff -purN aiccu_20070115.orig/common/resolver.c aiccu_20070115/common/resolver.c
---- aiccu_20070115.orig/common/resolver.c 2006-07-23 16:55:14.000000000 +0200
-+++ aiccu_20070115/common/resolver.c 2013-08-31 23:44:31.574866862 +0200
-@@ -26,7 +26,7 @@
-
- int getrrs(const char *label, int rrtype, void gotrec(unsigned int num, int type, const char *record))
- {
--#ifdef _LINUX
-+#if defined(_LINUX) && !defined(__UCLIBC__)
- struct __res_state res;
- #endif
- unsigned char answer[8192];
-@@ -38,7 +38,7 @@ int getrrs(const char *label, int rrtype
- uint16_t type = 0, class = 0;
- uint32_t ttl = 0;
-
--#ifdef _LINUX
-+#if defined(_LINUX) && !defined(__UCLIBC__)
- memset(&res, 0, sizeof(res));
- res.options = RES_DEBUG;
- res_ninit(&res);
-@@ -47,7 +47,7 @@ int getrrs(const char *label, int rrtype
- #endif
-
- memset(answer, 0, sizeof(answer));
--#ifdef _LINUX
-+#if defined(_LINUX) && !defined(__UCLIBC__)
- ret = res_nquery(&res, label, C_IN, rrtype, answer, sizeof(answer));
- #else
- ret = res_query(label, C_IN, rrtype, answer, sizeof(answer));
+++ /dev/null
-Makefile: change LDFLAGS order on the compile line for --static
-
-Signed-off-by: Michael Rommel <rommel@layer-7.net>
-
---- aiccu_20070115.orig/unix-console/Makefile 2007-01-15 12:04:27.000000000 +0100
-+++ aiccu_20070115/unix-console/Makefile 2013-09-29 22:54:42.742963861 +0200
-@@ -144,7 +144,7 @@ endif
- all: aiccu
-
- aiccu: $(OBJS) ${SRCS} ${INCS}
-- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS)
-+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)
- ifeq ($(shell echo $(CFLAGS) | grep -c "DEBUG"),0)
- ifeq ($(shell echo "$(RPM_OPT_FLAGS)" | wc -c),1)
- strip $@
+++ /dev/null
-aiccu: fix undefined reference to clock_* functions
-
-Since glibc 2.17 the clock_* suite functions are available directly in
-the main C library. For previous versions we still need -lrt to link.
-
-Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
-
---- aiccu/unix-console/Makefile.orig 2014-01-14 10:17:20.204602513 +0000
-+++ aiccu/unix-console/Makefile 2014-01-14 10:17:31.435777359 +0000
-@@ -42,7 +42,7 @@ CFLAGS += -D AICCU_CONSOLE
- # Currently defaultly builds only on Linux, but other platforms might easily also support it
- ifeq ($(shell uname | grep -c "Linux"),1)
- CFLAGS += -D AICCU_GNUTLS
--LDFLAGS += -lgnutls
-+LDFLAGS += -lgnutls -lrt
- endif
-
- # Linux
--- /dev/null
+diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h alsa-lib-1.0.18/src/pcm/pcm_local.h
+--- alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h 2009-01-31 11:02:12.000000000 +0100
++++ alsa-lib-1.0.18/src/pcm/pcm_local.h 2009-01-31 11:03:24.000000000 +0100
+@@ -611,6 +611,13 @@
+ snd_pcm_hw_param_t var);
+ int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params,
+ snd_pcm_hw_param_t var, unsigned int val, int dir);
++
++#if defined(AVR32_INLINE_BUG)
++int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
++ snd_pcm_format_t val);
++int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params,
++ snd_pcm_subformat_t val);
++#else
+ static inline int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
+ snd_pcm_format_t val)
+ {
+@@ -624,7 +631,7 @@
+ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT,
+ (unsigned long) val, 0);
+ }
+-
++#endif
+ int _snd_pcm_hw_param_set_min(snd_pcm_hw_params_t *params,
+ snd_pcm_hw_param_t var, unsigned int val, int dir);
+ int _snd_pcm_hw_param_set_max(snd_pcm_hw_params_t *params,
+diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c alsa-lib-1.0.18/src/pcm/pcm_route.c
+--- alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c 2009-01-31 11:02:12.000000000 +0100
++++ alsa-lib-1.0.18/src/pcm/pcm_route.c 2009-01-31 11:03:18.000000000 +0100
+@@ -26,6 +26,7 @@
+ *
+ */
+
++
+ #include <byteswap.h>
+ #include <math.h>
+ #include "pcm_local.h"
+@@ -106,6 +107,23 @@
+
+ #endif /* DOC_HIDDEN */
+
++
++#if defined(AVR32_INLINE_BUG)
++int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
++ snd_pcm_format_t val)
++{
++ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_FORMAT,
++ (unsigned long) val, 0);
++}
++
++int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params,
++ snd_pcm_subformat_t val)
++{
++ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT,
++ (unsigned long) val, 0);
++}
++#endif
++
+ static void snd_pcm_route_convert1_zero(const snd_pcm_channel_area_t *dst_area,
+ snd_pcm_uframes_t dst_offset,
+ const snd_pcm_channel_area_t *src_areas ATTRIBUTE_UNUSED,
+@@ -483,6 +501,8 @@
+ snd_pcm_uframes_t frames,
+ snd_pcm_route_params_t *params)
+ {
++#if defined(AVR32_INLINE_BUG)
++#endif
+ unsigned int dst_channel;
+ snd_pcm_route_ttable_dst_t *dstp;
+ const snd_pcm_channel_area_t *dst_area;
+@@ -551,8 +571,20 @@
+ _snd_pcm_hw_param_set_mask(sparams, SND_PCM_HW_PARAM_ACCESS,
+ &saccess_mask);
+ if (route->sformat != SND_PCM_FORMAT_UNKNOWN) {
++#if defined(AVR32_INLINE_BUG)
++/* Start of of problem */
++#endif
+ _snd_pcm_hw_params_set_format(sparams, route->sformat);
+ _snd_pcm_hw_params_set_subformat(sparams, SND_PCM_SUBFORMAT_STD);
++#if 0
++ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_FORMAT,
++ (unsigned long) route->sformat, 0);
++ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_SUBFORMAT,
++ (unsigned long) SND_PCM_SUBFORMAT_STD, 0);
++#endif
++#if defined(AVR32_INLINE_BUG)
++/* End of problem */
++#endif
+ }
+ if (route->schannels >= 0) {
+ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_CHANNELS,
--- /dev/null
+Don't use fork() on noMMU platforms
+
+[Gustavo: update patch for 1.0.28]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: alsa-lib-1.0.26/configure.ac
+===================================================================
+--- alsa-lib-1.0.26.orig/configure.ac 2012-09-06 10:55:14.000000000 +0200
++++ alsa-lib-1.0.26/configure.ac 2013-03-09 16:22:08.000000000 +0100
+@@ -66,6 +66,8 @@
+ AM_CONDITIONAL(ALSA_HSEARCH_R, [test "x$HAVE_HSEARCH_R" != xyes])
+ AC_CHECK_FUNCS([uselocale])
+
++AC_CHECK_FUNC([fork])
++
+ SAVE_LIBRARY_VERSION
+ AC_SUBST(LIBTOOL_VERSION_INFO)
+
+Index: alsa-lib-1.0.26/src/pcm/pcm_direct.c
+===================================================================
+--- alsa-lib-1.0.26.orig/src/pcm/pcm_direct.c 2012-09-06 10:55:14.000000000 +0200
++++ alsa-lib-1.0.26/src/pcm/pcm_direct.c 2013-03-09 16:22:51.000000000 +0100
+@@ -424,13 +424,21 @@
+ close(dmix->server_fd);
+ return ret;
+ }
+-
++
++#ifdef HAVE_FORK
+ ret = fork();
++#else
++ ret = vfork();
++#endif
+ if (ret < 0) {
+ close(dmix->server_fd);
+ return ret;
+ } else if (ret == 0) {
++#ifdef HAVE_FORK
+ ret = fork();
++#else
++ ret = vfork();
++#endif
+ if (ret == 0)
+ server_job(dmix);
+ _exit(EXIT_SUCCESS);
--- /dev/null
+alsa-lib: provide dummy definitions of RTLD_* if necessary
+
+The FLAT GNU toolchain (e.g. blackfin) doesn't include the dlfcn.h header
+file, so we need to guard that include. Additionally, provide dummy
+definitions for parameters RTLD_GLOBAL / RTLD_NOW which are normally
+provided by dlfcn.h.
+
+Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
+[Thomas: don't add separate dlmisc.h, move dummy defs to global.h]
+Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
+
+diff --git a/include/global.h b/include/global.h
+--- a/include/global.h
++++ b/include/global.h
+@@ -97,6 +97,16 @@ extern struct snd_dlsym_link *snd_dlsym_
+ /** \brief Returns the version of a dynamic symbol as a string. */
+ #define SND_DLSYM_VERSION(version) __STRING(version)
+
++/* RTLD_NOW and RTLD_GLOBAL (used for 'mode' in snd_dlopen) are not defined
++ * on all arches (e.g. blackfin), so provide a dummy definition here. */
++#ifndef RTLD_NOW
++#define RTLD_NOW 0
++#endif
++
++#ifndef RTLD_GLOBAL
++#define RTLD_GLOBAL 0
++#endif
++
+ void *snd_dlopen(const char *file, int mode);
+ void *snd_dlsym(void *handle, const char *name, const char *version);
+ int snd_dlclose(void *handle);
+diff --git a/modules/mixer/simple/sbasedl.c b/modules/mixer/simple/sbasedl.c
+--- a/modules/mixer/simple/sbasedl.c
++++ b/modules/mixer/simple/sbasedl.c
+@@ -27,7 +27,9 @@
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <math.h>
++#ifdef HAVE_LIBDL
+ #include <dlfcn.h>
++#endif
+ #include "config.h"
+ #include "asoundlib.h"
+ #include "mixer_abst.h"
+diff --git a/src/mixer/simple_abst.c b/src/mixer/simple_abst.c
+--- a/src/mixer/simple_abst.c
++++ b/src/mixer/simple_abst.c
+@@ -34,7 +34,9 @@
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <math.h>
++#ifdef HAVE_LIBDL
+ #include <dlfcn.h>
++#endif
+ #include "config.h"
+ #include "asoundlib.h"
+ #include "mixer_simple.h"
--- /dev/null
+alsa-lib: conditionally enable libdl in AM_PATH_ALSA m4 macro
+
+The AM_PATH_ALSA macro in utils/alsa.m4 unconditionally uses -ldl. This
+breaks compilation of alsa-utils (and probably other packages using this
+macro) for targets that do not support dynamic loading, such as for
+Blackfin FLAT binaries.
+
+This patch updates the macro to check if dlopen is available, and use that
+result to conditionally add -ldl to the list of libraries.
+
+Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
+
+---
+
+diff --git a/utils/alsa.m4 b/utils/alsa.m4
+--- a/utils/alsa.m4
++++ b/utils/alsa.m4
+@@ -44,6 +44,8 @@ if test "$alsa_inc_prefix" != "" ; then
+ fi
+ AC_MSG_RESULT($ALSA_CFLAGS)
+
++AC_CHECK_LIB(c, dlopen, LIBDL="", [AC_CHECK_LIB(dl, dlopen, LIBDL="-ldl")])
++
+ dnl add any special lib dirs
+ AC_MSG_CHECKING(for ALSA LDFLAGS)
+ if test "$alsa_prefix" != "" ; then
+@@ -52,7 +54,7 @@ if test "$alsa_prefix" != "" ; then
+ fi
+
+ dnl add the alsa library
+-ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl -lpthread"
++ALSA_LIBS="$ALSA_LIBS -lasound -lm $LIBDL -lpthread"
+ LIBS="$ALSA_LIBS $LIBS"
+ AC_MSG_RESULT($ALSA_LIBS)
+
+++ /dev/null
-diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h alsa-lib-1.0.18/src/pcm/pcm_local.h
---- alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h 2009-01-31 11:02:12.000000000 +0100
-+++ alsa-lib-1.0.18/src/pcm/pcm_local.h 2009-01-31 11:03:24.000000000 +0100
-@@ -611,6 +611,13 @@
- snd_pcm_hw_param_t var);
- int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params,
- snd_pcm_hw_param_t var, unsigned int val, int dir);
-+
-+#if defined(AVR32_INLINE_BUG)
-+int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
-+ snd_pcm_format_t val);
-+int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params,
-+ snd_pcm_subformat_t val);
-+#else
- static inline int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
- snd_pcm_format_t val)
- {
-@@ -624,7 +631,7 @@
- return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT,
- (unsigned long) val, 0);
- }
--
-+#endif
- int _snd_pcm_hw_param_set_min(snd_pcm_hw_params_t *params,
- snd_pcm_hw_param_t var, unsigned int val, int dir);
- int _snd_pcm_hw_param_set_max(snd_pcm_hw_params_t *params,
-diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c alsa-lib-1.0.18/src/pcm/pcm_route.c
---- alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c 2009-01-31 11:02:12.000000000 +0100
-+++ alsa-lib-1.0.18/src/pcm/pcm_route.c 2009-01-31 11:03:18.000000000 +0100
-@@ -26,6 +26,7 @@
- *
- */
-
-+
- #include <byteswap.h>
- #include <math.h>
- #include "pcm_local.h"
-@@ -106,6 +107,23 @@
-
- #endif /* DOC_HIDDEN */
-
-+
-+#if defined(AVR32_INLINE_BUG)
-+int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
-+ snd_pcm_format_t val)
-+{
-+ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_FORMAT,
-+ (unsigned long) val, 0);
-+}
-+
-+int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params,
-+ snd_pcm_subformat_t val)
-+{
-+ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT,
-+ (unsigned long) val, 0);
-+}
-+#endif
-+
- static void snd_pcm_route_convert1_zero(const snd_pcm_channel_area_t *dst_area,
- snd_pcm_uframes_t dst_offset,
- const snd_pcm_channel_area_t *src_areas ATTRIBUTE_UNUSED,
-@@ -483,6 +501,8 @@
- snd_pcm_uframes_t frames,
- snd_pcm_route_params_t *params)
- {
-+#if defined(AVR32_INLINE_BUG)
-+#endif
- unsigned int dst_channel;
- snd_pcm_route_ttable_dst_t *dstp;
- const snd_pcm_channel_area_t *dst_area;
-@@ -551,8 +571,20 @@
- _snd_pcm_hw_param_set_mask(sparams, SND_PCM_HW_PARAM_ACCESS,
- &saccess_mask);
- if (route->sformat != SND_PCM_FORMAT_UNKNOWN) {
-+#if defined(AVR32_INLINE_BUG)
-+/* Start of of problem */
-+#endif
- _snd_pcm_hw_params_set_format(sparams, route->sformat);
- _snd_pcm_hw_params_set_subformat(sparams, SND_PCM_SUBFORMAT_STD);
-+#if 0
-+ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_FORMAT,
-+ (unsigned long) route->sformat, 0);
-+ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_SUBFORMAT,
-+ (unsigned long) SND_PCM_SUBFORMAT_STD, 0);
-+#endif
-+#if defined(AVR32_INLINE_BUG)
-+/* End of problem */
-+#endif
- }
- if (route->schannels >= 0) {
- _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_CHANNELS,
+++ /dev/null
-Don't use fork() on noMMU platforms
-
-[Gustavo: update patch for 1.0.28]
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: alsa-lib-1.0.26/configure.ac
-===================================================================
---- alsa-lib-1.0.26.orig/configure.ac 2012-09-06 10:55:14.000000000 +0200
-+++ alsa-lib-1.0.26/configure.ac 2013-03-09 16:22:08.000000000 +0100
-@@ -66,6 +66,8 @@
- AM_CONDITIONAL(ALSA_HSEARCH_R, [test "x$HAVE_HSEARCH_R" != xyes])
- AC_CHECK_FUNCS([uselocale])
-
-+AC_CHECK_FUNC([fork])
-+
- SAVE_LIBRARY_VERSION
- AC_SUBST(LIBTOOL_VERSION_INFO)
-
-Index: alsa-lib-1.0.26/src/pcm/pcm_direct.c
-===================================================================
---- alsa-lib-1.0.26.orig/src/pcm/pcm_direct.c 2012-09-06 10:55:14.000000000 +0200
-+++ alsa-lib-1.0.26/src/pcm/pcm_direct.c 2013-03-09 16:22:51.000000000 +0100
-@@ -424,13 +424,21 @@
- close(dmix->server_fd);
- return ret;
- }
--
-+
-+#ifdef HAVE_FORK
- ret = fork();
-+#else
-+ ret = vfork();
-+#endif
- if (ret < 0) {
- close(dmix->server_fd);
- return ret;
- } else if (ret == 0) {
-+#ifdef HAVE_FORK
- ret = fork();
-+#else
-+ ret = vfork();
-+#endif
- if (ret == 0)
- server_job(dmix);
- _exit(EXIT_SUCCESS);
+++ /dev/null
-alsa-lib: provide dummy definitions of RTLD_* if necessary
-
-The FLAT GNU toolchain (e.g. blackfin) doesn't include the dlfcn.h header
-file, so we need to guard that include. Additionally, provide dummy
-definitions for parameters RTLD_GLOBAL / RTLD_NOW which are normally
-provided by dlfcn.h.
-
-Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
-[Thomas: don't add separate dlmisc.h, move dummy defs to global.h]
-Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
-
-diff --git a/include/global.h b/include/global.h
---- a/include/global.h
-+++ b/include/global.h
-@@ -97,6 +97,16 @@ extern struct snd_dlsym_link *snd_dlsym_
- /** \brief Returns the version of a dynamic symbol as a string. */
- #define SND_DLSYM_VERSION(version) __STRING(version)
-
-+/* RTLD_NOW and RTLD_GLOBAL (used for 'mode' in snd_dlopen) are not defined
-+ * on all arches (e.g. blackfin), so provide a dummy definition here. */
-+#ifndef RTLD_NOW
-+#define RTLD_NOW 0
-+#endif
-+
-+#ifndef RTLD_GLOBAL
-+#define RTLD_GLOBAL 0
-+#endif
-+
- void *snd_dlopen(const char *file, int mode);
- void *snd_dlsym(void *handle, const char *name, const char *version);
- int snd_dlclose(void *handle);
-diff --git a/modules/mixer/simple/sbasedl.c b/modules/mixer/simple/sbasedl.c
---- a/modules/mixer/simple/sbasedl.c
-+++ b/modules/mixer/simple/sbasedl.c
-@@ -27,7 +27,9 @@
- #include <fcntl.h>
- #include <sys/ioctl.h>
- #include <math.h>
-+#ifdef HAVE_LIBDL
- #include <dlfcn.h>
-+#endif
- #include "config.h"
- #include "asoundlib.h"
- #include "mixer_abst.h"
-diff --git a/src/mixer/simple_abst.c b/src/mixer/simple_abst.c
---- a/src/mixer/simple_abst.c
-+++ b/src/mixer/simple_abst.c
-@@ -34,7 +34,9 @@
- #include <fcntl.h>
- #include <sys/ioctl.h>
- #include <math.h>
-+#ifdef HAVE_LIBDL
- #include <dlfcn.h>
-+#endif
- #include "config.h"
- #include "asoundlib.h"
- #include "mixer_simple.h"
+++ /dev/null
-alsa-lib: conditionally enable libdl in AM_PATH_ALSA m4 macro
-
-The AM_PATH_ALSA macro in utils/alsa.m4 unconditionally uses -ldl. This
-breaks compilation of alsa-utils (and probably other packages using this
-macro) for targets that do not support dynamic loading, such as for
-Blackfin FLAT binaries.
-
-This patch updates the macro to check if dlopen is available, and use that
-result to conditionally add -ldl to the list of libraries.
-
-Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
-
----
-
-diff --git a/utils/alsa.m4 b/utils/alsa.m4
---- a/utils/alsa.m4
-+++ b/utils/alsa.m4
-@@ -44,6 +44,8 @@ if test "$alsa_inc_prefix" != "" ; then
- fi
- AC_MSG_RESULT($ALSA_CFLAGS)
-
-+AC_CHECK_LIB(c, dlopen, LIBDL="", [AC_CHECK_LIB(dl, dlopen, LIBDL="-ldl")])
-+
- dnl add any special lib dirs
- AC_MSG_CHECKING(for ALSA LDFLAGS)
- if test "$alsa_prefix" != "" ; then
-@@ -52,7 +54,7 @@ if test "$alsa_prefix" != "" ; then
- fi
-
- dnl add the alsa library
--ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl -lpthread"
-+ALSA_LIBS="$ALSA_LIBS -lasound -lm $LIBDL -lpthread"
- LIBS="$ALSA_LIBS $LIBS"
- AC_MSG_RESULT($ALSA_LIBS)
-
--- /dev/null
+--- a/configure.in
++++ b/configure.in
+@@ -11,7 +11,10 @@
+ AC_PROG_LN_S
+
+ dnl Checks for libraries.
+-AC_CHECK_LIB(fltk,numericsort,,AC_MSG_ERROR("missing fltk"))
++AC_CHECK_LIB(fltk,numericsort,,
++AC_CHECK_LIB(fltk,fl_numericsort,,
++AC_MSG_ERROR("missing fltk"))
++)
+ AM_PATH_ALSA(0.9.0)
+
+ dnl Checks for header files.
+--- a/src/alsamixer.cxx 2007-10-21 12:39:11.000000000 -0400
++++ b/src/alsamixer.cxx 2007-10-21 12:49:10.000000000 -0400
+@@ -2081,8 +2081,8 @@ static void
+ mixer_signal_handler (int signal)
+ {
+ if (signal != SIGSEGV)
+- mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0);
+- else
++ // mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0);
++ //else
+ {
+ fprintf (stderr, "\nSegmentation fault.\n");
+ _exit (11);
+--- a/src/alsamixer.cxx 2006-01-16 12:41:54.000000000 -0600
++++ b/src/alsamixer.cxx 2006-01-16 12:45:44.000000000 -0600
+@@ -653,8 +653,8 @@
+ if (vleft >= 0 && vright >= 0) {
+ if (joined) {
+ #ifdef ALSAMIXER_GUI
+- for (chn = snd_mixer_selem_channel_id_t(0); chn < SND_MIXER_SCHN_LAST;
+- snd_mixer_selem_channel_id_t(int(chn)++))
++ for (chn = snd_mixer_selem_channel_id_t(0); chn < SND_MIXER_SCHN_LAST;
++ snd_mixer_selem_channel_id_t(int(chn)+1))
+ #else
+ for (chn = 0; chn < SND_MIXER_SCHN_LAST; chn++)
+ #endif
+++ /dev/null
---- a/configure.in
-+++ b/configure.in
-@@ -11,7 +11,10 @@
- AC_PROG_LN_S
-
- dnl Checks for libraries.
--AC_CHECK_LIB(fltk,numericsort,,AC_MSG_ERROR("missing fltk"))
-+AC_CHECK_LIB(fltk,numericsort,,
-+AC_CHECK_LIB(fltk,fl_numericsort,,
-+AC_MSG_ERROR("missing fltk"))
-+)
- AM_PATH_ALSA(0.9.0)
-
- dnl Checks for header files.
---- a/src/alsamixer.cxx 2007-10-21 12:39:11.000000000 -0400
-+++ b/src/alsamixer.cxx 2007-10-21 12:49:10.000000000 -0400
-@@ -2081,8 +2081,8 @@ static void
- mixer_signal_handler (int signal)
- {
- if (signal != SIGSEGV)
-- mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0);
-- else
-+ // mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0);
-+ //else
- {
- fprintf (stderr, "\nSegmentation fault.\n");
- _exit (11);
---- a/src/alsamixer.cxx 2006-01-16 12:41:54.000000000 -0600
-+++ b/src/alsamixer.cxx 2006-01-16 12:45:44.000000000 -0600
-@@ -653,8 +653,8 @@
- if (vleft >= 0 && vright >= 0) {
- if (joined) {
- #ifdef ALSAMIXER_GUI
-- for (chn = snd_mixer_selem_channel_id_t(0); chn < SND_MIXER_SCHN_LAST;
-- snd_mixer_selem_channel_id_t(int(chn)++))
-+ for (chn = snd_mixer_selem_channel_id_t(0); chn < SND_MIXER_SCHN_LAST;
-+ snd_mixer_selem_channel_id_t(int(chn)+1))
- #else
- for (chn = 0; chn < SND_MIXER_SCHN_LAST; chn++)
- #endif
--- /dev/null
+Enforce correct -march option
+
+Buildroot uses a normal ARM compiler to build the AM33X CM3 firmware
+(which runs on a Cortex-M3 processor), but Buildroot will have a
+default -march value that doesn't necessarily match the one needed for
+Cortex-M3, leading to build failures (gcc complains that the
+-mcpu=cortex-m3 option being passed is not compatible with the
+selected -march).
+
+Fix this by explicitly indicating -march=armv7-m.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Updated the patch to the latest version of the Makefile
+
+Signed-off-by: Anders Darander <anders@chargestorm.se>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -13,7 +13,7 @@ SRCDIR = src
+ BINDIR = bin
+
+ INCLUDES = $(SRCDIR)/include
+-CFLAGS =-mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \
++CFLAGS =-march=armv7-m -mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \
+ -Werror-implicit-function-declaration -Wstrict-prototypes \
+ -Wdeclaration-after-statement -fno-delete-null-pointer-checks \
+ -Wempty-body -fno-strict-overflow -g -I$(INCLUDES) -O2
+++ /dev/null
-Enforce correct -march option
-
-Buildroot uses a normal ARM compiler to build the AM33X CM3 firmware
-(which runs on a Cortex-M3 processor), but Buildroot will have a
-default -march value that doesn't necessarily match the one needed for
-Cortex-M3, leading to build failures (gcc complains that the
--mcpu=cortex-m3 option being passed is not compatible with the
-selected -march).
-
-Fix this by explicitly indicating -march=armv7-m.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Updated the patch to the latest version of the Makefile
-
-Signed-off-by: Anders Darander <anders@chargestorm.se>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -13,7 +13,7 @@ SRCDIR = src
- BINDIR = bin
-
- INCLUDES = $(SRCDIR)/include
--CFLAGS =-mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \
-+CFLAGS =-march=armv7-m -mcpu=cortex-m3 -mthumb -nostdlib -Wall -Wundef \
- -Werror-implicit-function-declaration -Wstrict-prototypes \
- -Wdeclaration-after-statement -fno-delete-null-pointer-checks \
- -Wempty-body -fno-strict-overflow -g -I$(INCLUDES) -O2
--- /dev/null
+remove check apr
+
+this patch removes the check of apr which fails the build
+
+Signed-off-by: Rico Bachmann <bachmann-ahF9wiJNQgNBDgjK7y7TUQ@public.gmane.org>
+---
+v1: disable the check for APU_FIND_APR because the check only looks into folders
+named apr, and our source-tree is called apr-versionnumber (e.g. apr-1.4.6)
+
+diff -rupN apr-util-1.4.1/configure.in apr-util-1.4.1-fix/configure.in
+--- apr-util-1.4.1/configure.in 2009-12-17 20:15:19.000000000 +0100
++++ apr-util-1.4.1-fix/configure.in 2012-04-24 10:10:32.000000000 +0200
+@@ -99,7 +99,7 @@ fi
+ dnl
+ dnl Find the APR includes directory and (possibly) the source (base) dir.
+ dnl
+-APU_FIND_APR
++dnl APU_FIND_APR
+
+ dnl
+ dnl even though we use apr_rules.mk for building apr-util, we need
+++ /dev/null
-remove check apr
-
-this patch removes the check of apr which fails the build
-
-Signed-off-by: Rico Bachmann <bachmann-ahF9wiJNQgNBDgjK7y7TUQ@public.gmane.org>
----
-v1: disable the check for APU_FIND_APR because the check only looks into folders
-named apr, and our source-tree is called apr-versionnumber (e.g. apr-1.4.6)
-
-diff -rupN apr-util-1.4.1/configure.in apr-util-1.4.1-fix/configure.in
---- apr-util-1.4.1/configure.in 2009-12-17 20:15:19.000000000 +0100
-+++ apr-util-1.4.1-fix/configure.in 2012-04-24 10:10:32.000000000 +0200
-@@ -99,7 +99,7 @@ fi
- dnl
- dnl Find the APR includes directory and (possibly) the source (base) dir.
- dnl
--APU_FIND_APR
-+dnl APU_FIND_APR
-
- dnl
- dnl even though we use apr_rules.mk for building apr-util, we need
--- /dev/null
+# --- T2-COPYRIGHT-NOTE-BEGIN ---
+# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
+#
+# T2 SDE: package/.../rng-tools/throw-in-funcdef.patch.argp-standalone
+# Copyright (C) 2006 The T2 SDE Project
+#
+# More information can be found in the files COPYING and README.
+#
+# This patch file is dual-licensed. It is available under the license the
+# patched project is licensed under, as long as it is an OpenSource license
+# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
+# of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+# --- T2-COPYRIGHT-NOTE-END ---
+
+
+No __THROW in function implementation.
+ --jsaw
+
+--- argp-standalone-1.4-test2/argp.h.orig 2006-01-06 02:29:59.000000000 +0100
++++ argp-standalone-1.4-test2/argp.h 2006-01-06 02:41:10.000000000 +0100
+@@ -560,17 +560,17 @@
+ # endif
+
+ # ifndef ARGP_EI
+-# define ARGP_EI extern __inline__
++# define ARGP_EI extern inline
+ # endif
+
+ ARGP_EI void
+-__argp_usage (__const struct argp_state *__state) __THROW
++__argp_usage (__const struct argp_state *__state)
+ {
+ __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
+ }
+
+ ARGP_EI int
+-__option_is_short (__const struct argp_option *__opt) __THROW
++__option_is_short (__const struct argp_option *__opt)
+ {
+ if (__opt->flags & OPTION_DOC)
+ return 0;
+@@ -582,7 +582,7 @@
+ }
+
+ ARGP_EI int
+-__option_is_end (__const struct argp_option *__opt) __THROW
++__option_is_end (__const struct argp_option *__opt)
+ {
+ return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
+ }
+--- argp-standalone-1.4-test2/argp-parse.c.orig 2006-01-06 02:47:48.000000000 +0100
++++ argp-standalone-1.4-test2/argp-parse.c 2006-01-06 02:48:16.000000000 +0100
+@@ -1290,13 +1290,13 @@
+ /* Defined here, in case a user is not inlining the definitions in
+ * argp.h */
+ void
+-__argp_usage (__const struct argp_state *__state) __THROW
++__argp_usage (__const struct argp_state *__state)
+ {
+ __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
+ }
+
+ int
+-__option_is_short (__const struct argp_option *__opt) __THROW
++__option_is_short (__const struct argp_option *__opt)
+ {
+ if (__opt->flags & OPTION_DOC)
+ return 0;
+@@ -1310,7 +1310,7 @@
+ }
+
+ int
+-__option_is_end (__const struct argp_option *__opt) __THROW
++__option_is_end (__const struct argp_option *__opt)
+ {
+ return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
+ }
+++ /dev/null
-# --- T2-COPYRIGHT-NOTE-BEGIN ---
-# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
-#
-# T2 SDE: package/.../rng-tools/throw-in-funcdef.patch.argp-standalone
-# Copyright (C) 2006 The T2 SDE Project
-#
-# More information can be found in the files COPYING and README.
-#
-# This patch file is dual-licensed. It is available under the license the
-# patched project is licensed under, as long as it is an OpenSource license
-# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
-# of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
-# --- T2-COPYRIGHT-NOTE-END ---
-
-
-No __THROW in function implementation.
- --jsaw
-
---- argp-standalone-1.4-test2/argp.h.orig 2006-01-06 02:29:59.000000000 +0100
-+++ argp-standalone-1.4-test2/argp.h 2006-01-06 02:41:10.000000000 +0100
-@@ -560,17 +560,17 @@
- # endif
-
- # ifndef ARGP_EI
--# define ARGP_EI extern __inline__
-+# define ARGP_EI extern inline
- # endif
-
- ARGP_EI void
--__argp_usage (__const struct argp_state *__state) __THROW
-+__argp_usage (__const struct argp_state *__state)
- {
- __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
- }
-
- ARGP_EI int
--__option_is_short (__const struct argp_option *__opt) __THROW
-+__option_is_short (__const struct argp_option *__opt)
- {
- if (__opt->flags & OPTION_DOC)
- return 0;
-@@ -582,7 +582,7 @@
- }
-
- ARGP_EI int
--__option_is_end (__const struct argp_option *__opt) __THROW
-+__option_is_end (__const struct argp_option *__opt)
- {
- return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
- }
---- argp-standalone-1.4-test2/argp-parse.c.orig 2006-01-06 02:47:48.000000000 +0100
-+++ argp-standalone-1.4-test2/argp-parse.c 2006-01-06 02:48:16.000000000 +0100
-@@ -1290,13 +1290,13 @@
- /* Defined here, in case a user is not inlining the definitions in
- * argp.h */
- void
--__argp_usage (__const struct argp_state *__state) __THROW
-+__argp_usage (__const struct argp_state *__state)
- {
- __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
- }
-
- int
--__option_is_short (__const struct argp_option *__opt) __THROW
-+__option_is_short (__const struct argp_option *__opt)
- {
- if (__opt->flags & OPTION_DOC)
- return 0;
-@@ -1310,7 +1310,7 @@
- }
-
- int
--__option_is_end (__const struct argp_option *__opt) __THROW
-+__option_is_end (__const struct argp_option *__opt)
- {
- return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
- }
--- /dev/null
+From a182f18fa3b9fb3dd817b601b51c758f9a77f407 Mon Sep 17 00:00:00 2001
+From: Marc Kleine-Budde <mkl@pengutronix.de>
+Date: Tue, 1 Dec 2009 17:08:14 +0100
+Subject: [PATCH 1/5] configure.ac: remove manual compiler check with AC_TRY_RUN
+
+AC_TRY_RUN breaks cross compilation, so remove it. autotools will take
+care about a working (cross-) compiler.
+
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+---
+ configure.ac | 6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a8c2a14..997a37f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -38,12 +38,6 @@ case "$host" in
+ AC_MSG_RESULT(no)
+ ;;
+ esac
+-AC_MSG_CHECKING(Trying to compile a trivial ANSI C program)
+-AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+- AC_MSG_RESULT(yes),
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.),
+- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.))
+
+ AC_MSG_CHECKING(__attribute__((noreturn)))
+ AC_TRY_COMPILE([], [void __attribute__((noreturn)) panic(void);],
+--
+1.6.5.3
+
--- /dev/null
+From e12c96cccab550eda31cf7bb1dedddd3670ffe69 Mon Sep 17 00:00:00 2001
+From: Marc Kleine-Budde <mkl@pengutronix.de>
+Date: Tue, 1 Dec 2009 17:22:22 +0100
+Subject: [PATCH 2/5] configure.ac: convert AC_TRY_COMPILE -> AC_COMPILE_IFELSE
+
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+---
+ configure.ac | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 997a37f..cab80ed 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -40,11 +40,11 @@ case "$host" in
+ esac
+
+ AC_MSG_CHECKING(__attribute__((noreturn)))
+-AC_TRY_COMPILE([], [void __attribute__((noreturn)) panic(void);],
+- AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_ATTRIBUTE_NORETURN, 1,
+- [Define to 1 if compiler supports __attribute__((noreturn))]),
+- AC_MSG_RESULT(no)
++AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM([[]], [[void __attribute__((noreturn)) panic(void);]])],
++ [AC_MSG_RESULT(yes)
++ AC_DEFINE(HAVE_ATTRIBUTE_NORETURN, 1, Define to 1 if compiler supports __attribute__((noreturn)))],
++ [AC_MSG_RESULT(no)]
+ )
+ dnl Checks for libraries.
+
+--
+1.6.5.3
+
--- /dev/null
+From 8720a71757f3626bf3bbc3a7aa2185e6387e5689 Mon Sep 17 00:00:00 2001
+From: Marc Kleine-Budde <mkl@pengutronix.de>
+Date: Tue, 1 Dec 2009 20:37:31 +0100
+Subject: [PATCH 3/5] Makefile.in: add LDFLAGS to linking stage
+
+The linking stage ignores the LDFLAGS, this breaks if the flex library
+lives in a non standard location.
+
+This patch add LDFLAGS to both "at" and "atd" linking stage.
+
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+---
+ Makefile.in | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index dae6b7d..b766bbb 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -65,13 +65,13 @@ LIST = Filelist Filelist.asc
+ all: at atd atrun
+
+ at: $(ATOBJECTS)
+- $(CC) $(CFLAGS) -o at $(ATOBJECTS) $(LIBS) $(LEXLIB)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o at $(ATOBJECTS) $(LIBS) $(LEXLIB)
+ rm -f $(CLONES)
+ $(LN_S) -f at atq
+ $(LN_S) -f at atrm
+
+ atd: $(RUNOBJECTS)
+- $(CC) $(CFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB)
+
+ y.tab.c y.tab.h: parsetime.y
+ $(YACC) -d parsetime.y
+--
+1.6.5.3
+
--- /dev/null
+From 195d30e2e01fe2f91ed3bdaeec3982aa66b309dd Mon Sep 17 00:00:00 2001
+From: Marc Kleine-Budde <mkl@pengutronix.de>
+Date: Tue, 1 Dec 2009 20:57:45 +0100
+Subject: [PATCH 5/5] Makefile.in: replace IROOT by DESTDIR
+
+This patch replaces IROOT by DESTDIR, which is the autotools standard
+variable. For backwards compatibilty IROOT overwrites the DESTDIR.
+
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+---
+ Makefile.in | 64 +++++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 34 insertions(+), 30 deletions(-)
+
+Index: at-3.1.13/Makefile.in
+===================================================================
+--- at-3.1.13.orig/Makefile.in
++++ at-3.1.13/Makefile.in
+@@ -16,6 +16,10 @@ docdir = $(prefix)/doc
+ atdocdir = $(docdir)/at
+ etcdir = @ETCDIR@
+
++ifdef IROOT
++DESTDIR = $(IROOT)
++endif
++
+ DAEMON_USERNAME = @DAEMON_USERNAME@
+ DAEMON_GROUPNAME= @DAEMON_GROUPNAME@
+ LOADAVG_MX = @LOADAVG_MX@
+@@ -86,38 +90,38 @@ atrun: atrun.in
+ $(CC) -c $(CFLAGS) $(DEFS) $*.c
+
+ install: all
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(etcdir)
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(bindir)
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(sbindir)
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(docdir)
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(atdocdir)
+- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
+- chmod 1770 $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
+- touch $(IROOT)$(LFILE)
+- chmod 600 $(IROOT)$(LFILE)
+- chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(IROOT)$(LFILE)
+- test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(IROOT)$(etcdir)/
+- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 at $(IROOT)$(bindir)
+- $(LN_S) -f at $(IROOT)$(bindir)/atq
+- $(LN_S) -f at $(IROOT)$(bindir)/atrm
+- $(INSTALL) -g root -o root -m 755 batch $(IROOT)$(bindir)
+- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man1dir)
+- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man5dir)
+- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man8dir)
+- $(INSTALL) -g root -o root -m 755 atd $(IROOT)$(sbindir)
+- $(INSTALL) -g root -o root -m 755 atrun $(IROOT)$(sbindir)
+- $(INSTALL) -g root -o root -m 644 at.1 $(IROOT)$(man1dir)/
+- cd $(IROOT)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
+- $(INSTALL) -g root -o root -m 644 atd.8 $(IROOT)$(man8dir)/
++ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(etcdir)
++ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(bindir)
++ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(sbindir)
++ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(docdir)
++ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdocdir)
++ $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
++ chmod 1770 $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
++ touch $(DESTDIR)$(LFILE)
++ chmod 600 $(DESTDIR)$(LFILE)
++ chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(DESTDIR)$(LFILE)
++ test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(DESTDIR$
++ $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 -s at $(DESTDIR)$(bindir)
++ $(LN_S) -f at $(DESTDIR)$(bindir)/atq
++ $(LN_S) -f at $(DESTDIR)$(bindir)/atrm
++ $(INSTALL) -g root -o root -m 755 batch $(DESTDIR)$(bindir)
++ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man1dir)
++ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man5dir)
++ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man8dir)
++ $(INSTALL) -g root -o root -m 755 -s atd $(DESTDIR)$(sbindir)
++ $(INSTALL) -g root -o root -m 755 atrun $(DESTDIR)$(sbindir)
++ $(INSTALL) -g root -o root -m 644 at.1 $(DESTDIR)$(man1dir)/
++ cd $(DESTDIR)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
++ $(INSTALL) -g root -o root -m 644 atd.8 $(DESTDIR)$(man8dir)/
+ sed "s,\$${exec_prefix},$(exec_prefix),g" <atrun.8>tmpman
+- $(INSTALL) -g root -o root -m 644 tmpman $(IROOT)$(man8dir)/atrun.8
++ $(INSTALL) -g root -o root -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8
+ rm -f tmpman
+- $(INSTALL) -g root -o root -m 644 at.allow.5 $(IROOT)$(man5dir)/
+- cd $(IROOT)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5
+- $(INSTALL) -g root -o root -m 644 $(DOCS) $(IROOT)$(atdocdir)
+- rm -f $(IROOT)$(mandir)/cat1/at.1* $(IROOT)$(mandir)/cat1/batch.1* \
+- $(IROOT)$(mandir)/cat1/atq.1*
+- rm -f $(IROOT)$(mandir)/cat1/atd.8*
++ $(INSTALL) -g root -o root -m 644 at.allow.5 $(DESTDIR)$(man5dir)/
++ cd $(DESTDIR)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5
++ $(INSTALL) -g root -o root -m 644 $(DOCS) $(DESTDIR)$(atdocdir)
++ rm -f $(DESTDIR)$(mandir)/cat1/at.1* $(DESTDIR)$(mandir)/cat1/batch.1* \
++ $(DESTDIR)$(mandir)/cat1/atq.1*
++ rm -f $(DESTDIR)$(mandir)/cat1/atd.8*
+
+ dist: checkin $(DIST) $(LIST) Filelist.asc
+ (cd ..; tar cf - `for a in $(DIST) $(LIST); do echo at-$(VERSION)/$$a; done` |\
--- /dev/null
+[PATCH]: Makefile.in: fix make install for non-root, don't strip
+
+Buildroot will ensure all files are owned by root and stripped anyway
+(if needed) before the rootfs is created.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ Makefile.in | 39 +++++++++++++++++++--------------------
+ 1 file changed, 19 insertions(+), 20 deletions(-)
+
+Index: at-3.1.13/Makefile.in
+===================================================================
+--- at-3.1.13.orig/Makefile.in
++++ at-3.1.13/Makefile.in
+@@ -90,35 +90,34 @@ atrun: atrun.in
+ $(CC) -c $(CFLAGS) $(DEFS) $*.c
+
+ install: all
+- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(etcdir)
+- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(bindir)
+- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(sbindir)
+- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(docdir)
+- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdocdir)
+- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
++ $(INSTALL) -m 755 -d $(DESTDIR)$(etcdir)
++ $(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
++ $(INSTALL) -m 755 -d $(DESTDIR)$(sbindir)
++ $(INSTALL) -m 755 -d $(DESTDIR)$(docdir)
++ $(INSTALL) -m 755 -d $(DESTDIR)$(atdocdir)
++ $(INSTALL) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
+ chmod 1770 $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
+ touch $(DESTDIR)$(LFILE)
+ chmod 600 $(DESTDIR)$(LFILE)
+- chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(DESTDIR)$(LFILE)
+- test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(DESTDIR$
+- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 -s at $(DESTDIR)$(bindir)
++ test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -m 640 at.deny $(DESTDIR)$(etcdir)/
++ $(INSTALL) -m 6755 at $(DESTDIR)$(bindir)
+ $(LN_S) -f at $(DESTDIR)$(bindir)/atq
+ $(LN_S) -f at $(DESTDIR)$(bindir)/atrm
+- $(INSTALL) -g root -o root -m 755 batch $(DESTDIR)$(bindir)
+- $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man1dir)
+- $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man5dir)
+- $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man8dir)
+- $(INSTALL) -g root -o root -m 755 -s atd $(DESTDIR)$(sbindir)
+- $(INSTALL) -g root -o root -m 755 atrun $(DESTDIR)$(sbindir)
+- $(INSTALL) -g root -o root -m 644 at.1 $(DESTDIR)$(man1dir)/
++ $(INSTALL) -m 755 batch $(DESTDIR)$(bindir)
++ $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
++ $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
++ $(INSTALL) -d -m 755 $(DESTDIR)$(man8dir)
++ $(INSTALL) -m 755 atd $(DESTDIR)$(sbindir)
++ $(INSTALL) -m 755 atrun $(DESTDIR)$(sbindir)
++ $(INSTALL) -m 644 at.1 $(DESTDIR)$(man1dir)/
+ cd $(DESTDIR)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
+- $(INSTALL) -g root -o root -m 644 atd.8 $(DESTDIR)$(man8dir)/
++ $(INSTALL) -m 644 atd.8 $(DESTDIR)$(man8dir)/
+ sed "s,\$${exec_prefix},$(exec_prefix),g" <atrun.8>tmpman
+- $(INSTALL) -g root -o root -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8
++ $(INSTALL) -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8
+ rm -f tmpman
+- $(INSTALL) -g root -o root -m 644 at.allow.5 $(DESTDIR)$(man5dir)/
++ $(INSTALL) -m 644 at.allow.5 $(DESTDIR)$(man5dir)/
+ cd $(DESTDIR)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5
+- $(INSTALL) -g root -o root -m 644 $(DOCS) $(DESTDIR)$(atdocdir)
++ $(INSTALL) -m 644 $(DOCS) $(DESTDIR)$(atdocdir)
+ rm -f $(DESTDIR)$(mandir)/cat1/at.1* $(DESTDIR)$(mandir)/cat1/batch.1* \
+ $(DESTDIR)$(mandir)/cat1/atq.1*
+ rm -f $(DESTDIR)$(mandir)/cat1/atd.8*
--- /dev/null
+[PATCH]: fix getloadavg.c compilation, revert to 3.1.10 version
+
+getloadavg.c shipped with 3.1.13 doesn't compile because it references
+headers not shipped. Fix it by simply reverting to the 3.1.10 version.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ getloadavg.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+Index: at-3.1.13/getloadavg.c
+===================================================================
+--- at-3.1.13.orig/getloadavg.c
++++ at-3.1.13/getloadavg.c
+@@ -66,11 +66,12 @@ Boston, MA 02110-1301 USA */
+
+ /* This should always be first. */
+ #ifdef HAVE_CONFIG_H
+-#include <config.h>
++#include "config.h"
+ #endif
+
+-#include "lisp.h"
+-#include "sysfile.h" /* for encapsulated open, close, read, write */
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+
+ #ifndef HAVE_GETLOADAVG
+
--- /dev/null
+Make sure to include config.h so that NEEDS_* macros are properly
+taken into account. This was a problem for NEEDS_YYWRAP, which was set
+to 1 in config.h, but the corresponding code wasn't compiled in.
+
+Index: at-3.1.13/parsetime.l
+===================================================================
+--- at-3.1.13.orig/parsetime.l
++++ at-3.1.13/parsetime.l
+@@ -4,6 +4,7 @@
+ #include <time.h>
+ #include "y.tab.h"
+ #include "parsetime.h"
++#include "config.h"
+
+ char *last_token = NULL;
+ char **my_argv;
+++ /dev/null
-From a182f18fa3b9fb3dd817b601b51c758f9a77f407 Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 1 Dec 2009 17:08:14 +0100
-Subject: [PATCH 1/5] configure.ac: remove manual compiler check with AC_TRY_RUN
-
-AC_TRY_RUN breaks cross compilation, so remove it. autotools will take
-care about a working (cross-) compiler.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- configure.ac | 6 ------
- 1 files changed, 0 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index a8c2a14..997a37f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -38,12 +38,6 @@ case "$host" in
- AC_MSG_RESULT(no)
- ;;
- esac
--AC_MSG_CHECKING(Trying to compile a trivial ANSI C program)
--AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
-- AC_MSG_RESULT(yes),
-- AC_MSG_RESULT(no)
-- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.),
-- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.))
-
- AC_MSG_CHECKING(__attribute__((noreturn)))
- AC_TRY_COMPILE([], [void __attribute__((noreturn)) panic(void);],
---
-1.6.5.3
-
+++ /dev/null
-From e12c96cccab550eda31cf7bb1dedddd3670ffe69 Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 1 Dec 2009 17:22:22 +0100
-Subject: [PATCH 2/5] configure.ac: convert AC_TRY_COMPILE -> AC_COMPILE_IFELSE
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- configure.ac | 10 +++++-----
- 1 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 997a37f..cab80ed 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -40,11 +40,11 @@ case "$host" in
- esac
-
- AC_MSG_CHECKING(__attribute__((noreturn)))
--AC_TRY_COMPILE([], [void __attribute__((noreturn)) panic(void);],
-- AC_MSG_RESULT(yes)
-- AC_DEFINE(HAVE_ATTRIBUTE_NORETURN, 1,
-- [Define to 1 if compiler supports __attribute__((noreturn))]),
-- AC_MSG_RESULT(no)
-+AC_COMPILE_IFELSE(
-+ [AC_LANG_PROGRAM([[]], [[void __attribute__((noreturn)) panic(void);]])],
-+ [AC_MSG_RESULT(yes)
-+ AC_DEFINE(HAVE_ATTRIBUTE_NORETURN, 1, Define to 1 if compiler supports __attribute__((noreturn)))],
-+ [AC_MSG_RESULT(no)]
- )
- dnl Checks for libraries.
-
---
-1.6.5.3
-
+++ /dev/null
-From 8720a71757f3626bf3bbc3a7aa2185e6387e5689 Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 1 Dec 2009 20:37:31 +0100
-Subject: [PATCH 3/5] Makefile.in: add LDFLAGS to linking stage
-
-The linking stage ignores the LDFLAGS, this breaks if the flex library
-lives in a non standard location.
-
-This patch add LDFLAGS to both "at" and "atd" linking stage.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Makefile.in | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index dae6b7d..b766bbb 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -65,13 +65,13 @@ LIST = Filelist Filelist.asc
- all: at atd atrun
-
- at: $(ATOBJECTS)
-- $(CC) $(CFLAGS) -o at $(ATOBJECTS) $(LIBS) $(LEXLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o at $(ATOBJECTS) $(LIBS) $(LEXLIB)
- rm -f $(CLONES)
- $(LN_S) -f at atq
- $(LN_S) -f at atrm
-
- atd: $(RUNOBJECTS)
-- $(CC) $(CFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB)
-
- y.tab.c y.tab.h: parsetime.y
- $(YACC) -d parsetime.y
---
-1.6.5.3
-
+++ /dev/null
-From 195d30e2e01fe2f91ed3bdaeec3982aa66b309dd Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 1 Dec 2009 20:57:45 +0100
-Subject: [PATCH 5/5] Makefile.in: replace IROOT by DESTDIR
-
-This patch replaces IROOT by DESTDIR, which is the autotools standard
-variable. For backwards compatibilty IROOT overwrites the DESTDIR.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Makefile.in | 64 +++++++++++++++++++++++++++++++-----------------------------
- 1 file changed, 34 insertions(+), 30 deletions(-)
-
-Index: at-3.1.13/Makefile.in
-===================================================================
---- at-3.1.13.orig/Makefile.in
-+++ at-3.1.13/Makefile.in
-@@ -16,6 +16,10 @@ docdir = $(prefix)/doc
- atdocdir = $(docdir)/at
- etcdir = @ETCDIR@
-
-+ifdef IROOT
-+DESTDIR = $(IROOT)
-+endif
-+
- DAEMON_USERNAME = @DAEMON_USERNAME@
- DAEMON_GROUPNAME= @DAEMON_GROUPNAME@
- LOADAVG_MX = @LOADAVG_MX@
-@@ -86,38 +90,38 @@ atrun: atrun.in
- $(CC) -c $(CFLAGS) $(DEFS) $*.c
-
- install: all
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(etcdir)
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(bindir)
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(sbindir)
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(docdir)
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(atdocdir)
-- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
-- chmod 1770 $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
-- touch $(IROOT)$(LFILE)
-- chmod 600 $(IROOT)$(LFILE)
-- chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(IROOT)$(LFILE)
-- test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(IROOT)$(etcdir)/
-- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 at $(IROOT)$(bindir)
-- $(LN_S) -f at $(IROOT)$(bindir)/atq
-- $(LN_S) -f at $(IROOT)$(bindir)/atrm
-- $(INSTALL) -g root -o root -m 755 batch $(IROOT)$(bindir)
-- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man1dir)
-- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man5dir)
-- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man8dir)
-- $(INSTALL) -g root -o root -m 755 atd $(IROOT)$(sbindir)
-- $(INSTALL) -g root -o root -m 755 atrun $(IROOT)$(sbindir)
-- $(INSTALL) -g root -o root -m 644 at.1 $(IROOT)$(man1dir)/
-- cd $(IROOT)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
-- $(INSTALL) -g root -o root -m 644 atd.8 $(IROOT)$(man8dir)/
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(etcdir)
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(bindir)
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(sbindir)
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(docdir)
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdocdir)
-+ $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
-+ chmod 1770 $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
-+ touch $(DESTDIR)$(LFILE)
-+ chmod 600 $(DESTDIR)$(LFILE)
-+ chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(DESTDIR)$(LFILE)
-+ test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(DESTDIR$
-+ $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 -s at $(DESTDIR)$(bindir)
-+ $(LN_S) -f at $(DESTDIR)$(bindir)/atq
-+ $(LN_S) -f at $(DESTDIR)$(bindir)/atrm
-+ $(INSTALL) -g root -o root -m 755 batch $(DESTDIR)$(bindir)
-+ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man1dir)
-+ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man5dir)
-+ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man8dir)
-+ $(INSTALL) -g root -o root -m 755 -s atd $(DESTDIR)$(sbindir)
-+ $(INSTALL) -g root -o root -m 755 atrun $(DESTDIR)$(sbindir)
-+ $(INSTALL) -g root -o root -m 644 at.1 $(DESTDIR)$(man1dir)/
-+ cd $(DESTDIR)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
-+ $(INSTALL) -g root -o root -m 644 atd.8 $(DESTDIR)$(man8dir)/
- sed "s,\$${exec_prefix},$(exec_prefix),g" <atrun.8>tmpman
-- $(INSTALL) -g root -o root -m 644 tmpman $(IROOT)$(man8dir)/atrun.8
-+ $(INSTALL) -g root -o root -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8
- rm -f tmpman
-- $(INSTALL) -g root -o root -m 644 at.allow.5 $(IROOT)$(man5dir)/
-- cd $(IROOT)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5
-- $(INSTALL) -g root -o root -m 644 $(DOCS) $(IROOT)$(atdocdir)
-- rm -f $(IROOT)$(mandir)/cat1/at.1* $(IROOT)$(mandir)/cat1/batch.1* \
-- $(IROOT)$(mandir)/cat1/atq.1*
-- rm -f $(IROOT)$(mandir)/cat1/atd.8*
-+ $(INSTALL) -g root -o root -m 644 at.allow.5 $(DESTDIR)$(man5dir)/
-+ cd $(DESTDIR)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5
-+ $(INSTALL) -g root -o root -m 644 $(DOCS) $(DESTDIR)$(atdocdir)
-+ rm -f $(DESTDIR)$(mandir)/cat1/at.1* $(DESTDIR)$(mandir)/cat1/batch.1* \
-+ $(DESTDIR)$(mandir)/cat1/atq.1*
-+ rm -f $(DESTDIR)$(mandir)/cat1/atd.8*
-
- dist: checkin $(DIST) $(LIST) Filelist.asc
- (cd ..; tar cf - `for a in $(DIST) $(LIST); do echo at-$(VERSION)/$$a; done` |\
+++ /dev/null
-[PATCH]: Makefile.in: fix make install for non-root, don't strip
-
-Buildroot will ensure all files are owned by root and stripped anyway
-(if needed) before the rootfs is created.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- Makefile.in | 39 +++++++++++++++++++--------------------
- 1 file changed, 19 insertions(+), 20 deletions(-)
-
-Index: at-3.1.13/Makefile.in
-===================================================================
---- at-3.1.13.orig/Makefile.in
-+++ at-3.1.13/Makefile.in
-@@ -90,35 +90,34 @@ atrun: atrun.in
- $(CC) -c $(CFLAGS) $(DEFS) $*.c
-
- install: all
-- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(etcdir)
-- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(bindir)
-- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(sbindir)
-- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(docdir)
-- $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdocdir)
-- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
-+ $(INSTALL) -m 755 -d $(DESTDIR)$(etcdir)
-+ $(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
-+ $(INSTALL) -m 755 -d $(DESTDIR)$(sbindir)
-+ $(INSTALL) -m 755 -d $(DESTDIR)$(docdir)
-+ $(INSTALL) -m 755 -d $(DESTDIR)$(atdocdir)
-+ $(INSTALL) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
- chmod 1770 $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
- touch $(DESTDIR)$(LFILE)
- chmod 600 $(DESTDIR)$(LFILE)
-- chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(DESTDIR)$(LFILE)
-- test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(DESTDIR$
-- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 -s at $(DESTDIR)$(bindir)
-+ test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -m 640 at.deny $(DESTDIR)$(etcdir)/
-+ $(INSTALL) -m 6755 at $(DESTDIR)$(bindir)
- $(LN_S) -f at $(DESTDIR)$(bindir)/atq
- $(LN_S) -f at $(DESTDIR)$(bindir)/atrm
-- $(INSTALL) -g root -o root -m 755 batch $(DESTDIR)$(bindir)
-- $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man1dir)
-- $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man5dir)
-- $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man8dir)
-- $(INSTALL) -g root -o root -m 755 -s atd $(DESTDIR)$(sbindir)
-- $(INSTALL) -g root -o root -m 755 atrun $(DESTDIR)$(sbindir)
-- $(INSTALL) -g root -o root -m 644 at.1 $(DESTDIR)$(man1dir)/
-+ $(INSTALL) -m 755 batch $(DESTDIR)$(bindir)
-+ $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
-+ $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
-+ $(INSTALL) -d -m 755 $(DESTDIR)$(man8dir)
-+ $(INSTALL) -m 755 atd $(DESTDIR)$(sbindir)
-+ $(INSTALL) -m 755 atrun $(DESTDIR)$(sbindir)
-+ $(INSTALL) -m 644 at.1 $(DESTDIR)$(man1dir)/
- cd $(DESTDIR)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
-- $(INSTALL) -g root -o root -m 644 atd.8 $(DESTDIR)$(man8dir)/
-+ $(INSTALL) -m 644 atd.8 $(DESTDIR)$(man8dir)/
- sed "s,\$${exec_prefix},$(exec_prefix),g" <atrun.8>tmpman
-- $(INSTALL) -g root -o root -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8
-+ $(INSTALL) -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8
- rm -f tmpman
-- $(INSTALL) -g root -o root -m 644 at.allow.5 $(DESTDIR)$(man5dir)/
-+ $(INSTALL) -m 644 at.allow.5 $(DESTDIR)$(man5dir)/
- cd $(DESTDIR)$(man5dir) && $(LN_S) -f at.allow.5 at.deny.5
-- $(INSTALL) -g root -o root -m 644 $(DOCS) $(DESTDIR)$(atdocdir)
-+ $(INSTALL) -m 644 $(DOCS) $(DESTDIR)$(atdocdir)
- rm -f $(DESTDIR)$(mandir)/cat1/at.1* $(DESTDIR)$(mandir)/cat1/batch.1* \
- $(DESTDIR)$(mandir)/cat1/atq.1*
- rm -f $(DESTDIR)$(mandir)/cat1/atd.8*
+++ /dev/null
-[PATCH]: fix getloadavg.c compilation, revert to 3.1.10 version
-
-getloadavg.c shipped with 3.1.13 doesn't compile because it references
-headers not shipped. Fix it by simply reverting to the 3.1.10 version.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- getloadavg.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-Index: at-3.1.13/getloadavg.c
-===================================================================
---- at-3.1.13.orig/getloadavg.c
-+++ at-3.1.13/getloadavg.c
-@@ -66,11 +66,12 @@ Boston, MA 02110-1301 USA */
-
- /* This should always be first. */
- #ifdef HAVE_CONFIG_H
--#include <config.h>
-+#include "config.h"
- #endif
-
--#include "lisp.h"
--#include "sysfile.h" /* for encapsulated open, close, read, write */
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-
- #ifndef HAVE_GETLOADAVG
-
+++ /dev/null
-Make sure to include config.h so that NEEDS_* macros are properly
-taken into account. This was a problem for NEEDS_YYWRAP, which was set
-to 1 in config.h, but the corresponding code wasn't compiled in.
-
-Index: at-3.1.13/parsetime.l
-===================================================================
---- at-3.1.13.orig/parsetime.l
-+++ at-3.1.13/parsetime.l
-@@ -4,6 +4,7 @@
- #include <time.h>
- #include "y.tab.h"
- #include "parsetime.h"
-+#include "config.h"
-
- char *last_token = NULL;
- char **my_argv;
--- /dev/null
+Support installation of .a file when doing static linking
+
+When doing static linking (i.e ENABLE_SHARED != yes), the attr build
+logic wasn't installing any library at all, not even the .a file which
+is needed for static linking. This patch fixes that.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/include/buildmacros
+===================================================================
+--- a/include/buildmacros
++++ b/include/buildmacros
+@@ -97,7 +97,15 @@
+
+ INSTALL_LTLIB_STATIC = \
+ cd $(TOPDIR)/$(LIBNAME)/.libs; \
+- ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR);
++ ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR); \
++ ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).la $(PKG_DEVLIB_DIR); \
++ ../$(INSTALL) -m 644 $(LIBNAME).la $(PKG_DEVLIB_DIR)/$(LIBNAME).la ; \
++ ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
++ ../$(INSTALL) -T so_base $(LIBNAME).la $(PKG_LIB_DIR); \
++ if test "x$(PKG_DEVLIB_DIR)" != "x$(PKG_LIB_DIR)" ; then \
++ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \
++ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \
++ fi
+
+ INSTALL_MAN = \
+ @for d in $(MAN_PAGES); do \
+++ /dev/null
-Support installation of .a file when doing static linking
-
-When doing static linking (i.e ENABLE_SHARED != yes), the attr build
-logic wasn't installing any library at all, not even the .a file which
-is needed for static linking. This patch fixes that.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/include/buildmacros
-===================================================================
---- a/include/buildmacros
-+++ b/include/buildmacros
-@@ -97,7 +97,15 @@
-
- INSTALL_LTLIB_STATIC = \
- cd $(TOPDIR)/$(LIBNAME)/.libs; \
-- ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR);
-+ ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR); \
-+ ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).la $(PKG_DEVLIB_DIR); \
-+ ../$(INSTALL) -m 644 $(LIBNAME).la $(PKG_DEVLIB_DIR)/$(LIBNAME).la ; \
-+ ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
-+ ../$(INSTALL) -T so_base $(LIBNAME).la $(PKG_LIB_DIR); \
-+ if test "x$(PKG_DEVLIB_DIR)" != "x$(PKG_LIB_DIR)" ; then \
-+ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \
-+ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \
-+ fi
-
- INSTALL_MAN = \
- @for d in $(MAN_PAGES); do \
--- /dev/null
+Aumix's src/Makefile.am incorrect adds @includedir@ to the list of
+include paths and @libdir@ to the list of libraries paths. This is
+incorrect, as @includedir@ and @libdir@ are respectively /usr/include
+and /usr/lib, even in cross-compilation mode.
+
+At the same time, use AM_CFLAGS instead of CFLAGS, as is done on the
+similar patch found in OpenEmbedded.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ src/Makefile.am | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+Index: aumix-2.8/src/Makefile.am
+===================================================================
+--- aumix-2.8.orig/src/Makefile.am
++++ aumix-2.8/src/Makefile.am
+@@ -7,9 +7,8 @@
+ mouse.c common.h curses.h gpm-xterm.h gtk.h interactive.h \
+ mouse.h play.xpm record.xpm
+ localedir = $(datadir)/locale
+-INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\" -I@includedir@
+-CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
+-LDADD = -L@libdir@
++INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
++AM_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
+ LIBS = @LIBS@ @GTK_LIBS@ @INTLLIBS@
+ DEFS = @DEFS@
+
+++ /dev/null
-Aumix's src/Makefile.am incorrect adds @includedir@ to the list of
-include paths and @libdir@ to the list of libraries paths. This is
-incorrect, as @includedir@ and @libdir@ are respectively /usr/include
-and /usr/lib, even in cross-compilation mode.
-
-At the same time, use AM_CFLAGS instead of CFLAGS, as is done on the
-similar patch found in OpenEmbedded.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- src/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-Index: aumix-2.8/src/Makefile.am
-===================================================================
---- aumix-2.8.orig/src/Makefile.am
-+++ aumix-2.8/src/Makefile.am
-@@ -7,9 +7,8 @@
- mouse.c common.h curses.h gpm-xterm.h gtk.h interactive.h \
- mouse.h play.xpm record.xpm
- localedir = $(datadir)/locale
--INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\" -I@includedir@
--CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
--LDADD = -L@libdir@
-+INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
-+AM_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
- LIBS = @LIBS@ @GTK_LIBS@ @INTLLIBS@
- DEFS = @DEFS@
-
--- /dev/null
+autoconf: don't append -dirty to version
+
+Don't append -dirty to autoconf version number if the buildroot git tree
+has uncommited changes.
+
+This script is meant for the autoconf developers, but it also activates
+if you build autoconf in a subdirectory of a git tree (E.G. like how it's
+commonly done in buildroot).
+
+The affect is that autoconf gets built as being version 2.65-dirty, which
+breaks programs (like Python) which explicitly checks for autoconf-2.65.
+
+[Gustavo: update for autoconf 2.69]
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura autoconf-2.69.orig/build-aux/git-version-gen autoconf-2.69/build-aux/git-version-gen
+--- autoconf-2.69.orig/build-aux/git-version-gen 2013-06-27 11:31:02.340200154 -0300
++++ autoconf-2.69/build-aux/git-version-gen 2013-06-27 11:31:13.734577033 -0300
+@@ -203,7 +203,7 @@
+ *) # Append the suffix only if there isn't one already.
+ case $v in
+ *-dirty) ;;
+- *) v="$v-dirty" ;;
++ #*) v="$v-dirty" ;;
+ esac ;;
+ esac
+ fi
+++ /dev/null
-autoconf: don't append -dirty to version
-
-Don't append -dirty to autoconf version number if the buildroot git tree
-has uncommited changes.
-
-This script is meant for the autoconf developers, but it also activates
-if you build autoconf in a subdirectory of a git tree (E.G. like how it's
-commonly done in buildroot).
-
-The affect is that autoconf gets built as being version 2.65-dirty, which
-breaks programs (like Python) which explicitly checks for autoconf-2.65.
-
-[Gustavo: update for autoconf 2.69]
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura autoconf-2.69.orig/build-aux/git-version-gen autoconf-2.69/build-aux/git-version-gen
---- autoconf-2.69.orig/build-aux/git-version-gen 2013-06-27 11:31:02.340200154 -0300
-+++ autoconf-2.69/build-aux/git-version-gen 2013-06-27 11:31:13.734577033 -0300
-@@ -203,7 +203,7 @@
- *) # Append the suffix only if there isn't one already.
- case $v in
- *-dirty) ;;
-- *) v="$v-dirty" ;;
-+ #*) v="$v-dirty" ;;
- esac ;;
- esac
- fi
--- /dev/null
+Disable manpages build and installation, seems the bundled version of
+help2man is somewhat old and breaks on modern distributions such as
+Fedora 20, as reported by Kanibal on IRC.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura automake-1.14.1.orig/Makefile.in automake-1.14.1/Makefile.in
+--- automake-1.14.1.orig/Makefile.in 2014-09-10 18:40:57.554164448 -0300
++++ automake-1.14.1/Makefile.in 2014-09-10 18:42:01.050348068 -0300
+@@ -3387,7 +3387,7 @@
+ check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local
+ check: check-am
+-all-am: Makefile $(INFO_DEPS) $(SCRIPTS) $(MANS) $(DATA)
++all-am: Makefile $(INFO_DEPS) $(SCRIPTS) $(DATA)
+ installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(amdir)" "$(DESTDIR)$(automake_acdir)" "$(DESTDIR)$(automake_internal_acdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(perllibdir)" "$(DESTDIR)$(pkgvdatadir)" "$(DESTDIR)$(scriptdir)" "$(DESTDIR)$(system_acdir)" "$(DESTDIR)$(perllibdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+@@ -3454,7 +3454,7 @@
+ install-dist_automake_internal_acDATA install-dist_docDATA \
+ install-dist_perllibDATA install-dist_pkgvdataDATA \
+ install-dist_scriptDATA install-dist_system_acDATA \
+- install-info-am install-man install-nodist_perllibDATA
++ install-info-am install-nodist_perllibDATA
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+ install-dvi: install-dvi-am
+++ /dev/null
-Disable manpages build and installation, seems the bundled version of
-help2man is somewhat old and breaks on modern distributions such as
-Fedora 20, as reported by Kanibal on IRC.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura automake-1.14.1.orig/Makefile.in automake-1.14.1/Makefile.in
---- automake-1.14.1.orig/Makefile.in 2014-09-10 18:40:57.554164448 -0300
-+++ automake-1.14.1/Makefile.in 2014-09-10 18:42:01.050348068 -0300
-@@ -3387,7 +3387,7 @@
- check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local
- check: check-am
--all-am: Makefile $(INFO_DEPS) $(SCRIPTS) $(MANS) $(DATA)
-+all-am: Makefile $(INFO_DEPS) $(SCRIPTS) $(DATA)
- installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(amdir)" "$(DESTDIR)$(automake_acdir)" "$(DESTDIR)$(automake_internal_acdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(perllibdir)" "$(DESTDIR)$(pkgvdatadir)" "$(DESTDIR)$(scriptdir)" "$(DESTDIR)$(system_acdir)" "$(DESTDIR)$(perllibdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-@@ -3454,7 +3454,7 @@
- install-dist_automake_internal_acDATA install-dist_docDATA \
- install-dist_perllibDATA install-dist_pkgvdataDATA \
- install-dist_scriptDATA install-dist_system_acDATA \
-- install-info-am install-man install-nodist_perllibDATA
-+ install-info-am install-nodist_perllibDATA
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-data-hook
- install-dvi: install-dvi-am
--- /dev/null
+--- avahi-0.6.14/avahi-autoipd/main.c.cls 2006-09-13 12:49:45.000000000 -0700
++++ avahi-0.6.14/avahi-autoipd/main.c 2006-09-25 20:34:10.000000000 -0700
+@@ -239,7 +239,7 @@
+
+ fprintf(f, "%s\n", inet_ntop(AF_INET, &addr, buf, sizeof (buf)));
+ fclose(f);
+-
++ chmod(fn, S_IRUSR|S_IWUSR);
+ return 0;
+
+ fail:
--- /dev/null
+[PATCH] avahi-daemon: disable systemd support
+
+Disable systemd support as it isn't needed for BR, and uses SOCK_CLOEXEC
+which isn't available on uClibc.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ avahi-daemon/sd-daemon.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: avahi-0.6.27/avahi-daemon/sd-daemon.h
+===================================================================
+--- avahi-0.6.27.orig/avahi-daemon/sd-daemon.h
++++ avahi-0.6.27/avahi-daemon/sd-daemon.h
+@@ -66,6 +66,7 @@ extern "C" {
+
+ See sd-daemon(7) for more information.
+ */
++#define DISABLE_SYSTEMD /* no systemd support in BR */
+
+ #if __GNUC__ >= 4
+ #define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b)))
--- /dev/null
+diff -urpN avahi-0.6.22.orig/avahi-core/socket.c avahi-0.6.22/avahi-core/socket.c
+--- avahi-0.6.22.orig/avahi-core/socket.c 2007-12-16 22:03:08.000000000 +0100
++++ avahi-0.6.22/avahi-core/socket.c 2008-03-31 17:13:24.000000000 +0200
+@@ -394,13 +394,13 @@ int avahi_open_socket_ipv6(int no_reuse)
+ avahi_log_warn("IPV6_UNICAST_HOPS failed: %s", strerror(errno));
+ goto fail;
+ }
+-
++#ifdef IPV6_V6ONLY
+ yes = 1;
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("IPV6_V6ONLY failed: %s", strerror(errno));
+ goto fail;
+ }
+-
++#endif
+ yes = 1;
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &yes, sizeof(yes)) < 0) {
+ avahi_log_warn("IPV6_MULTICAST_LOOP failed: %s", strerror(errno));
--- /dev/null
+Patch from http://pkgs.fedoraproject.org/cgit/avahi.git/plain/avahi-0.6.31-no-deprecations.patch?id=b3f4de05e331258c5123e3acc144e452595c2112
+
+Don't disable deprecated GTK support, as that breaks builds with modern GTK3
+versions.
+
+For more details, see the Fedora bugzilla:
+https://bugzilla.redhat.com/show_bug.cgi?id=1001676
+
+[Peter: patch Makefile.in so we don't need autoreconf]
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ avahi-ui/Makefile.am | 2 +-
+ avahi-ui/Makefile.in | 3 +--
+ configure.ac | 2 +-
+ 3 files changed, 3 insertions(+), 4 deletions(-)
+
+Index: avahi-0.6.31/avahi-ui/Makefile.in
+===================================================================
+--- avahi-0.6.31.orig/avahi-ui/Makefile.in
++++ avahi-0.6.31/avahi-ui/Makefile.in
+@@ -464,8 +464,7 @@
+ top_srcdir = @top_srcdir@
+
+ # This cool debug trap works on i386/gcc only
+-AM_CFLAGS = -I$(top_srcdir) -DG_DISABLE_DEPRECATED=1 \
+- -DGDK_DISABLE_DEPRECATED=1 -DGTK_DISABLE_DEPRECATED=1 \
++AM_CFLAGS = -I$(top_srcdir) \
+ '-DDEBUG_TRAP=__asm__("int $$3")' $(am__append_1)
+ pkglibdatadir = $(libdir)/avahi
+ desktopdir = $(datadir)/applications
--- /dev/null
+[PATCH] avahi-core: make ipv6 support optional on uclibc 0.9.31+
+
+uClibc 0.9.31+ doesn't define the IPV6_* defines when IPv6 support isn't
+enabled, causing the avahi build to break. Detect this configuration, and
+comment out IPv6 code if so.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ avahi-core/socket.c | 28 +++++++++++++++++++++++-----
+ 1 file changed, 23 insertions(+), 5 deletions(-)
+
+Index: avahi-0.6.23/avahi-core/socket.c
+===================================================================
+--- avahi-0.6.23.orig/avahi-core/socket.c
++++ avahi-0.6.23/avahi-core/socket.c
+@@ -47,6 +47,11 @@
+ #include <net/if_dl.h>
+ #endif
+
++#include <features.h>
++#if defined(__UCLIBC__) && !defined (__UCLIBC_HAS_IPV6__)
++#define NO_IPV6
++#endif
++
+ #include "dns.h"
+ #include "fdutil.h"
+ #include "socket.h"
+@@ -75,6 +80,7 @@ static void mdns_mcast_group_ipv4(struct
+ inet_pton(AF_INET, AVAHI_IPV4_MCAST_GROUP, &ret_sa->sin_addr);
+ }
+
++#ifndef NO_IPV6
+ static void mdns_mcast_group_ipv6(struct sockaddr_in6 *ret_sa) {
+ assert(ret_sa);
+
+@@ -83,6 +89,7 @@ static void mdns_mcast_group_ipv6(struct
+ ret_sa->sin6_port = htons(AVAHI_MDNS_PORT);
+ inet_pton(AF_INET6, AVAHI_IPV6_MCAST_GROUP, &ret_sa->sin6_addr);
+ }
++#endif
+
+ static void ipv4_address_to_sockaddr(struct sockaddr_in *ret_sa, const AvahiIPv4Address *a, uint16_t port) {
+ assert(ret_sa);
+@@ -95,6 +102,7 @@ static void ipv4_address_to_sockaddr(str
+ memcpy(&ret_sa->sin_addr, a, sizeof(AvahiIPv4Address));
+ }
+
++#ifndef NO_IPV6
+ static void ipv6_address_to_sockaddr(struct sockaddr_in6 *ret_sa, const AvahiIPv6Address *a, uint16_t port) {
+ assert(ret_sa);
+ assert(a);
+@@ -105,6 +113,7 @@ static void ipv6_address_to_sockaddr(str
+ ret_sa->sin6_port = htons(port);
+ memcpy(&ret_sa->sin6_addr, a, sizeof(AvahiIPv6Address));
+ }
++#endif
+
+ int avahi_mdns_mcast_join_ipv4(int fd, const AvahiIPv4Address *a, int idx, int join) {
+ #ifdef HAVE_STRUCT_IP_MREQN
+@@ -143,6 +152,7 @@ int avahi_mdns_mcast_join_ipv4(int fd, c
+ }
+
+ int avahi_mdns_mcast_join_ipv6(int fd, const AvahiIPv6Address *a, int idx, int join) {
++#ifndef NO_IPV6
+ struct ipv6_mreq mreq6;
+ struct sockaddr_in6 sa6;
+
+@@ -164,6 +174,9 @@ int avahi_mdns_mcast_join_ipv6(int fd, c
+ }
+
+ return 0;
++#else
++ return -1;
++#endif
+ }
+
+ static int reuseaddr(int fd) {
+@@ -372,6 +385,7 @@ fail:
+ }
+
+ int avahi_open_socket_ipv6(int no_reuse) {
++#ifndef NO_IPV6
+ struct sockaddr_in6 sa, local;
+ int fd = -1, yes, r;
+ int ttl;
+@@ -437,7 +451,7 @@ int avahi_open_socket_ipv6(int no_reuse)
+ fail:
+ if (fd >= 0)
+ close(fd);
+-
++#endif
+ return -1;
+ }
+
+@@ -567,7 +581,7 @@ int avahi_send_dns_packet_ipv6(
+ const AvahiIPv6Address *src_address,
+ const AvahiIPv6Address *dst_address,
+ uint16_t dst_port) {
+-
++#ifndef NO_IPV6
+ struct sockaddr_in6 sa;
+ struct msghdr msg;
+ struct iovec io;
+@@ -620,6 +634,9 @@ int avahi_send_dns_packet_ipv6(
+ }
+
+ return sendmsg_loop(fd, &msg, 0);
++#else
++ return -1;
++#endif
+ }
+
+ AvahiDnsPacket *avahi_recv_dns_packet_ipv4(
+@@ -782,7 +799,7 @@ AvahiDnsPacket *avahi_recv_dns_packet_ip
+ AvahiIPv6Address *ret_dst_address,
+ AvahiIfIndex *ret_iface,
+ uint8_t *ret_ttl) {
+-
++#ifndef NO_IPV6
+ AvahiDnsPacket *p = NULL;
+ struct msghdr msg;
+ struct iovec io;
+@@ -889,7 +906,7 @@ AvahiDnsPacket *avahi_recv_dns_packet_ip
+ fail:
+ if (p)
+ avahi_dns_packet_free(p);
+-
++#endif
+ return NULL;
+ }
+
+@@ -934,6 +951,7 @@ fail:
+ }
+
+ int avahi_open_unicast_socket_ipv6(void) {
++#ifndef NO_IPV6
+ struct sockaddr_in6 local;
+ int fd = -1, yes;
+
+@@ -974,6 +992,6 @@ int avahi_open_unicast_socket_ipv6(void)
+ fail:
+ if (fd >= 0)
+ close(fd);
+-
++#endif
+ return -1;
+ }
+++ /dev/null
---- avahi-0.6.14/avahi-autoipd/main.c.cls 2006-09-13 12:49:45.000000000 -0700
-+++ avahi-0.6.14/avahi-autoipd/main.c 2006-09-25 20:34:10.000000000 -0700
-@@ -239,7 +239,7 @@
-
- fprintf(f, "%s\n", inet_ntop(AF_INET, &addr, buf, sizeof (buf)));
- fclose(f);
--
-+ chmod(fn, S_IRUSR|S_IWUSR);
- return 0;
-
- fail:
+++ /dev/null
-[PATCH] avahi-daemon: disable systemd support
-
-Disable systemd support as it isn't needed for BR, and uses SOCK_CLOEXEC
-which isn't available on uClibc.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- avahi-daemon/sd-daemon.h | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: avahi-0.6.27/avahi-daemon/sd-daemon.h
-===================================================================
---- avahi-0.6.27.orig/avahi-daemon/sd-daemon.h
-+++ avahi-0.6.27/avahi-daemon/sd-daemon.h
-@@ -66,6 +66,7 @@ extern "C" {
-
- See sd-daemon(7) for more information.
- */
-+#define DISABLE_SYSTEMD /* no systemd support in BR */
-
- #if __GNUC__ >= 4
- #define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b)))
+++ /dev/null
-diff -urpN avahi-0.6.22.orig/avahi-core/socket.c avahi-0.6.22/avahi-core/socket.c
---- avahi-0.6.22.orig/avahi-core/socket.c 2007-12-16 22:03:08.000000000 +0100
-+++ avahi-0.6.22/avahi-core/socket.c 2008-03-31 17:13:24.000000000 +0200
-@@ -394,13 +394,13 @@ int avahi_open_socket_ipv6(int no_reuse)
- avahi_log_warn("IPV6_UNICAST_HOPS failed: %s", strerror(errno));
- goto fail;
- }
--
-+#ifdef IPV6_V6ONLY
- yes = 1;
- if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &yes, sizeof(yes)) < 0) {
- avahi_log_warn("IPV6_V6ONLY failed: %s", strerror(errno));
- goto fail;
- }
--
-+#endif
- yes = 1;
- if (setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &yes, sizeof(yes)) < 0) {
- avahi_log_warn("IPV6_MULTICAST_LOOP failed: %s", strerror(errno));
+++ /dev/null
-Patch from http://pkgs.fedoraproject.org/cgit/avahi.git/plain/avahi-0.6.31-no-deprecations.patch?id=b3f4de05e331258c5123e3acc144e452595c2112
-
-Don't disable deprecated GTK support, as that breaks builds with modern GTK3
-versions.
-
-For more details, see the Fedora bugzilla:
-https://bugzilla.redhat.com/show_bug.cgi?id=1001676
-
-[Peter: patch Makefile.in so we don't need autoreconf]
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- avahi-ui/Makefile.am | 2 +-
- avahi-ui/Makefile.in | 3 +--
- configure.ac | 2 +-
- 3 files changed, 3 insertions(+), 4 deletions(-)
-
-Index: avahi-0.6.31/avahi-ui/Makefile.in
-===================================================================
---- avahi-0.6.31.orig/avahi-ui/Makefile.in
-+++ avahi-0.6.31/avahi-ui/Makefile.in
-@@ -464,8 +464,7 @@
- top_srcdir = @top_srcdir@
-
- # This cool debug trap works on i386/gcc only
--AM_CFLAGS = -I$(top_srcdir) -DG_DISABLE_DEPRECATED=1 \
-- -DGDK_DISABLE_DEPRECATED=1 -DGTK_DISABLE_DEPRECATED=1 \
-+AM_CFLAGS = -I$(top_srcdir) \
- '-DDEBUG_TRAP=__asm__("int $$3")' $(am__append_1)
- pkglibdatadir = $(libdir)/avahi
- desktopdir = $(datadir)/applications
+++ /dev/null
-[PATCH] avahi-core: make ipv6 support optional on uclibc 0.9.31+
-
-uClibc 0.9.31+ doesn't define the IPV6_* defines when IPv6 support isn't
-enabled, causing the avahi build to break. Detect this configuration, and
-comment out IPv6 code if so.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- avahi-core/socket.c | 28 +++++++++++++++++++++++-----
- 1 file changed, 23 insertions(+), 5 deletions(-)
-
-Index: avahi-0.6.23/avahi-core/socket.c
-===================================================================
---- avahi-0.6.23.orig/avahi-core/socket.c
-+++ avahi-0.6.23/avahi-core/socket.c
-@@ -47,6 +47,11 @@
- #include <net/if_dl.h>
- #endif
-
-+#include <features.h>
-+#if defined(__UCLIBC__) && !defined (__UCLIBC_HAS_IPV6__)
-+#define NO_IPV6
-+#endif
-+
- #include "dns.h"
- #include "fdutil.h"
- #include "socket.h"
-@@ -75,6 +80,7 @@ static void mdns_mcast_group_ipv4(struct
- inet_pton(AF_INET, AVAHI_IPV4_MCAST_GROUP, &ret_sa->sin_addr);
- }
-
-+#ifndef NO_IPV6
- static void mdns_mcast_group_ipv6(struct sockaddr_in6 *ret_sa) {
- assert(ret_sa);
-
-@@ -83,6 +89,7 @@ static void mdns_mcast_group_ipv6(struct
- ret_sa->sin6_port = htons(AVAHI_MDNS_PORT);
- inet_pton(AF_INET6, AVAHI_IPV6_MCAST_GROUP, &ret_sa->sin6_addr);
- }
-+#endif
-
- static void ipv4_address_to_sockaddr(struct sockaddr_in *ret_sa, const AvahiIPv4Address *a, uint16_t port) {
- assert(ret_sa);
-@@ -95,6 +102,7 @@ static void ipv4_address_to_sockaddr(str
- memcpy(&ret_sa->sin_addr, a, sizeof(AvahiIPv4Address));
- }
-
-+#ifndef NO_IPV6
- static void ipv6_address_to_sockaddr(struct sockaddr_in6 *ret_sa, const AvahiIPv6Address *a, uint16_t port) {
- assert(ret_sa);
- assert(a);
-@@ -105,6 +113,7 @@ static void ipv6_address_to_sockaddr(str
- ret_sa->sin6_port = htons(port);
- memcpy(&ret_sa->sin6_addr, a, sizeof(AvahiIPv6Address));
- }
-+#endif
-
- int avahi_mdns_mcast_join_ipv4(int fd, const AvahiIPv4Address *a, int idx, int join) {
- #ifdef HAVE_STRUCT_IP_MREQN
-@@ -143,6 +152,7 @@ int avahi_mdns_mcast_join_ipv4(int fd, c
- }
-
- int avahi_mdns_mcast_join_ipv6(int fd, const AvahiIPv6Address *a, int idx, int join) {
-+#ifndef NO_IPV6
- struct ipv6_mreq mreq6;
- struct sockaddr_in6 sa6;
-
-@@ -164,6 +174,9 @@ int avahi_mdns_mcast_join_ipv6(int fd, c
- }
-
- return 0;
-+#else
-+ return -1;
-+#endif
- }
-
- static int reuseaddr(int fd) {
-@@ -372,6 +385,7 @@ fail:
- }
-
- int avahi_open_socket_ipv6(int no_reuse) {
-+#ifndef NO_IPV6
- struct sockaddr_in6 sa, local;
- int fd = -1, yes, r;
- int ttl;
-@@ -437,7 +451,7 @@ int avahi_open_socket_ipv6(int no_reuse)
- fail:
- if (fd >= 0)
- close(fd);
--
-+#endif
- return -1;
- }
-
-@@ -567,7 +581,7 @@ int avahi_send_dns_packet_ipv6(
- const AvahiIPv6Address *src_address,
- const AvahiIPv6Address *dst_address,
- uint16_t dst_port) {
--
-+#ifndef NO_IPV6
- struct sockaddr_in6 sa;
- struct msghdr msg;
- struct iovec io;
-@@ -620,6 +634,9 @@ int avahi_send_dns_packet_ipv6(
- }
-
- return sendmsg_loop(fd, &msg, 0);
-+#else
-+ return -1;
-+#endif
- }
-
- AvahiDnsPacket *avahi_recv_dns_packet_ipv4(
-@@ -782,7 +799,7 @@ AvahiDnsPacket *avahi_recv_dns_packet_ip
- AvahiIPv6Address *ret_dst_address,
- AvahiIfIndex *ret_iface,
- uint8_t *ret_ttl) {
--
-+#ifndef NO_IPV6
- AvahiDnsPacket *p = NULL;
- struct msghdr msg;
- struct iovec io;
-@@ -889,7 +906,7 @@ AvahiDnsPacket *avahi_recv_dns_packet_ip
- fail:
- if (p)
- avahi_dns_packet_free(p);
--
-+#endif
- return NULL;
- }
-
-@@ -934,6 +951,7 @@ fail:
- }
-
- int avahi_open_unicast_socket_ipv6(void) {
-+#ifndef NO_IPV6
- struct sockaddr_in6 local;
- int fd = -1, yes;
-
-@@ -974,6 +992,6 @@ int avahi_open_unicast_socket_ipv6(void)
- fail:
- if (fd >= 0)
- close(fd);
--
-+#endif
- return -1;
- }
--- /dev/null
+Makefile.am: Only compile/link cppglue.cxx if --with-cplusplus is used
+
+Bloats libbeecrypt for no use and breaks build on systems without a C++
+compiler.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ Makefile.am | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+Index: beecrypt-4.2.1/Makefile.am
+===================================================================
+--- beecrypt-4.2.1.orig/Makefile.am
++++ beecrypt-4.2.1/Makefile.am
+@@ -62,7 +62,12 @@
+
+ lib_LTLIBRARIES = libbeecrypt.la
+
+-libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhies.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha224.c hmacsha256.c md4.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c ripemd128.c ripemd160.c ripemd256.c ripemd320.c rsa.c rsakp.c rsapk.c sha1.c sha224.c sha256.c sha384.c sha512.c sha2k32.c sha2k64.c timestamp.c cppglue.cxx
++libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhies.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha224.c hmacsha256.c md4.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c ripemd128.c ripemd160.c ripemd256.c ripemd320.c rsa.c rsakp.c rsapk.c sha1.c sha224.c sha256.c sha384.c sha512.c sha2k32.c sha2k64.c timestamp.c
++
++if WITH_CPLUSPLUS
++libbeecrypt_la_SOURCES += cppglue.cxx
++endif
++
+ libbeecrypt_la_DEPENDENCIES = $(BEECRYPT_OBJECTS)
+ libbeecrypt_la_LIBADD = blowfishopt.lo mpopt.lo sha1opt.lo $(OPENMP_LIBS)
+ libbeecrypt_la_LDFLAGS = -no-undefined -version-info $(LIBBEECRYPT_LT_CURRENT):$(LIBBEECRYPT_LT_REVISION):$(LIBBEECRYPT_LT_AGE)
--- /dev/null
+configure: Use AC_COMPILE_IFELSE for ICU check for cross compilation compat
+
+AC_RUN_IFELSE doesn't work when cross compiling, but we can do the
+check in the preprocessor instead, so use AC_COMPILE_IFELSE instead.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: beecrypt-4.2.1/configure.ac
+===================================================================
+--- beecrypt-4.2.1.orig/configure.ac
++++ beecrypt-4.2.1/configure.ac
+@@ -295,13 +295,13 @@
+ if test "$ac_with_cplusplus" = yes; then
+ AC_MSG_CHECKING([for IBM's ICU library version >= 2.8])
+ AC_LANG_PUSH(C)
+- AC_RUN_IFELSE([
++ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[#include <unicode/uversion.h>]],[[
+ #if U_ICU_VERSION_MAJOR_NUM < 2
+- exit(1);
++ #error too old
+ #elif U_ICU_VERSION_MAJOR_NUM == 2
+ # if U_ICU_VERSION_MINOR_NUM < 8
+- exit(1);
++ #error too old
+ # else
+ exit(0);
+ # endif
--- /dev/null
+Fix build with BR2_ENABLE_DEBUG=yes, no need for expert mode anymore
+
+Otherwise configure issues this error message:
+configure: error: --enable-debug cannot be used in conjunction with --enable-expert-mode
+
+Downloaded from Gentoo:
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/beecrypt/files/beecrypt-4.2.1-build-system.patch?revision=1.2&view=markup
+
+This patch also removes the hard-coded CFLAGS provided by beecrypt in favour
+of the CFLAGS provided by buildroot.
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+--- beecrypt-4.2.1/configure.ac
++++ beecrypt-4.2.1/configure.ac
+@@ -11,7 +11,7 @@
+
+ # Checks for package options
+ AC_ARG_ENABLE(expert-mode, [ --enable-expert-mode follow user-defined CFLAGS settings [[default=no]]],[
+- ac_enable_expert_mode=yes
++ ac_enable_expert_mode=$enableval
+ ],[
+ if test "X$CFLAGS" != "X"; then
+ echo "enabling expert mode"
+@@ -25,7 +25,7 @@
+ if test "$ac_enable_expert_mode" = yes; then
+ AC_MSG_ERROR([--enable-debug cannot be used in conjunction with --enable-expert-mode])
+ fi
+- ac_enable_debug=yes
++ ac_enable_debug=$enableval
+ ],[
+ ac_enable_debug=no
+ ])
+@@ -456,7 +456,7 @@
+ ac_cv_python_include="-I`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_inc()'`"
+ ])
+ AC_CACHE_CHECK([where to install python libraries], ac_cv_python_libdir, [
+- ac_cv_python_libdir=`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()'`
++ ac_cv_python_libdir=`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(1, 0)'`
+ ])
+ fi
+ fi
+--- beecrypt-4.2.1/acinclude.m4
++++ beecrypt-4.2.1/acinclude.m4
+@@ -498,15 +498,6 @@ AC_DEFUN([BEE_GNU_CC],[
+ AC_SUBST(OPENMP_LIBS,"-lgomp")
+ fi
+ case $bc_target_arch in
+- x86_64 | athlon64 | athlon-fx | k8 | opteron | em64t | nocona)
+- CC="$CC -m64"
+- ;;
+- i[[3456]]86 | \
+- pentium* | \
+- athlon*)
+- CC="$CC -m32"
+- CCAS="$CCAS -m32"
+- ;;
+ ia64)
+ case $target_os in
+ # HP/UX on Itanium needs to be told that a long is 64-bit!
+@@ -525,17 +516,8 @@ AC_DEFUN([BEE_GNU_CC],[
+ aix*)
+ CC="$CC -maix64"
+ ;;
+- linux*)
+- CC="$CC -m64"
+- ;;
+ esac
+ ;;
+- sparc | sparcv8*)
+- CC="$CC -m32"
+- ;;
+- sparc64 | sparcv9*)
+- CC="$CC -m64"
+- ;;
+ esac
+ # Certain platforms needs special flags for multi-threaded code
+ if test "$ac_enable_threads" = yes; then
+@@ -646,14 +646,6 @@ dnl BEE_GNU_CXX
+ AC_DEFUN([BEE_GNU_CXX],[
+ AC_REQUIRE([AC_PROG_CXX])
+ case $bc_target_arch in
+- x86_64 | athlon64 | athlon-fx | k8 | opteron | em64t | nocona | core2)
+- CXX="$CXX -m64"
+- ;;
+- i[[3456]]86 | \
+- pentium* | \
+- athlon*)
+- CXX="$CXX -m32"
+- ;;
+ ia64)
+ case $target_os in
+ # HP/UX on Itanium needs to be told that a long is 64-bit!
+@@ -672,17 +664,8 @@ AC_DEFUN([BEE_GNU_CXX],[
+ aix*)
+ CXX="$CXX -maix64"
+ ;;
+- linux*)
+- CXX="$CXX -m64"
+- ;;
+ esac
+ ;;
+- sparc | sparcv8*)
+- CXX="$CXX -m32"
+- ;;
+- sparc64 | sparcv9*)
+- CXX="$CXX -m64"
+- ;;
+ esac
+ # Certain platforms needs special flags for multi-threaded code
+ if test "$ac_enable_threads" = yes; then
+--- beecrypt-4.2.1/java/Makefile.am
++++ beecrypt-4.2.1/java/Makefile.am
+@@ -26,7 +26,7 @@
+
+ INCLUDES = -I$(top_srcdir)/include
+
+-libaltdir=$(prefix)/lib@LIBALT@
++libaltdir=$(libdir)
+
+ libalt_LTLIBRARIES = libbeecrypt_java.la
+
+--- beecrypt-4.2.1/acinclude.m4
++++ beecrypt-4.2.1/acinclude.m4
+@@ -1589,20 +1589,5 @@
+ AC_SUBST(TYPEDEF_BC_THREADID_T,$bc_typedef_bc_threadid_t)
+ ])
+-
+-AH_BOTTOM([
+-#if ENABLE_THREADS
+-# ifndef _REENTRANT
+-# define _REENTRANT
+-# endif
+-# if LINUX
+-# define _LIBC_REENTRANT
+-# endif
+-#else
+-# ifdef _REENTRANT
+-# undef _REENTRANT
+-# endif
+-#endif
+-])
+
+
+ dnl BEE_THREAD_LOCAL_STORAGE
+@@ -1623,7 +1609,5 @@
+ ])
+
+ AH_BOTTOM([
+-#if !ENABLE_THREAD_LOCAL_STORAGE
+-# define __thread
+-#endif
++#include "config.threads.h"
+ ])
+--- beecrypt-4.2.1/config.threads.h
++++ beecrypt-4.2.1/config.threads.h
+@@ -0,0 +1,16 @@
++#if ENABLE_THREADS
++# ifndef _REENTRANT
++# define _REENTRANT
++# endif
++# if LINUX
++# define _LIBC_REENTRANT
++# endif
++#else
++# ifdef _REENTRANT
++# undef _REENTRANT
++# endif
++#endif
++
++#if !ENABLE_THREAD_LOCAL_STORAGE
++# define __thread
++#endif
--- /dev/null
+Really fixes gcc-4.7 related compile error:
+../../include/beecrypt/c++/util/AbstractSet.h:59:27: error: 'containsAll' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
+
+Downloaded from upstream bugtracker:
+http://sourceforge.net/p/beecrypt/patches/10/
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+--- a/include/beecrypt/c++/util/AbstractSet.h
++++ b/include/beecrypt/c++/util/AbstractSet.h
+@@ -56,7 +56,7 @@
+ if (c->size() != size())
+ return false;
+
+- return containsAll(*c);
++ return this->containsAll(*c);
+ }
+ return false;
+ }
+++ /dev/null
-Makefile.am: Only compile/link cppglue.cxx if --with-cplusplus is used
-
-Bloats libbeecrypt for no use and breaks build on systems without a C++
-compiler.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- Makefile.am | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-Index: beecrypt-4.2.1/Makefile.am
-===================================================================
---- beecrypt-4.2.1.orig/Makefile.am
-+++ beecrypt-4.2.1/Makefile.am
-@@ -62,7 +62,12 @@
-
- lib_LTLIBRARIES = libbeecrypt.la
-
--libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhies.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha224.c hmacsha256.c md4.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c ripemd128.c ripemd160.c ripemd256.c ripemd320.c rsa.c rsakp.c rsapk.c sha1.c sha224.c sha256.c sha384.c sha512.c sha2k32.c sha2k64.c timestamp.c cppglue.cxx
-+libbeecrypt_la_SOURCES = aes.c base64.c beecrypt.c blockmode.c blockpad.c blowfish.c dhies.c dldp.c dlkp.c dlpk.c dlsvdp-dh.c dsa.c elgamal.c endianness.c entropy.c fips186.c hmac.c hmacmd5.c hmacsha1.c hmacsha224.c hmacsha256.c md4.c md5.c hmacsha384.c hmacsha512.c memchunk.c mp.c mpbarrett.c mpnumber.c mpprime.c mtprng.c pkcs1.c pkcs12.c ripemd128.c ripemd160.c ripemd256.c ripemd320.c rsa.c rsakp.c rsapk.c sha1.c sha224.c sha256.c sha384.c sha512.c sha2k32.c sha2k64.c timestamp.c
-+
-+if WITH_CPLUSPLUS
-+libbeecrypt_la_SOURCES += cppglue.cxx
-+endif
-+
- libbeecrypt_la_DEPENDENCIES = $(BEECRYPT_OBJECTS)
- libbeecrypt_la_LIBADD = blowfishopt.lo mpopt.lo sha1opt.lo $(OPENMP_LIBS)
- libbeecrypt_la_LDFLAGS = -no-undefined -version-info $(LIBBEECRYPT_LT_CURRENT):$(LIBBEECRYPT_LT_REVISION):$(LIBBEECRYPT_LT_AGE)
+++ /dev/null
-configure: Use AC_COMPILE_IFELSE for ICU check for cross compilation compat
-
-AC_RUN_IFELSE doesn't work when cross compiling, but we can do the
-check in the preprocessor instead, so use AC_COMPILE_IFELSE instead.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- configure.ac | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-Index: beecrypt-4.2.1/configure.ac
-===================================================================
---- beecrypt-4.2.1.orig/configure.ac
-+++ beecrypt-4.2.1/configure.ac
-@@ -295,13 +295,13 @@
- if test "$ac_with_cplusplus" = yes; then
- AC_MSG_CHECKING([for IBM's ICU library version >= 2.8])
- AC_LANG_PUSH(C)
-- AC_RUN_IFELSE([
-+ AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[#include <unicode/uversion.h>]],[[
- #if U_ICU_VERSION_MAJOR_NUM < 2
-- exit(1);
-+ #error too old
- #elif U_ICU_VERSION_MAJOR_NUM == 2
- # if U_ICU_VERSION_MINOR_NUM < 8
-- exit(1);
-+ #error too old
- # else
- exit(0);
- # endif
+++ /dev/null
-Fix build with BR2_ENABLE_DEBUG=yes, no need for expert mode anymore
-
-Otherwise configure issues this error message:
-configure: error: --enable-debug cannot be used in conjunction with --enable-expert-mode
-
-Downloaded from Gentoo:
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/beecrypt/files/beecrypt-4.2.1-build-system.patch?revision=1.2&view=markup
-
-This patch also removes the hard-coded CFLAGS provided by beecrypt in favour
-of the CFLAGS provided by buildroot.
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
---- beecrypt-4.2.1/configure.ac
-+++ beecrypt-4.2.1/configure.ac
-@@ -11,7 +11,7 @@
-
- # Checks for package options
- AC_ARG_ENABLE(expert-mode, [ --enable-expert-mode follow user-defined CFLAGS settings [[default=no]]],[
-- ac_enable_expert_mode=yes
-+ ac_enable_expert_mode=$enableval
- ],[
- if test "X$CFLAGS" != "X"; then
- echo "enabling expert mode"
-@@ -25,7 +25,7 @@
- if test "$ac_enable_expert_mode" = yes; then
- AC_MSG_ERROR([--enable-debug cannot be used in conjunction with --enable-expert-mode])
- fi
-- ac_enable_debug=yes
-+ ac_enable_debug=$enableval
- ],[
- ac_enable_debug=no
- ])
-@@ -456,7 +456,7 @@
- ac_cv_python_include="-I`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_inc()'`"
- ])
- AC_CACHE_CHECK([where to install python libraries], ac_cv_python_libdir, [
-- ac_cv_python_libdir=`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()'`
-+ ac_cv_python_libdir=`$PYTHON -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(1, 0)'`
- ])
- fi
- fi
---- beecrypt-4.2.1/acinclude.m4
-+++ beecrypt-4.2.1/acinclude.m4
-@@ -498,15 +498,6 @@ AC_DEFUN([BEE_GNU_CC],[
- AC_SUBST(OPENMP_LIBS,"-lgomp")
- fi
- case $bc_target_arch in
-- x86_64 | athlon64 | athlon-fx | k8 | opteron | em64t | nocona)
-- CC="$CC -m64"
-- ;;
-- i[[3456]]86 | \
-- pentium* | \
-- athlon*)
-- CC="$CC -m32"
-- CCAS="$CCAS -m32"
-- ;;
- ia64)
- case $target_os in
- # HP/UX on Itanium needs to be told that a long is 64-bit!
-@@ -525,17 +516,8 @@ AC_DEFUN([BEE_GNU_CC],[
- aix*)
- CC="$CC -maix64"
- ;;
-- linux*)
-- CC="$CC -m64"
-- ;;
- esac
- ;;
-- sparc | sparcv8*)
-- CC="$CC -m32"
-- ;;
-- sparc64 | sparcv9*)
-- CC="$CC -m64"
-- ;;
- esac
- # Certain platforms needs special flags for multi-threaded code
- if test "$ac_enable_threads" = yes; then
-@@ -646,14 +646,6 @@ dnl BEE_GNU_CXX
- AC_DEFUN([BEE_GNU_CXX],[
- AC_REQUIRE([AC_PROG_CXX])
- case $bc_target_arch in
-- x86_64 | athlon64 | athlon-fx | k8 | opteron | em64t | nocona | core2)
-- CXX="$CXX -m64"
-- ;;
-- i[[3456]]86 | \
-- pentium* | \
-- athlon*)
-- CXX="$CXX -m32"
-- ;;
- ia64)
- case $target_os in
- # HP/UX on Itanium needs to be told that a long is 64-bit!
-@@ -672,17 +664,8 @@ AC_DEFUN([BEE_GNU_CXX],[
- aix*)
- CXX="$CXX -maix64"
- ;;
-- linux*)
-- CXX="$CXX -m64"
-- ;;
- esac
- ;;
-- sparc | sparcv8*)
-- CXX="$CXX -m32"
-- ;;
-- sparc64 | sparcv9*)
-- CXX="$CXX -m64"
-- ;;
- esac
- # Certain platforms needs special flags for multi-threaded code
- if test "$ac_enable_threads" = yes; then
---- beecrypt-4.2.1/java/Makefile.am
-+++ beecrypt-4.2.1/java/Makefile.am
-@@ -26,7 +26,7 @@
-
- INCLUDES = -I$(top_srcdir)/include
-
--libaltdir=$(prefix)/lib@LIBALT@
-+libaltdir=$(libdir)
-
- libalt_LTLIBRARIES = libbeecrypt_java.la
-
---- beecrypt-4.2.1/acinclude.m4
-+++ beecrypt-4.2.1/acinclude.m4
-@@ -1589,20 +1589,5 @@
- AC_SUBST(TYPEDEF_BC_THREADID_T,$bc_typedef_bc_threadid_t)
- ])
--
--AH_BOTTOM([
--#if ENABLE_THREADS
--# ifndef _REENTRANT
--# define _REENTRANT
--# endif
--# if LINUX
--# define _LIBC_REENTRANT
--# endif
--#else
--# ifdef _REENTRANT
--# undef _REENTRANT
--# endif
--#endif
--])
-
-
- dnl BEE_THREAD_LOCAL_STORAGE
-@@ -1623,7 +1609,5 @@
- ])
-
- AH_BOTTOM([
--#if !ENABLE_THREAD_LOCAL_STORAGE
--# define __thread
--#endif
-+#include "config.threads.h"
- ])
---- beecrypt-4.2.1/config.threads.h
-+++ beecrypt-4.2.1/config.threads.h
-@@ -0,0 +1,16 @@
-+#if ENABLE_THREADS
-+# ifndef _REENTRANT
-+# define _REENTRANT
-+# endif
-+# if LINUX
-+# define _LIBC_REENTRANT
-+# endif
-+#else
-+# ifdef _REENTRANT
-+# undef _REENTRANT
-+# endif
-+#endif
-+
-+#if !ENABLE_THREAD_LOCAL_STORAGE
-+# define __thread
-+#endif
+++ /dev/null
-Really fixes gcc-4.7 related compile error:
-../../include/beecrypt/c++/util/AbstractSet.h:59:27: error: 'containsAll' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
-
-Downloaded from upstream bugtracker:
-http://sourceforge.net/p/beecrypt/patches/10/
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
---- a/include/beecrypt/c++/util/AbstractSet.h
-+++ b/include/beecrypt/c++/util/AbstractSet.h
-@@ -56,7 +56,7 @@
- if (c->size() != size())
- return false;
-
-- return containsAll(*c);
-+ return this->containsAll(*c);
- }
- return false;
- }
--- /dev/null
+[PATCH] don't force -Werror in CFLAGS
+
+Released software shouldn't get built with -Werror.
+
+Signed-of-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: libomxil-bellagio-0.9.3/configure.ac
+===================================================================
+--- libomxil-bellagio-0.9.3.orig/configure.ac
++++ libomxil-bellagio-0.9.3/configure.ac
+@@ -5,7 +5,7 @@
+ AC_PREREQ([2.59])
+
+ AC_CONFIG_HEADERS([config.h])
+-CFLAGS="${CFLAGS} -Wall -Werror"
++CFLAGS="${CFLAGS} -Wall"
+
+ ################################################################################
+ # Set the shared versioning info, according to section 6.3 of the libtool info #
--- /dev/null
+When libomxdynamicloader.so is loaded, it complains that RM_Deinit can't be resolved.
+Link explicitly against omxil-bellagio so that ld.so can find the reference.
+
+Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
+
+--- bellagio-0.9.3/src/dynamic_loader/Makefile.am.old 2012-03-23 15:07:47.379021034 +0000
++++ bellagio-0.9.3/src/dynamic_loader/Makefile.am 2012-03-23 15:08:47.563034818 +0000
+@@ -3,7 +3,7 @@
+ omxdynamicloader_LTLIBRARIES = libomxdynamicloader.la
+ libomxdynamicloader_la_SOURCES = ste_dynamic_component_loader.c ste_dynamic_component_loader.h
+
+-libomxdynamicloader_la_LDFLAGS =
++libomxdynamicloader_la_LDFLAGS = -lomxil-bellagio -L$(abs_top_srcdir)/src/.libs
+ libomxdynamicloader_la_CFLAGS = -I$(top_srcdir)/include \
+ -I$(top_srcdir)/src \
+ -I$(top_srcdir)/src/base \
--- /dev/null
+Fix dependency issue to allow parallel build
+
+Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
+
+Index: bellagio-0.9.3/src/Makefile.am
+===================================================================
+--- bellagio-0.9.3.orig/src/Makefile.am
++++ bellagio-0.9.3/src/Makefile.am
+@@ -8,6 +8,7 @@ omxregister_bellagio_SOURCES = omxregist
+ omxregister_bellagio_CFLAGS = -DOMXILCOMPONENTSPATH=\"$(plugindir)/\" \
+ -I$(top_srcdir)/include
+ omxregister_bellagio_LDFLAGS = -lomxil-bellagio -L$(builddir)
++omxregister_bellagio_DEPENDENCIES = libomxil-bellagio.la
+
+ lib_LTLIBRARIES = libomxil-bellagio.la
+ libomxil_bellagio_la_SOURCES = component_loader.h \
--- /dev/null
+We always access globalComponentList[] at indexComponent=-1 which causes a
+segfault. Use i as the index instead.
+
+Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
+
+--- bellagio-0.9.3/src/omx_reference_resource_manager.c.old 2012-03-13 10:15:25.743940980 +0000
++++ bellagio-0.9.3/src/omx_reference_resource_manager.c 2012-03-13 10:18:02.201971009 +0000
+@@ -485,7 +485,6 @@
+ OMX_ERRORTYPE RM_removeFromWaitForResource(OMX_COMPONENTTYPE *openmaxStandComp) {
+ omx_base_component_PrivateType* omx_base_component_Private;
+ int i = 0;
+- int indexComponent = -1;
+
+ DEBUG(DEB_LEV_FUNCTION_NAME, "In %s\n", __func__);
+ omx_base_component_Private = (omx_base_component_PrivateType*)openmaxStandComp->pComponentPrivate;
+@@ -493,16 +492,13 @@
+ while(listOfcomponentRegistered[i].component_name != NULL ) {
+ if (!strcmp(listOfcomponentRegistered[i].component_name, omx_base_component_Private->name)) {
+ // found component in the list of the resource manager
+- removeElemFromList(&globalComponentList[indexComponent], openmaxStandComp);
+- break;
++ removeElemFromList(&globalComponentList[i], openmaxStandComp);
++ DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
++ return OMX_ErrorNone;
+ }
+ i++;
+ }
+- if (indexComponent <0) {
+- // No resource to be handled
+- DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
+- return OMX_ErrorNone;
+- }
+- DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
++ // No resource to be handled
++ DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
+ return OMX_ErrorNone;
+ }
+++ /dev/null
-[PATCH] don't force -Werror in CFLAGS
-
-Released software shouldn't get built with -Werror.
-
-Signed-of-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: libomxil-bellagio-0.9.3/configure.ac
-===================================================================
---- libomxil-bellagio-0.9.3.orig/configure.ac
-+++ libomxil-bellagio-0.9.3/configure.ac
-@@ -5,7 +5,7 @@
- AC_PREREQ([2.59])
-
- AC_CONFIG_HEADERS([config.h])
--CFLAGS="${CFLAGS} -Wall -Werror"
-+CFLAGS="${CFLAGS} -Wall"
-
- ################################################################################
- # Set the shared versioning info, according to section 6.3 of the libtool info #
+++ /dev/null
-When libomxdynamicloader.so is loaded, it complains that RM_Deinit can't be resolved.
-Link explicitly against omxil-bellagio so that ld.so can find the reference.
-
-Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
-
---- bellagio-0.9.3/src/dynamic_loader/Makefile.am.old 2012-03-23 15:07:47.379021034 +0000
-+++ bellagio-0.9.3/src/dynamic_loader/Makefile.am 2012-03-23 15:08:47.563034818 +0000
-@@ -3,7 +3,7 @@
- omxdynamicloader_LTLIBRARIES = libomxdynamicloader.la
- libomxdynamicloader_la_SOURCES = ste_dynamic_component_loader.c ste_dynamic_component_loader.h
-
--libomxdynamicloader_la_LDFLAGS =
-+libomxdynamicloader_la_LDFLAGS = -lomxil-bellagio -L$(abs_top_srcdir)/src/.libs
- libomxdynamicloader_la_CFLAGS = -I$(top_srcdir)/include \
- -I$(top_srcdir)/src \
- -I$(top_srcdir)/src/base \
+++ /dev/null
-Fix dependency issue to allow parallel build
-
-Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
-
-Index: bellagio-0.9.3/src/Makefile.am
-===================================================================
---- bellagio-0.9.3.orig/src/Makefile.am
-+++ bellagio-0.9.3/src/Makefile.am
-@@ -8,6 +8,7 @@ omxregister_bellagio_SOURCES = omxregist
- omxregister_bellagio_CFLAGS = -DOMXILCOMPONENTSPATH=\"$(plugindir)/\" \
- -I$(top_srcdir)/include
- omxregister_bellagio_LDFLAGS = -lomxil-bellagio -L$(builddir)
-+omxregister_bellagio_DEPENDENCIES = libomxil-bellagio.la
-
- lib_LTLIBRARIES = libomxil-bellagio.la
- libomxil_bellagio_la_SOURCES = component_loader.h \
+++ /dev/null
-We always access globalComponentList[] at indexComponent=-1 which causes a
-segfault. Use i as the index instead.
-
-Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
-
---- bellagio-0.9.3/src/omx_reference_resource_manager.c.old 2012-03-13 10:15:25.743940980 +0000
-+++ bellagio-0.9.3/src/omx_reference_resource_manager.c 2012-03-13 10:18:02.201971009 +0000
-@@ -485,7 +485,6 @@
- OMX_ERRORTYPE RM_removeFromWaitForResource(OMX_COMPONENTTYPE *openmaxStandComp) {
- omx_base_component_PrivateType* omx_base_component_Private;
- int i = 0;
-- int indexComponent = -1;
-
- DEBUG(DEB_LEV_FUNCTION_NAME, "In %s\n", __func__);
- omx_base_component_Private = (omx_base_component_PrivateType*)openmaxStandComp->pComponentPrivate;
-@@ -493,16 +492,13 @@
- while(listOfcomponentRegistered[i].component_name != NULL ) {
- if (!strcmp(listOfcomponentRegistered[i].component_name, omx_base_component_Private->name)) {
- // found component in the list of the resource manager
-- removeElemFromList(&globalComponentList[indexComponent], openmaxStandComp);
-- break;
-+ removeElemFromList(&globalComponentList[i], openmaxStandComp);
-+ DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
-+ return OMX_ErrorNone;
- }
- i++;
- }
-- if (indexComponent <0) {
-- // No resource to be handled
-- DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
-- return OMX_ErrorNone;
-- }
-- DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
-+ // No resource to be handled
-+ DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
- return OMX_ErrorNone;
- }
--- /dev/null
+blackbox: merge existing patch and fix lpthread
+
+Merge the current configure patch into this one so it will patch
+configure.ac instead. Also add pthread to libs to fix a linkage problem.
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+--- blackbox-0.70.1/configure.ac.orig 2013-12-17 11:02:38.799055141 +0000
++++ blackbox-0.70.1/configure.ac 2013-12-17 11:09:08.421204545 +0000
+@@ -8,14 +8,6 @@ AC_CONFIG_SRCDIR([src/blackbox.cc])
+ dnl Determine default prefix
+ test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
+
+-dnl Look in the most logical places for external libraries
+-CPPFLAGS="$CPPFLAGS -I$prefix/include"
+-LDFLAGS="$LDFLAGS -L$prefix/lib"
+-if test "x$prefix" != "x/usr/local"; then
+- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+- LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-fi
+-
+ dnl Locate required external software
+ AC_PROG_CC
+
+@@ -128,6 +120,10 @@ int main(int, char **)
+ [AC_MSG_RESULT([no])]
+ )
+
++dnl required pthread
++AC_CHECK_LIB([pthread],
++ [pthread_cancel],
++ [LIBS="$LIBS -lpthread"])
+ dnl needed for some X11 libs
+ AC_CHECK_LIB([nsl],
+ [t_open],
--- /dev/null
+diff -Naupr blackbox-0.70.1.orig/lib/Image.cc blackbox-0.70.1/lib/Image.cc
+--- blackbox-0.70.1.orig/lib/Image.cc 2005-04-08 17:41:09.000000000 +0200
++++ blackbox-0.70.1/lib/Image.cc 2008-02-24 08:31:28.000000000 +0100
+@@ -42,8 +42,9 @@
+
+ #include <assert.h>
+ #include <math.h>
+-#include <stdio.h>
+-#include <stdlib.h>
++#include <cstdio>
++#include <cstdlib>
++#include <cstring>
+
+ // #define COLORTABLE_DEBUG
+ // #define MITSHM_DEBUG
+diff -Naupr blackbox-0.70.1.orig/lib/Resource.cc blackbox-0.70.1/lib/Resource.cc
+--- blackbox-0.70.1.orig/lib/Resource.cc 2005-04-06 23:16:50.000000000 +0200
++++ blackbox-0.70.1/lib/Resource.cc 2008-02-24 08:33:11.000000000 +0100
+@@ -28,7 +28,8 @@
+ #include <X11/Xlib.h>
+ #include <X11/Xresource.h>
+
+-#include <stdio.h>
++#include <cstdio>
++#include <cstring>
+
+
+ bt::Resource::Resource(void)
+diff -Naupr blackbox-0.70.1.orig/lib/XDG.cc blackbox-0.70.1/lib/XDG.cc
+--- blackbox-0.70.1.orig/lib/XDG.cc 2005-04-06 16:04:38.000000000 +0200
++++ blackbox-0.70.1/lib/XDG.cc 2008-02-24 08:34:11.000000000 +0100
+@@ -25,7 +25,8 @@
+ #include "Util.hh"
+ #include "XDG.hh"
+
+-#include <stdlib.h>
++#include <cstdlib>
++#include <algorithm>
+
+
+ // make sure directory names end with a slash
+diff -Naupr blackbox-0.70.1.orig/src/BlackboxResource.cc blackbox-0.70.1/src/BlackboxResource.cc
+--- blackbox-0.70.1.orig/src/BlackboxResource.cc 2005-10-18 09:34:46.000000000 +0200
++++ blackbox-0.70.1/src/BlackboxResource.cc 2008-02-24 08:34:49.000000000 +0100
+@@ -33,6 +33,8 @@
+ #include <X11/Xutil.h>
+ #include <X11/cursorfont.h>
+
++#include <cstring>
++
+
+ BlackboxResource::BlackboxResource(const std::string& rc): rc_file(rc) {
+ screen_resources = 0;
+diff -Naupr blackbox-0.70.1.orig/src/main.cc blackbox-0.70.1/src/main.cc
+--- blackbox-0.70.1.orig/src/main.cc 2005-01-03 10:42:57.000000000 +0100
++++ blackbox-0.70.1/src/main.cc 2008-02-24 08:37:16.000000000 +0100
+@@ -34,7 +34,8 @@
+ #include "blackbox.hh"
+ #include "../version.h"
+
+-#include <stdio.h>
++#include <cstdio>
++#include <cstring>
+
+
+ static void showHelp(int exitval) {
+diff -Naupr blackbox-0.70.1.orig/src/Screen.cc blackbox-0.70.1/src/Screen.cc
+--- blackbox-0.70.1.orig/src/Screen.cc 2005-10-18 10:07:22.000000000 +0200
++++ blackbox-0.70.1/src/Screen.cc 2008-02-24 08:35:46.000000000 +0100
+@@ -45,8 +45,9 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <assert.h>
+-#include <ctype.h>
+ #include <dirent.h>
++#include <cctype>
++#include <cstring>
+
+
+ static bool running = true;
+diff -Naupr blackbox-0.70.1.orig/src/ScreenResource.cc blackbox-0.70.1/src/ScreenResource.cc
+--- blackbox-0.70.1.orig/src/ScreenResource.cc 2005-04-13 07:54:08.000000000 +0200
++++ blackbox-0.70.1/src/ScreenResource.cc 2008-02-24 08:36:31.000000000 +0100
+@@ -33,6 +33,8 @@
+
+ #include <assert.h>
+
++#include <cstring>
++
+
+ static const int iconify_width = 9;
+ static const int iconify_height = 9;
+diff -Naupr blackbox-0.70.1.orig/util/bsetroot.cc blackbox-0.70.1/util/bsetroot.cc
+--- blackbox-0.70.1.orig/util/bsetroot.cc 2005-03-15 08:01:37.000000000 +0100
++++ blackbox-0.70.1/util/bsetroot.cc 2008-02-24 08:38:41.000000000 +0100
+@@ -30,7 +30,9 @@
+ #include <cctype>
+
+ #include <X11/Xatom.h>
+-#include <stdio.h>
++#include <cstdio>
++#include <cstdlib>
++#include <cstring>
+
+
+ // ignore all X errors
--- /dev/null
+[PATCH] fix build issue with gcc 4.6+
+
+Debian patch from http://patch-tracker.debian.org/patch/series/dl/blackbox/0.70.1-13/textpropertytostring-unconditional.diff
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+
+Description: Declare bt::textPropertyToString unconditionally.
+Author: Jakub Wilk <jwilk@debian.org>
+Forwarded: no
+Bug-Debian: http://bugs.debian.org/614468
+Last-Update: 2011-03-12
+
+--- a/lib/Util.hh
++++ b/lib/Util.hh
+@@ -25,6 +25,8 @@
+ #ifndef __Util_hh
+ #define __Util_hh
+
++#include <X11/Xutil.h>
++
+ #include <limits.h>
+ #include <string>
+
+@@ -94,10 +96,8 @@
+
+ std::string tolower(const std::string &string);
+
+-#ifdef _XUTIL_H_
+ std::string textPropertyToString(::Display *display,
+ ::XTextProperty& text_prop);
+-#endif
+
+ } // namespace bt
+
+++ /dev/null
-blackbox: merge existing patch and fix lpthread
-
-Merge the current configure patch into this one so it will patch
-configure.ac instead. Also add pthread to libs to fix a linkage problem.
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---- blackbox-0.70.1/configure.ac.orig 2013-12-17 11:02:38.799055141 +0000
-+++ blackbox-0.70.1/configure.ac 2013-12-17 11:09:08.421204545 +0000
-@@ -8,14 +8,6 @@ AC_CONFIG_SRCDIR([src/blackbox.cc])
- dnl Determine default prefix
- test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
-
--dnl Look in the most logical places for external libraries
--CPPFLAGS="$CPPFLAGS -I$prefix/include"
--LDFLAGS="$LDFLAGS -L$prefix/lib"
--if test "x$prefix" != "x/usr/local"; then
-- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
-- LDFLAGS="$LDFLAGS -L/usr/local/lib"
--fi
--
- dnl Locate required external software
- AC_PROG_CC
-
-@@ -128,6 +120,10 @@ int main(int, char **)
- [AC_MSG_RESULT([no])]
- )
-
-+dnl required pthread
-+AC_CHECK_LIB([pthread],
-+ [pthread_cancel],
-+ [LIBS="$LIBS -lpthread"])
- dnl needed for some X11 libs
- AC_CHECK_LIB([nsl],
- [t_open],
+++ /dev/null
-diff -Naupr blackbox-0.70.1.orig/lib/Image.cc blackbox-0.70.1/lib/Image.cc
---- blackbox-0.70.1.orig/lib/Image.cc 2005-04-08 17:41:09.000000000 +0200
-+++ blackbox-0.70.1/lib/Image.cc 2008-02-24 08:31:28.000000000 +0100
-@@ -42,8 +42,9 @@
-
- #include <assert.h>
- #include <math.h>
--#include <stdio.h>
--#include <stdlib.h>
-+#include <cstdio>
-+#include <cstdlib>
-+#include <cstring>
-
- // #define COLORTABLE_DEBUG
- // #define MITSHM_DEBUG
-diff -Naupr blackbox-0.70.1.orig/lib/Resource.cc blackbox-0.70.1/lib/Resource.cc
---- blackbox-0.70.1.orig/lib/Resource.cc 2005-04-06 23:16:50.000000000 +0200
-+++ blackbox-0.70.1/lib/Resource.cc 2008-02-24 08:33:11.000000000 +0100
-@@ -28,7 +28,8 @@
- #include <X11/Xlib.h>
- #include <X11/Xresource.h>
-
--#include <stdio.h>
-+#include <cstdio>
-+#include <cstring>
-
-
- bt::Resource::Resource(void)
-diff -Naupr blackbox-0.70.1.orig/lib/XDG.cc blackbox-0.70.1/lib/XDG.cc
---- blackbox-0.70.1.orig/lib/XDG.cc 2005-04-06 16:04:38.000000000 +0200
-+++ blackbox-0.70.1/lib/XDG.cc 2008-02-24 08:34:11.000000000 +0100
-@@ -25,7 +25,8 @@
- #include "Util.hh"
- #include "XDG.hh"
-
--#include <stdlib.h>
-+#include <cstdlib>
-+#include <algorithm>
-
-
- // make sure directory names end with a slash
-diff -Naupr blackbox-0.70.1.orig/src/BlackboxResource.cc blackbox-0.70.1/src/BlackboxResource.cc
---- blackbox-0.70.1.orig/src/BlackboxResource.cc 2005-10-18 09:34:46.000000000 +0200
-+++ blackbox-0.70.1/src/BlackboxResource.cc 2008-02-24 08:34:49.000000000 +0100
-@@ -33,6 +33,8 @@
- #include <X11/Xutil.h>
- #include <X11/cursorfont.h>
-
-+#include <cstring>
-+
-
- BlackboxResource::BlackboxResource(const std::string& rc): rc_file(rc) {
- screen_resources = 0;
-diff -Naupr blackbox-0.70.1.orig/src/main.cc blackbox-0.70.1/src/main.cc
---- blackbox-0.70.1.orig/src/main.cc 2005-01-03 10:42:57.000000000 +0100
-+++ blackbox-0.70.1/src/main.cc 2008-02-24 08:37:16.000000000 +0100
-@@ -34,7 +34,8 @@
- #include "blackbox.hh"
- #include "../version.h"
-
--#include <stdio.h>
-+#include <cstdio>
-+#include <cstring>
-
-
- static void showHelp(int exitval) {
-diff -Naupr blackbox-0.70.1.orig/src/Screen.cc blackbox-0.70.1/src/Screen.cc
---- blackbox-0.70.1.orig/src/Screen.cc 2005-10-18 10:07:22.000000000 +0200
-+++ blackbox-0.70.1/src/Screen.cc 2008-02-24 08:35:46.000000000 +0100
-@@ -45,8 +45,9 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <assert.h>
--#include <ctype.h>
- #include <dirent.h>
-+#include <cctype>
-+#include <cstring>
-
-
- static bool running = true;
-diff -Naupr blackbox-0.70.1.orig/src/ScreenResource.cc blackbox-0.70.1/src/ScreenResource.cc
---- blackbox-0.70.1.orig/src/ScreenResource.cc 2005-04-13 07:54:08.000000000 +0200
-+++ blackbox-0.70.1/src/ScreenResource.cc 2008-02-24 08:36:31.000000000 +0100
-@@ -33,6 +33,8 @@
-
- #include <assert.h>
-
-+#include <cstring>
-+
-
- static const int iconify_width = 9;
- static const int iconify_height = 9;
-diff -Naupr blackbox-0.70.1.orig/util/bsetroot.cc blackbox-0.70.1/util/bsetroot.cc
---- blackbox-0.70.1.orig/util/bsetroot.cc 2005-03-15 08:01:37.000000000 +0100
-+++ blackbox-0.70.1/util/bsetroot.cc 2008-02-24 08:38:41.000000000 +0100
-@@ -30,7 +30,9 @@
- #include <cctype>
-
- #include <X11/Xatom.h>
--#include <stdio.h>
-+#include <cstdio>
-+#include <cstdlib>
-+#include <cstring>
-
-
- // ignore all X errors
+++ /dev/null
-[PATCH] fix build issue with gcc 4.6+
-
-Debian patch from http://patch-tracker.debian.org/patch/series/dl/blackbox/0.70.1-13/textpropertytostring-unconditional.diff
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-
-Description: Declare bt::textPropertyToString unconditionally.
-Author: Jakub Wilk <jwilk@debian.org>
-Forwarded: no
-Bug-Debian: http://bugs.debian.org/614468
-Last-Update: 2011-03-12
-
---- a/lib/Util.hh
-+++ b/lib/Util.hh
-@@ -25,6 +25,8 @@
- #ifndef __Util_hh
- #define __Util_hh
-
-+#include <X11/Xutil.h>
-+
- #include <limits.h>
- #include <string>
-
-@@ -94,10 +96,8 @@
-
- std::string tolower(const std::string &string);
-
--#ifdef _XUTIL_H_
- std::string textPropertyToString(::Display *display,
- ::XTextProperty& text_prop);
--#endif
-
- } // namespace bt
-
--- /dev/null
+From ac7992081abba87627c9e91735b3309584b48585 Mon Sep 17 00:00:00 2001
+From: Gregory Hermant <gregory.hermant@calao-systems.com>
+Date: Wed, 14 Nov 2012 14:27:02 +0100
+Subject: [PATCH] add support for the ST-Ericsson CG2900 GPS FM Bluetooth
+ combo controller
+
+
+Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
+---
+ tools/hciattach.c | 22 +++++++++++++++-------
+ tools/hciattach.h | 1 +
+ 2 files changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/tools/hciattach.c b/tools/hciattach.c
+index e4d5aa1..7f08243 100644
+--- a/tools/hciattach.c
++++ b/tools/hciattach.c
+@@ -1066,6 +1066,11 @@ struct uart_t uart[] = {
+ { "texasalt", 0x0000, 0x0000, HCI_UART_LL, 115200, 115200,
+ FLOW_CTL, DISABLE_PM, NULL, texasalt, NULL },
+
++ /* ST-Ericsson CG2900 GPS FM Bluetooth combo controller */
++ { "cg2900", 0x0000, 0x0000, HCI_UART_STE, 115200, 115200,
++ FLOW_CTL, DISABLE_PM, NULL, NULL },
++
++
+ /* ST Microelectronics minikits based on STLC2410/STLC2415 */
+ { "st", 0x0000, 0x0000, HCI_UART_H4, 57600, 115200,
+ FLOW_CTL, DISABLE_PM, NULL, st },
+@@ -1157,10 +1162,10 @@ static struct uart_t * get_by_type(char *type)
+ }
+
+ /* Initialize UART driver */
+-static int init_uart(char *dev, struct uart_t *u, int send_break, int raw)
++static int init_uart(char *dev, struct uart_t *u, int send_break, int raw, int line_disc)
+ {
+ struct termios ti;
+- int fd, i;
++ int fd;
+ unsigned long flags = 0;
+
+ if (raw)
+@@ -1217,8 +1222,7 @@ static int init_uart(char *dev, struct uart_t *u, int send_break, int raw)
+ }
+
+ /* Set TTY to N_HCI line discipline */
+- i = N_HCI;
+- if (ioctl(fd, TIOCSETD, &i) < 0) {
++ if (ioctl(fd, TIOCSETD, &line_disc) < 0) {
+ perror("Can't set line discipline");
+ return -1;
+ }
+@@ -1243,7 +1247,7 @@ static void usage(void)
+ {
+ printf("hciattach - HCI UART driver initialization utility\n");
+ printf("Usage:\n");
+- printf("\thciattach [-n] [-p] [-b] [-r] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]\n");
++ printf("\thciattach [-n] [-p] [-a line_disc_nr] [-b] [-r] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]\n");
+ printf("\thciattach -l\n");
+ }
+
+@@ -1252,6 +1256,7 @@ int main(int argc, char *argv[])
+ struct uart_t *u = NULL;
+ int detach, printpid, raw, opt, i, n, ld, err;
+ int to = 10;
++ int line_disc = N_HCI;
+ int init_speed = 0;
+ int send_break = 0;
+ pid_t pid;
+@@ -1264,8 +1269,11 @@ int main(int argc, char *argv[])
+ printpid = 0;
+ raw = 0;
+
+- while ((opt=getopt(argc, argv, "bnpt:s:lr")) != EOF) {
++ while ((opt=getopt(argc, argv, "bnpt:s:lra:")) != EOF) {
+ switch(opt) {
++ case 'a':
++ line_disc = atoi(optarg);
++ break;
+ case 'b':
+ send_break = 1;
+ break;
+@@ -1381,7 +1389,7 @@ int main(int argc, char *argv[])
+ alarm(to);
+ bcsp_max_retries = to;
+
+- n = init_uart(dev, u, send_break, raw);
++ n = init_uart(dev, u, send_break, raw, line_disc);
+ if (n < 0) {
+ perror("Can't initialize device");
+ exit(1);
+diff --git a/tools/hciattach.h b/tools/hciattach.h
+index fed0d11..09b534d 100644
+--- a/tools/hciattach.h
++++ b/tools/hciattach.h
+@@ -39,6 +39,7 @@
+ #define HCI_UART_H4DS 3
+ #define HCI_UART_LL 4
+ #define HCI_UART_ATH3K 5
++#define HCI_UART_STE 6
+
+ #define HCI_UART_RAW_DEVICE 0
+
+--
+1.7.9.5
+
+++ /dev/null
-From ac7992081abba87627c9e91735b3309584b48585 Mon Sep 17 00:00:00 2001
-From: Gregory Hermant <gregory.hermant@calao-systems.com>
-Date: Wed, 14 Nov 2012 14:27:02 +0100
-Subject: [PATCH] add support for the ST-Ericsson CG2900 GPS FM Bluetooth
- combo controller
-
-
-Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
----
- tools/hciattach.c | 22 +++++++++++++++-------
- tools/hciattach.h | 1 +
- 2 files changed, 16 insertions(+), 7 deletions(-)
-
-diff --git a/tools/hciattach.c b/tools/hciattach.c
-index e4d5aa1..7f08243 100644
---- a/tools/hciattach.c
-+++ b/tools/hciattach.c
-@@ -1066,6 +1066,11 @@ struct uart_t uart[] = {
- { "texasalt", 0x0000, 0x0000, HCI_UART_LL, 115200, 115200,
- FLOW_CTL, DISABLE_PM, NULL, texasalt, NULL },
-
-+ /* ST-Ericsson CG2900 GPS FM Bluetooth combo controller */
-+ { "cg2900", 0x0000, 0x0000, HCI_UART_STE, 115200, 115200,
-+ FLOW_CTL, DISABLE_PM, NULL, NULL },
-+
-+
- /* ST Microelectronics minikits based on STLC2410/STLC2415 */
- { "st", 0x0000, 0x0000, HCI_UART_H4, 57600, 115200,
- FLOW_CTL, DISABLE_PM, NULL, st },
-@@ -1157,10 +1162,10 @@ static struct uart_t * get_by_type(char *type)
- }
-
- /* Initialize UART driver */
--static int init_uart(char *dev, struct uart_t *u, int send_break, int raw)
-+static int init_uart(char *dev, struct uart_t *u, int send_break, int raw, int line_disc)
- {
- struct termios ti;
-- int fd, i;
-+ int fd;
- unsigned long flags = 0;
-
- if (raw)
-@@ -1217,8 +1222,7 @@ static int init_uart(char *dev, struct uart_t *u, int send_break, int raw)
- }
-
- /* Set TTY to N_HCI line discipline */
-- i = N_HCI;
-- if (ioctl(fd, TIOCSETD, &i) < 0) {
-+ if (ioctl(fd, TIOCSETD, &line_disc) < 0) {
- perror("Can't set line discipline");
- return -1;
- }
-@@ -1243,7 +1247,7 @@ static void usage(void)
- {
- printf("hciattach - HCI UART driver initialization utility\n");
- printf("Usage:\n");
-- printf("\thciattach [-n] [-p] [-b] [-r] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]\n");
-+ printf("\thciattach [-n] [-p] [-a line_disc_nr] [-b] [-r] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]\n");
- printf("\thciattach -l\n");
- }
-
-@@ -1252,6 +1256,7 @@ int main(int argc, char *argv[])
- struct uart_t *u = NULL;
- int detach, printpid, raw, opt, i, n, ld, err;
- int to = 10;
-+ int line_disc = N_HCI;
- int init_speed = 0;
- int send_break = 0;
- pid_t pid;
-@@ -1264,8 +1269,11 @@ int main(int argc, char *argv[])
- printpid = 0;
- raw = 0;
-
-- while ((opt=getopt(argc, argv, "bnpt:s:lr")) != EOF) {
-+ while ((opt=getopt(argc, argv, "bnpt:s:lra:")) != EOF) {
- switch(opt) {
-+ case 'a':
-+ line_disc = atoi(optarg);
-+ break;
- case 'b':
- send_break = 1;
- break;
-@@ -1381,7 +1389,7 @@ int main(int argc, char *argv[])
- alarm(to);
- bcsp_max_retries = to;
-
-- n = init_uart(dev, u, send_break, raw);
-+ n = init_uart(dev, u, send_break, raw, line_disc);
- if (n < 0) {
- perror("Can't initialize device");
- exit(1);
-diff --git a/tools/hciattach.h b/tools/hciattach.h
-index fed0d11..09b534d 100644
---- a/tools/hciattach.h
-+++ b/tools/hciattach.h
-@@ -39,6 +39,7 @@
- #define HCI_UART_H4DS 3
- #define HCI_UART_LL 4
- #define HCI_UART_ATH3K 5
-+#define HCI_UART_STE 6
-
- #define HCI_UART_RAW_DEVICE 0
-
---
-1.7.9.5
-
--- /dev/null
+boost: fix ambiguous format call on 64-bit builds
+
+Fixes problem:
+
+libs/locale/src/icu/formatter.cpp: In member function
+'virtual std::basic_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> > boost::locale::impl_icu::number_format<CharType>::format(boost::int64_t, size_t&) const':
+libs/locale/src/icu/formatter.cpp:61: error: call of overloaded 'format(boost::int64_t&, icu_49::UnicodeString&)' is ambiguous
+/ec/include/unicode/numfmt.h:317: note: candidates are: icu_49::UnicodeString& icu_49::NumberFormat::format(double, icu_49::UnicodeString&) const
+/ec/include/unicode/numfmt.h:330: note: icu_49::UnicodeString& icu_49::NumberFormat::format(int32_t, icu_49::UnicodeString&) const
+/ec/include/unicode/numfmt.h:343: note: icu_49::UnicodeString& icu_49::NumberFormat::format(int64_t, icu_49::UnicodeString&) const
+
+Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
+Backported-from: https://svn.boost.org/trac/boost/ticket/6851
+
+
+diff -ruN boost_1_49_0.orig/libs/locale/src/icu/formatter.cpp boost_1_49_0/libs/locale/src/icu/formatter.cpp
+--- boost_1_49_0.orig/libs/locale/src/icu/formatter.cpp 2011-07-12 14:57:36.000000000 +0100
++++ boost_1_49_0/libs/locale/src/icu/formatter.cpp 2012-05-01 14:27:54.000000000 +0100
+@@ -58,7 +58,7 @@
+ virtual string_type format(int64_t value,size_t &code_points) const
+ {
+ icu::UnicodeString tmp;
+- icu_fmt_->format(value,tmp);
++ icu_fmt_->format(::int64_t(value),tmp);
+ code_points=tmp.countChar32();
+ return cvt_.std(tmp);
+ }
+++ /dev/null
-boost: fix ambiguous format call on 64-bit builds
-
-Fixes problem:
-
-libs/locale/src/icu/formatter.cpp: In member function
-'virtual std::basic_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> > boost::locale::impl_icu::number_format<CharType>::format(boost::int64_t, size_t&) const':
-libs/locale/src/icu/formatter.cpp:61: error: call of overloaded 'format(boost::int64_t&, icu_49::UnicodeString&)' is ambiguous
-/ec/include/unicode/numfmt.h:317: note: candidates are: icu_49::UnicodeString& icu_49::NumberFormat::format(double, icu_49::UnicodeString&) const
-/ec/include/unicode/numfmt.h:330: note: icu_49::UnicodeString& icu_49::NumberFormat::format(int32_t, icu_49::UnicodeString&) const
-/ec/include/unicode/numfmt.h:343: note: icu_49::UnicodeString& icu_49::NumberFormat::format(int64_t, icu_49::UnicodeString&) const
-
-Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
-Backported-from: https://svn.boost.org/trac/boost/ticket/6851
-
-
-diff -ruN boost_1_49_0.orig/libs/locale/src/icu/formatter.cpp boost_1_49_0/libs/locale/src/icu/formatter.cpp
---- boost_1_49_0.orig/libs/locale/src/icu/formatter.cpp 2011-07-12 14:57:36.000000000 +0100
-+++ boost_1_49_0/libs/locale/src/icu/formatter.cpp 2012-05-01 14:27:54.000000000 +0100
-@@ -58,7 +58,7 @@
- virtual string_type format(int64_t value,size_t &code_points) const
- {
- icu::UnicodeString tmp;
-- icu_fmt_->format(value,tmp);
-+ icu_fmt_->format(::int64_t(value),tmp);
- code_points=tmp.countChar32();
- return cvt_.std(tmp);
- }
--- /dev/null
+--- bridge-utils-0.9.6/libbridge/Makefile.in.dist 2004-03-01 20:55:52.000000000 -0600
++++ bridge-utils-0.9.6/libbridge/Makefile.in 2004-03-01 20:56:23.000000000 -0600
+@@ -5,7 +5,7 @@
+ RANLIB=@RANLIB@
+
+ CC=@CC@
+-CFLAGS = -Wall -g $(KERNEL_HEADERS)
++CFLAGS = -Wall -g @CFLAGS@ $(KERNEL_HEADERS)
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
--- /dev/null
+commit 5eebb7f9288b7881ffb929b1fd494fe3ac3be27d
+Author: Russell Senior <russell@personaltelco.net>
+Date: Wed Mar 6 12:49:42 2013 -0800
+
+ bridge-utils: Fix compile against linux-3.8.x
+
+ Linux 3.8 has a header, include/uapi/linux/if_bridge.h that uses a
+ struct in6_addr but doesn't define it. The trivial seeming fix of
+ including the header that does define it causes more problems. The
+ problem was discussed on mailing lists in January 2013. The final
+ suggestion I found was here:
+
+ http://www.redhat.com/archives/libvir-list/2013-January/msg01253.html
+
+ This is intended to implement that suggestion.
+
+ Signed-off-by: Russell Senior <russell@personaltelco.net>
+
+diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h
+index 39964f2..dd14bae 100644
+--- a/libbridge/libbridge.h
++++ b/libbridge/libbridge.h
+@@ -20,6 +20,7 @@
+ #define _LIBBRIDGE_H
+
+ #include <sys/socket.h>
++#include <netinet/in.h>
+ #include <linux/if.h>
+ #include <linux/if_bridge.h>
+
+++ /dev/null
---- bridge-utils-0.9.6/libbridge/Makefile.in.dist 2004-03-01 20:55:52.000000000 -0600
-+++ bridge-utils-0.9.6/libbridge/Makefile.in 2004-03-01 20:56:23.000000000 -0600
-@@ -5,7 +5,7 @@
- RANLIB=@RANLIB@
-
- CC=@CC@
--CFLAGS = -Wall -g $(KERNEL_HEADERS)
-+CFLAGS = -Wall -g @CFLAGS@ $(KERNEL_HEADERS)
-
- prefix=@prefix@
- exec_prefix=@exec_prefix@
+++ /dev/null
-commit 5eebb7f9288b7881ffb929b1fd494fe3ac3be27d
-Author: Russell Senior <russell@personaltelco.net>
-Date: Wed Mar 6 12:49:42 2013 -0800
-
- bridge-utils: Fix compile against linux-3.8.x
-
- Linux 3.8 has a header, include/uapi/linux/if_bridge.h that uses a
- struct in6_addr but doesn't define it. The trivial seeming fix of
- including the header that does define it causes more problems. The
- problem was discussed on mailing lists in January 2013. The final
- suggestion I found was here:
-
- http://www.redhat.com/archives/libvir-list/2013-January/msg01253.html
-
- This is intended to implement that suggestion.
-
- Signed-off-by: Russell Senior <russell@personaltelco.net>
-
-diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h
-index 39964f2..dd14bae 100644
---- a/libbridge/libbridge.h
-+++ b/libbridge/libbridge.h
-@@ -20,6 +20,7 @@
- #define _LIBBRIDGE_H
-
- #include <sys/socket.h>
-+#include <netinet/in.h>
- #include <linux/if.h>
- #include <linux/if_bridge.h>
-
--- /dev/null
+Build objects twice for shared and static libraries
+
+The existing Makefile causes problems on MIPS because the same object
+files (not compiled with -fPIC) are used in static and shared libraries.
+MIPS will refuce to link non-pic objects in shared libraries.
+We fix this problems by creating a new rule for the shared library
+and build the shared objects as *.sho instead of *.o.
+Then, we use these objects to create the shared library.
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+Index: bzip2-1.0.6/Makefile-libbz2_so
+===================================================================
+--- bzip2-1.0.6.orig/Makefile-libbz2_so
++++ bzip2-1.0.6/Makefile-libbz2_so
+@@ -25,13 +25,13 @@ SHELL=/bin/sh
+ CC=gcc
+ override CFLAGS += -fpic -fPIC -Wall
+
+-OBJS= blocksort.o \
+- huffman.o \
+- crctable.o \
+- randtable.o \
+- compress.o \
+- decompress.o \
+- bzlib.o
++OBJS= blocksort.sho \
++ huffman.sho \
++ crctable.sho \
++ randtable.sho \
++ compress.sho \
++ decompress.sho \
++ bzlib.sho
+
+ all: $(OBJS)
+ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
+@@ -45,17 +45,5 @@ install:
+ clean:
+ rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
+
+-blocksort.o: blocksort.c
+- $(CC) $(CFLAGS) -c blocksort.c
+-huffman.o: huffman.c
+- $(CC) $(CFLAGS) -c huffman.c
+-crctable.o: crctable.c
+- $(CC) $(CFLAGS) -c crctable.c
+-randtable.o: randtable.c
+- $(CC) $(CFLAGS) -c randtable.c
+-compress.o: compress.c
+- $(CC) $(CFLAGS) -c compress.c
+-decompress.o: decompress.c
+- $(CC) $(CFLAGS) -c decompress.c
+-bzlib.o: bzlib.c
+- $(CC) $(CFLAGS) -c bzlib.c
++%.sho: %.c
++ $(CC) $(CFLAGS) -o $@ -c $<
--- /dev/null
+Improve bzip2 build system
+
+This patch makes a number of improvements to the bzip2 build system:
+
+ * Remove the BIGFILE variable that was used to force largefile
+ support. Now, the user of the Makefile is supposed to pass
+ -D_FILE_OFFSET_BITS=64 when largefile support is desired.
+
+ * Use override CFLAGS += so that additional CFLAGS can be passed on
+ the command line.
+
+ * Removed "forced" CFLAGS -O2, -g and -Winline. We don't want them by
+ default, and want the build system to use its own ones.
+
+ * When creating the symbolic links bzegrep, bzfgrep, bzless and
+ bzcmp, don't link them to an absolute path, or they'll point to
+ some path on the build machine.
+
+ * Provide an install target for the shared library, which creates the
+ appropriate symbolic links.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -20,8 +20,7 @@
+ RANLIB=ranlib
+ LDFLAGS=
+
+-BIGFILES=-D_FILE_OFFSET_BITS=64
+-CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
++override CFLAGS += -Wall
+
+ # Where you want it installed when you do 'make install'
+ PREFIX=/usr/local
+@@ -90,14 +89,14 @@
+ cp -f libbz2.a $(PREFIX)/lib
+ chmod a+r $(PREFIX)/lib/libbz2.a
+ cp -f bzgrep $(PREFIX)/bin/bzgrep
+- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
+- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
++ ln -s -f bzgrep $(PREFIX)/bin/bzegrep
++ ln -s -f bzgrep $(PREFIX)/bin/bzfgrep
+ chmod a+x $(PREFIX)/bin/bzgrep
+ cp -f bzmore $(PREFIX)/bin/bzmore
+- ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
++ ln -s -f bzmore $(PREFIX)/bin/bzless
+ chmod a+x $(PREFIX)/bin/bzmore
+ cp -f bzdiff $(PREFIX)/bin/bzdiff
+- ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
++ ln -s -f bzdiff $(PREFIX)/bin/bzcmp
+ chmod a+x $(PREFIX)/bin/bzdiff
+ cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
+ chmod a+r $(PREFIX)/man/man1/bzgrep.1
+Index: b/Makefile-libbz2_so
+===================================================================
+--- a/Makefile-libbz2_so
++++ b/Makefile-libbz2_so
+@@ -23,8 +23,7 @@
+
+ SHELL=/bin/sh
+ CC=gcc
+-BIGFILES=-D_FILE_OFFSET_BITS=64
+-CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
++override CFLAGS += -fpic -fPIC -Wall
+
+ OBJS= blocksort.o \
+ huffman.o \
+@@ -37,8 +36,11 @@
+ all: $(OBJS)
+ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
+ $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6
+- rm -f libbz2.so.1.0
+- ln -s libbz2.so.1.0.6 libbz2.so.1.0
++
++install:
++ install -m 0755 -D libbz2.so.1.0.6 $(PREFIX)/lib/libbz2.so.1.0.6
++ ln -sf libbz2.so.1.0.6 $(PREFIX)/lib/libbz2.so
++ ln -sf libbz2.so.1.0.6 $(PREFIX)/lib/libbz2.so.1.0
+
+ clean:
+ rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
+++ /dev/null
-Build objects twice for shared and static libraries
-
-The existing Makefile causes problems on MIPS because the same object
-files (not compiled with -fPIC) are used in static and shared libraries.
-MIPS will refuce to link non-pic objects in shared libraries.
-We fix this problems by creating a new rule for the shared library
-and build the shared objects as *.sho instead of *.o.
-Then, we use these objects to create the shared library.
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: bzip2-1.0.6/Makefile-libbz2_so
-===================================================================
---- bzip2-1.0.6.orig/Makefile-libbz2_so
-+++ bzip2-1.0.6/Makefile-libbz2_so
-@@ -25,13 +25,13 @@ SHELL=/bin/sh
- CC=gcc
- override CFLAGS += -fpic -fPIC -Wall
-
--OBJS= blocksort.o \
-- huffman.o \
-- crctable.o \
-- randtable.o \
-- compress.o \
-- decompress.o \
-- bzlib.o
-+OBJS= blocksort.sho \
-+ huffman.sho \
-+ crctable.sho \
-+ randtable.sho \
-+ compress.sho \
-+ decompress.sho \
-+ bzlib.sho
-
- all: $(OBJS)
- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
-@@ -45,17 +45,5 @@ install:
- clean:
- rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
-
--blocksort.o: blocksort.c
-- $(CC) $(CFLAGS) -c blocksort.c
--huffman.o: huffman.c
-- $(CC) $(CFLAGS) -c huffman.c
--crctable.o: crctable.c
-- $(CC) $(CFLAGS) -c crctable.c
--randtable.o: randtable.c
-- $(CC) $(CFLAGS) -c randtable.c
--compress.o: compress.c
-- $(CC) $(CFLAGS) -c compress.c
--decompress.o: decompress.c
-- $(CC) $(CFLAGS) -c decompress.c
--bzlib.o: bzlib.c
-- $(CC) $(CFLAGS) -c bzlib.c
-+%.sho: %.c
-+ $(CC) $(CFLAGS) -o $@ -c $<
+++ /dev/null
-Improve bzip2 build system
-
-This patch makes a number of improvements to the bzip2 build system:
-
- * Remove the BIGFILE variable that was used to force largefile
- support. Now, the user of the Makefile is supposed to pass
- -D_FILE_OFFSET_BITS=64 when largefile support is desired.
-
- * Use override CFLAGS += so that additional CFLAGS can be passed on
- the command line.
-
- * Removed "forced" CFLAGS -O2, -g and -Winline. We don't want them by
- default, and want the build system to use its own ones.
-
- * When creating the symbolic links bzegrep, bzfgrep, bzless and
- bzcmp, don't link them to an absolute path, or they'll point to
- some path on the build machine.
-
- * Provide an install target for the shared library, which creates the
- appropriate symbolic links.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -20,8 +20,7 @@
- RANLIB=ranlib
- LDFLAGS=
-
--BIGFILES=-D_FILE_OFFSET_BITS=64
--CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
-+override CFLAGS += -Wall
-
- # Where you want it installed when you do 'make install'
- PREFIX=/usr/local
-@@ -90,14 +89,14 @@
- cp -f libbz2.a $(PREFIX)/lib
- chmod a+r $(PREFIX)/lib/libbz2.a
- cp -f bzgrep $(PREFIX)/bin/bzgrep
-- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
-- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
-+ ln -s -f bzgrep $(PREFIX)/bin/bzegrep
-+ ln -s -f bzgrep $(PREFIX)/bin/bzfgrep
- chmod a+x $(PREFIX)/bin/bzgrep
- cp -f bzmore $(PREFIX)/bin/bzmore
-- ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
-+ ln -s -f bzmore $(PREFIX)/bin/bzless
- chmod a+x $(PREFIX)/bin/bzmore
- cp -f bzdiff $(PREFIX)/bin/bzdiff
-- ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
-+ ln -s -f bzdiff $(PREFIX)/bin/bzcmp
- chmod a+x $(PREFIX)/bin/bzdiff
- cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
- chmod a+r $(PREFIX)/man/man1/bzgrep.1
-Index: b/Makefile-libbz2_so
-===================================================================
---- a/Makefile-libbz2_so
-+++ b/Makefile-libbz2_so
-@@ -23,8 +23,7 @@
-
- SHELL=/bin/sh
- CC=gcc
--BIGFILES=-D_FILE_OFFSET_BITS=64
--CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
-+override CFLAGS += -fpic -fPIC -Wall
-
- OBJS= blocksort.o \
- huffman.o \
-@@ -37,8 +36,11 @@
- all: $(OBJS)
- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
- $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6
-- rm -f libbz2.so.1.0
-- ln -s libbz2.so.1.0.6 libbz2.so.1.0
-+
-+install:
-+ install -m 0755 -D libbz2.so.1.0.6 $(PREFIX)/lib/libbz2.so.1.0.6
-+ ln -sf libbz2.so.1.0.6 $(PREFIX)/lib/libbz2.so
-+ ln -sf libbz2.so.1.0.6 $(PREFIX)/lib/libbz2.so.1.0
-
- clean:
- rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
--- /dev/null
+Use XC_CHECK_BUILD_FLAGS instead of XC_CHECK_USER_FLAGS.
+Otherwise it complains of CPPFLAGS in CFLAGS.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura c-ares-1.10.0.orig/m4/xc-cc-check.m4 c-ares-1.10.0/m4/xc-cc-check.m4
+--- c-ares-1.10.0.orig/m4/xc-cc-check.m4 2013-12-26 19:40:46.354195974 -0300
++++ c-ares-1.10.0/m4/xc-cc-check.m4 2013-12-26 19:41:01.850718535 -0300
+@@ -59,7 +59,7 @@
+
+ AC_DEFUN([_XC_PROG_CC], [
+ AC_REQUIRE([_XC_PROG_CC_PREAMBLE])dnl
+- AC_REQUIRE([XC_CHECK_USER_FLAGS])dnl
++ AC_REQUIRE([XC_CHECK_BUILD_FLAGS])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AM_PROG_CC_C_O])dnl
+++ /dev/null
-Use XC_CHECK_BUILD_FLAGS instead of XC_CHECK_USER_FLAGS.
-Otherwise it complains of CPPFLAGS in CFLAGS.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura c-ares-1.10.0.orig/m4/xc-cc-check.m4 c-ares-1.10.0/m4/xc-cc-check.m4
---- c-ares-1.10.0.orig/m4/xc-cc-check.m4 2013-12-26 19:40:46.354195974 -0300
-+++ c-ares-1.10.0/m4/xc-cc-check.m4 2013-12-26 19:41:01.850718535 -0300
-@@ -59,7 +59,7 @@
-
- AC_DEFUN([_XC_PROG_CC], [
- AC_REQUIRE([_XC_PROG_CC_PREAMBLE])dnl
-- AC_REQUIRE([XC_CHECK_USER_FLAGS])dnl
-+ AC_REQUIRE([XC_CHECK_BUILD_FLAGS])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AM_PROG_CC_C_O])dnl
--- /dev/null
+From 39ac7268c4350040976005da98daf10edf676d3e Mon Sep 17 00:00:00 2001
+From: Stephan Hoffmann <sho@relinux.de>
+Date: Mon, 28 Jan 2013 17:32:10 +0100
+Subject: [PATCH] Fix conflicting round() function
+
+calibrator.c defines a local round() function that conflicts
+with the one from the standard library.
+
+This is fixed by renaming the local function.
+
+Signed-off-by: Stephan Hoffmann <sho@relinux.de>
+---
+ calibrator.c | 30 +++++++++++++++---------------
+ 1 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/calibrator.c b/calibrator.c
+index e045dfd..8471c04 100644
+--- a/calibrator.c
++++ b/calibrator.c
+@@ -128,7 +128,7 @@ void ErrXit(char *format, ...) {
+ exit(1);
+ }
+
+-lng round(dbl x)
++lng lng_round(dbl x)
+ {
+ return (lng)(x + 0.5);
+ }
+@@ -890,16 +890,16 @@ void plotCache(cacheInfo *cache, lng **result, lng MHz, char *fn, FILE *fp, lng
+ fprintf(fp, ")\n");
+ fprintf(fp, "set y2tics");
+ for (l = 0, s = " ("; l <= cache->levels; l++, s = ", ") {
+- if (!delay) fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(cache->latency1[l] - delay)), NSperIt(cache->latency1[l] - delay));
+- else fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(cache->latency2[l] - delay)), NSperIt(cache->latency2[l] - delay));
++ if (!delay) fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(cache->latency1[l] - delay)), NSperIt(cache->latency1[l] - delay));
++ else fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(cache->latency2[l] - delay)), NSperIt(cache->latency2[l] - delay));
+ }
+ for (y = 1; y <= yh; y *= 10) {
+ fprintf(fp, "%s'%1.3g' %ld", s, (dbl)(y * MHz) / 1000.0, y);
+ }
+ fprintf(fp, ")\n");
+ for (l = 0; l <= cache->levels; l++) {
+- if (!delay) z = (dbl)round(CYperIt(cache->latency1[l] - delay)) * 1000.0 / (dbl)MHz;
+- else z = (dbl)round(CYperIt(cache->latency2[l] - delay)) * 1000.0 / (dbl)MHz;
++ if (!delay) z = (dbl)lng_round(CYperIt(cache->latency1[l] - delay)) * 1000.0 / (dbl)MHz;
++ else z = (dbl)lng_round(CYperIt(cache->latency2[l] - delay)) * 1000.0 / (dbl)MHz;
+ fprintf(fp, "set label %ld '(%1.3g) ' at %f,%f right\n", l + 1, z, xl, z);
+ fprintf(fp, "set arrow %ld from %f,%f to %f,%f nohead lt 0\n", l + 1, xl, z, xh, z);
+ }
+@@ -986,16 +986,16 @@ void plotTLB(TLBinfo *TLB, lng **result, lng MHz, char *fn, FILE *fp, lng delay)
+ fprintf(fp, "%s'<L1>' %ld)\n", s, TLB->mincachelines);
+ fprintf(fp, "set y2tics");
+ for (l = 0, s = " ("; l <= TLB->levels; l++, s = ", ") {
+- if (!delay) fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(TLB->latency1[l] - delay)), NSperIt(TLB->latency1[l] - delay));
+- else fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(TLB->latency2[l] - delay)), NSperIt(TLB->latency2[l] - delay));
++ if (!delay) fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(TLB->latency1[l] - delay)), NSperIt(TLB->latency1[l] - delay));
++ else fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(TLB->latency2[l] - delay)), NSperIt(TLB->latency2[l] - delay));
+ }
+ for (y = 1; y <= yh; y *= 10) {
+ fprintf(fp, "%s'%1.3g' %ld", s, (dbl)(y * MHz) / 1000.0, y);
+ }
+ fprintf(fp, ")\n");
+ for (l = 0; l <= TLB->levels; l++) {
+- if (!delay) z = (dbl)round(CYperIt(TLB->latency1[l] - delay)) * 1000.0 / (dbl)MHz;
+- else z = (dbl)round(CYperIt(TLB->latency2[l] - delay)) * 1000.0 / (dbl)MHz;
++ if (!delay) z = (dbl)lng_round(CYperIt(TLB->latency1[l] - delay)) * 1000.0 / (dbl)MHz;
++ else z = (dbl)lng_round(CYperIt(TLB->latency2[l] - delay)) * 1000.0 / (dbl)MHz;
+ fprintf(fp, "set label %ld '(%1.3g) ' at %f,%f right\n", l + 1, z, xl, z);
+ fprintf(fp, "set arrow %ld from %f,%f to %f,%f nohead lt 0\n", l + 1, xl, z, xh, z);
+ }
+@@ -1023,9 +1023,9 @@ void printCPU(cacheInfo *cache, lng MHz, lng delay)
+ FILE *fp = stdout;
+
+ fprintf(fp, "CPU loop + L1 access: ");
+- fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[0]), round(CYperIt(cache->latency1[0])));
++ fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[0]), lng_round(CYperIt(cache->latency1[0])));
+ fprintf(fp, " ( delay: ");
+- fprintf(fp, " %6.2f ns = %3ld cy )\n", NSperIt(delay), round(CYperIt(delay)));
++ fprintf(fp, " %6.2f ns = %3ld cy )\n", NSperIt(delay), lng_round(CYperIt(delay)));
+ fprintf(fp, "\n");
+ fflush(fp);
+ }
+@@ -1047,8 +1047,8 @@ void printCache(cacheInfo *cache, lng MHz)
+ fprintf(fp, " %3ld KB ", cache->size[l] / 1024);
+ }
+ fprintf(fp, " %3ld bytes ", cache->linesize[l + 1]);
+- fprintf(fp, " %6.2f ns = %3ld cy " , NSperIt(cache->latency2[l + 1] - cache->latency2[l]), round(CYperIt(cache->latency2[l + 1] - cache->latency2[l])));
+- fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[l + 1] - cache->latency1[l]), round(CYperIt(cache->latency1[l + 1] - cache->latency1[l])));
++ fprintf(fp, " %6.2f ns = %3ld cy " , NSperIt(cache->latency2[l + 1] - cache->latency2[l]), lng_round(CYperIt(cache->latency2[l + 1] - cache->latency2[l])));
++ fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[l + 1] - cache->latency1[l]), lng_round(CYperIt(cache->latency1[l + 1] - cache->latency1[l])));
+ }
+ fprintf(fp, "\n");
+ fflush(fp);
+@@ -1075,9 +1075,9 @@ void printTLB(TLBinfo *TLB, lng MHz)
+ } else {
+ fprintf(fp, " %3ld KB ", TLB->pagesize[l + 1] / 1024);
+ }
+- fprintf(fp, " %6.2f ns = %3ld cy ", NSperIt(TLB->latency2[l + 1] - TLB->latency2[l]), round(CYperIt(TLB->latency2[l + 1] - TLB->latency2[l])));
++ fprintf(fp, " %6.2f ns = %3ld cy ", NSperIt(TLB->latency2[l + 1] - TLB->latency2[l]), lng_round(CYperIt(TLB->latency2[l + 1] - TLB->latency2[l])));
+ /*
+- fprintf(fp, " %6.2f ns = %3ld cy" , NSperIt(TLB->latency1[l + 1] - TLB->latency1[l]), round(CYperIt(TLB->latency1[l + 1] - TLB->latency1[l])));
++ fprintf(fp, " %6.2f ns = %3ld cy" , NSperIt(TLB->latency1[l + 1] - TLB->latency1[l]), lng_round(CYperIt(TLB->latency1[l + 1] - TLB->latency1[l])));
+ */
+ fprintf(fp, "\n");
+ }
+--
+1.7.0.4
+
+++ /dev/null
-From 39ac7268c4350040976005da98daf10edf676d3e Mon Sep 17 00:00:00 2001
-From: Stephan Hoffmann <sho@relinux.de>
-Date: Mon, 28 Jan 2013 17:32:10 +0100
-Subject: [PATCH] Fix conflicting round() function
-
-calibrator.c defines a local round() function that conflicts
-with the one from the standard library.
-
-This is fixed by renaming the local function.
-
-Signed-off-by: Stephan Hoffmann <sho@relinux.de>
----
- calibrator.c | 30 +++++++++++++++---------------
- 1 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/calibrator.c b/calibrator.c
-index e045dfd..8471c04 100644
---- a/calibrator.c
-+++ b/calibrator.c
-@@ -128,7 +128,7 @@ void ErrXit(char *format, ...) {
- exit(1);
- }
-
--lng round(dbl x)
-+lng lng_round(dbl x)
- {
- return (lng)(x + 0.5);
- }
-@@ -890,16 +890,16 @@ void plotCache(cacheInfo *cache, lng **result, lng MHz, char *fn, FILE *fp, lng
- fprintf(fp, ")\n");
- fprintf(fp, "set y2tics");
- for (l = 0, s = " ("; l <= cache->levels; l++, s = ", ") {
-- if (!delay) fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(cache->latency1[l] - delay)), NSperIt(cache->latency1[l] - delay));
-- else fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(cache->latency2[l] - delay)), NSperIt(cache->latency2[l] - delay));
-+ if (!delay) fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(cache->latency1[l] - delay)), NSperIt(cache->latency1[l] - delay));
-+ else fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(cache->latency2[l] - delay)), NSperIt(cache->latency2[l] - delay));
- }
- for (y = 1; y <= yh; y *= 10) {
- fprintf(fp, "%s'%1.3g' %ld", s, (dbl)(y * MHz) / 1000.0, y);
- }
- fprintf(fp, ")\n");
- for (l = 0; l <= cache->levels; l++) {
-- if (!delay) z = (dbl)round(CYperIt(cache->latency1[l] - delay)) * 1000.0 / (dbl)MHz;
-- else z = (dbl)round(CYperIt(cache->latency2[l] - delay)) * 1000.0 / (dbl)MHz;
-+ if (!delay) z = (dbl)lng_round(CYperIt(cache->latency1[l] - delay)) * 1000.0 / (dbl)MHz;
-+ else z = (dbl)lng_round(CYperIt(cache->latency2[l] - delay)) * 1000.0 / (dbl)MHz;
- fprintf(fp, "set label %ld '(%1.3g) ' at %f,%f right\n", l + 1, z, xl, z);
- fprintf(fp, "set arrow %ld from %f,%f to %f,%f nohead lt 0\n", l + 1, xl, z, xh, z);
- }
-@@ -986,16 +986,16 @@ void plotTLB(TLBinfo *TLB, lng **result, lng MHz, char *fn, FILE *fp, lng delay)
- fprintf(fp, "%s'<L1>' %ld)\n", s, TLB->mincachelines);
- fprintf(fp, "set y2tics");
- for (l = 0, s = " ("; l <= TLB->levels; l++, s = ", ") {
-- if (!delay) fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(TLB->latency1[l] - delay)), NSperIt(TLB->latency1[l] - delay));
-- else fprintf(fp, "%s'(%ld)' %f", s, round(CYperIt(TLB->latency2[l] - delay)), NSperIt(TLB->latency2[l] - delay));
-+ if (!delay) fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(TLB->latency1[l] - delay)), NSperIt(TLB->latency1[l] - delay));
-+ else fprintf(fp, "%s'(%ld)' %f", s, lng_round(CYperIt(TLB->latency2[l] - delay)), NSperIt(TLB->latency2[l] - delay));
- }
- for (y = 1; y <= yh; y *= 10) {
- fprintf(fp, "%s'%1.3g' %ld", s, (dbl)(y * MHz) / 1000.0, y);
- }
- fprintf(fp, ")\n");
- for (l = 0; l <= TLB->levels; l++) {
-- if (!delay) z = (dbl)round(CYperIt(TLB->latency1[l] - delay)) * 1000.0 / (dbl)MHz;
-- else z = (dbl)round(CYperIt(TLB->latency2[l] - delay)) * 1000.0 / (dbl)MHz;
-+ if (!delay) z = (dbl)lng_round(CYperIt(TLB->latency1[l] - delay)) * 1000.0 / (dbl)MHz;
-+ else z = (dbl)lng_round(CYperIt(TLB->latency2[l] - delay)) * 1000.0 / (dbl)MHz;
- fprintf(fp, "set label %ld '(%1.3g) ' at %f,%f right\n", l + 1, z, xl, z);
- fprintf(fp, "set arrow %ld from %f,%f to %f,%f nohead lt 0\n", l + 1, xl, z, xh, z);
- }
-@@ -1023,9 +1023,9 @@ void printCPU(cacheInfo *cache, lng MHz, lng delay)
- FILE *fp = stdout;
-
- fprintf(fp, "CPU loop + L1 access: ");
-- fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[0]), round(CYperIt(cache->latency1[0])));
-+ fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[0]), lng_round(CYperIt(cache->latency1[0])));
- fprintf(fp, " ( delay: ");
-- fprintf(fp, " %6.2f ns = %3ld cy )\n", NSperIt(delay), round(CYperIt(delay)));
-+ fprintf(fp, " %6.2f ns = %3ld cy )\n", NSperIt(delay), lng_round(CYperIt(delay)));
- fprintf(fp, "\n");
- fflush(fp);
- }
-@@ -1047,8 +1047,8 @@ void printCache(cacheInfo *cache, lng MHz)
- fprintf(fp, " %3ld KB ", cache->size[l] / 1024);
- }
- fprintf(fp, " %3ld bytes ", cache->linesize[l + 1]);
-- fprintf(fp, " %6.2f ns = %3ld cy " , NSperIt(cache->latency2[l + 1] - cache->latency2[l]), round(CYperIt(cache->latency2[l + 1] - cache->latency2[l])));
-- fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[l + 1] - cache->latency1[l]), round(CYperIt(cache->latency1[l + 1] - cache->latency1[l])));
-+ fprintf(fp, " %6.2f ns = %3ld cy " , NSperIt(cache->latency2[l + 1] - cache->latency2[l]), lng_round(CYperIt(cache->latency2[l + 1] - cache->latency2[l])));
-+ fprintf(fp, " %6.2f ns = %3ld cy\n", NSperIt(cache->latency1[l + 1] - cache->latency1[l]), lng_round(CYperIt(cache->latency1[l + 1] - cache->latency1[l])));
- }
- fprintf(fp, "\n");
- fflush(fp);
-@@ -1075,9 +1075,9 @@ void printTLB(TLBinfo *TLB, lng MHz)
- } else {
- fprintf(fp, " %3ld KB ", TLB->pagesize[l + 1] / 1024);
- }
-- fprintf(fp, " %6.2f ns = %3ld cy ", NSperIt(TLB->latency2[l + 1] - TLB->latency2[l]), round(CYperIt(TLB->latency2[l + 1] - TLB->latency2[l])));
-+ fprintf(fp, " %6.2f ns = %3ld cy ", NSperIt(TLB->latency2[l + 1] - TLB->latency2[l]), lng_round(CYperIt(TLB->latency2[l + 1] - TLB->latency2[l])));
- /*
-- fprintf(fp, " %6.2f ns = %3ld cy" , NSperIt(TLB->latency1[l + 1] - TLB->latency1[l]), round(CYperIt(TLB->latency1[l + 1] - TLB->latency1[l])));
-+ fprintf(fp, " %6.2f ns = %3ld cy" , NSperIt(TLB->latency1[l + 1] - TLB->latency1[l]), lng_round(CYperIt(TLB->latency1[l + 1] - TLB->latency1[l])));
- */
- fprintf(fp, "\n");
- }
---
-1.7.0.4
-
--- /dev/null
+Fix build on platforms where __USER_LABEL_PREFIX__ is not empty
+
+On most platforms, a C language symbol and its assembly equivalent are
+identical. However, on the Blackfin architecture, this isn't the case,
+the corresponding C language symbol in assembly is prepended with a
+"_". Blackfin therefore has __USER_LABEL_PREFIX__ defined to "_".
+
+Cairo already has some code to cope with __USER_LABEL_PREFIX__, but
+this code isn't completely correct: it prepends both assembly symbols
+and C symbols with __USER_LABEL_PREFIX__, which cannot work.
+
+This patch fixes that by using the existing slim_hidden_asmname() to
+define assembly symbols, and introduce a new slim_hidden_realname()
+for C symbols.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/cairo-compiler-private.h
+===================================================================
+--- a/src/cairo-compiler-private.h
++++ b/src/cairo-compiler-private.h
+@@ -93,12 +93,13 @@
+ __asm__ (slim_hidden_asmname (internal))
+ # define slim_hidden_def1(name, internal) \
+ extern __typeof (name) EXT_##name __asm__(slim_hidden_asmname(name)) \
+- __attribute__((__alias__(slim_hidden_asmname(internal))))
++ __attribute__((__alias__(slim_hidden_realname(internal))))
+ # define slim_hidden_ulp slim_hidden_ulp1(__USER_LABEL_PREFIX__)
+ # define slim_hidden_ulp1(x) slim_hidden_ulp2(x)
+ # define slim_hidden_ulp2(x) #x
+ # define slim_hidden_asmname(name) slim_hidden_asmname1(name)
+ # define slim_hidden_asmname1(name) slim_hidden_ulp #name
++# define slim_hidden_realname(name) #name
+ #else
+ # define slim_hidden_proto(name) int _cairo_dummy_prototype(void)
+ # define slim_hidden_proto_no_warn(name) int _cairo_dummy_prototype(void)
+Index: b/util/cairo-script/cairo-script-private.h
+===================================================================
+--- a/util/cairo-script/cairo-script-private.h
++++ b/util/cairo-script/cairo-script-private.h
+@@ -109,12 +109,13 @@
+ __asm__ (slim_hidden_asmname (internal))
+ # define slim_hidden_def1(name, internal) \
+ extern __typeof (name) EXT_##name __asm__(slim_hidden_asmname(name)) \
+- __attribute__((__alias__(slim_hidden_asmname(internal))))
++ __attribute__((__alias__(slim_hidden_realname(internal))))
+ # define slim_hidden_ulp slim_hidden_ulp1(__USER_LABEL_PREFIX__)
+ # define slim_hidden_ulp1(x) slim_hidden_ulp2(x)
+ # define slim_hidden_ulp2(x) #x
+ # define slim_hidden_asmname(name) slim_hidden_asmname1(name)
+ # define slim_hidden_asmname1(name) slim_hidden_ulp #name
++# define slim_hidden_realname(name) #name
+ #else
+ # define slim_hidden_proto(name) int _csi_dummy_prototype(void)
+ # define slim_hidden_proto_no_warn(name) int _csi_dummy_prototype(void)
--- /dev/null
+Fix build of OpenVG backend on platforms without X11
+
+https://bugs.freedesktop.org/show_bug.cgi?id=72911
+
+Signed-off-by: Paul Cercueil <paul@crapouillou.net>
+
+Index: b/boilerplate/cairo-boilerplate-vg.c
+===================================================================
+--- a/boilerplate/cairo-boilerplate-vg.c
++++ b/boilerplate/cairo-boilerplate-vg.c
+@@ -215,7 +215,7 @@ _cairo_boilerplate_vg_create_surface_egl (const char *name,
+ EGL_ALPHA_SIZE, 8,
+ EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
+ EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
+- None
++ EGL_NONE
+ };
+ int rgb_attribs[] = {
+ EGL_RED_SIZE, 8,
+@@ -225,7 +225,7 @@ _cairo_boilerplate_vg_create_surface_egl (const char *name,
+ EGL_VG_ALPHA_FORMAT, EGL_VG_ALPHA_FORMAT_PRE_BIT,
+ EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
+ EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
+- None
++ EGL_NONE
+ };
+ int dummy_attribs[] = {
+ EGL_WIDTH, 8, EGL_HEIGHT, 8,
--- /dev/null
+test: fix build when SHOULD_FORK is false
+
+The code in test/cairo-test-runner.c properly takes into account
+platforms that do have fork() support, and uses the SHOULD_FORK define
+to know whether fork is available or not.
+
+However, this SHOULD_FORK macro is used to guard the inclusion of
+<unistd.h>, which is needed to get the prototype of other functions
+(namely readlink and getppid), that are used in portions of this file
+not guarded by SHOULD_FORK.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/test/cairo-test-runner.c
+===================================================================
+--- a/test/cairo-test-runner.c
++++ b/test/cairo-test-runner.c
+@@ -36,10 +36,10 @@
+ #include <pixman.h> /* for version information */
+
+ #define SHOULD_FORK HAVE_FORK && HAVE_WAITPID
+-#if SHOULD_FORK
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
++#if SHOULD_FORK
+ #if HAVE_SIGNAL_H
+ #include <signal.h>
+ #endif
--- /dev/null
+test: fix build of any2ppm if fork is not available.
+
+The test program any2ppm can run as daemon. This feature can be disabled at
+compile time, if the required headers are not present. However the support for
+fork() is not checked.
+
+This patch fixes this issue.
+
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+
+Index: cairo-1.12.10/test/any2ppm.c
+===================================================================
+--- cairo-1.12.10.orig/test/any2ppm.c 2012-04-19 14:17:34.000000000 +0200
++++ cairo-1.12.10/test/any2ppm.c 2014-04-25 11:13:30.000000000 +0200
+@@ -79,7 +79,7 @@
+
+ #include <errno.h>
+
+-#if HAVE_UNISTD_H && HAVE_FCNTL_H && HAVE_SIGNAL_H && HAVE_SYS_STAT_H && HAVE_SYS_SOCKET_H && HAVE_SYS_POLL_H && HAVE_SYS_UN_H
++#if HAVE_UNISTD_H && HAVE_FCNTL_H && HAVE_SIGNAL_H && HAVE_SYS_STAT_H && HAVE_SYS_SOCKET_H && HAVE_SYS_POLL_H && HAVE_SYS_UN_H && HAVE_FORK
+ #include <fcntl.h>
+ #include <signal.h>
+ #include <sys/stat.h>
--- /dev/null
+Fix build with gcc 4.9
+
+cairo fails to build with gcc 4.9 due to a bad interaction of cairo
+modules with the LTO mechanism. The suggested workaround is to pass
+-ffat-lto-objects. See
+https://bugs.freedesktop.org/show_bug.cgi?id=77060 for the upstream
+bug report, and
+https://bugs.archlinux.org/task/40313?project=1&openedfrom=-1+week for
+the ArchLinux bug report.
+
+This patch passes -ffat-lto-objects when gcc understands this option,
+in order to provide compatibility with gcc versions older than 4.8,
+which did not provide this option, but are anyway unaffected by the
+issue.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -37,6 +37,16 @@
+ m4_include(build/configure.ac.pthread) dnl checks for pthreads
+ AC_CACHE_SAVE
+
++old_cflags=$CFLAGS
++CFLAGS=-ffat-lto-objects
++AC_MSG_CHECKING([whether CC supports -ffat-lto-objects])
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
++ [AC_MSG_RESULT([yes])]
++ [LTO_CFLAGS=-ffat-lto-objects],
++ [AC_MSG_RESULT([no])]
++)
++CFLAGS="${old_CFLAGS} ${LTO_CFLAGS}"
++
+ dnl ===========================================================================
+
+ AC_CHECK_LIB(z, compress,
+++ /dev/null
-Fix build on platforms where __USER_LABEL_PREFIX__ is not empty
-
-On most platforms, a C language symbol and its assembly equivalent are
-identical. However, on the Blackfin architecture, this isn't the case,
-the corresponding C language symbol in assembly is prepended with a
-"_". Blackfin therefore has __USER_LABEL_PREFIX__ defined to "_".
-
-Cairo already has some code to cope with __USER_LABEL_PREFIX__, but
-this code isn't completely correct: it prepends both assembly symbols
-and C symbols with __USER_LABEL_PREFIX__, which cannot work.
-
-This patch fixes that by using the existing slim_hidden_asmname() to
-define assembly symbols, and introduce a new slim_hidden_realname()
-for C symbols.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/src/cairo-compiler-private.h
-===================================================================
---- a/src/cairo-compiler-private.h
-+++ b/src/cairo-compiler-private.h
-@@ -93,12 +93,13 @@
- __asm__ (slim_hidden_asmname (internal))
- # define slim_hidden_def1(name, internal) \
- extern __typeof (name) EXT_##name __asm__(slim_hidden_asmname(name)) \
-- __attribute__((__alias__(slim_hidden_asmname(internal))))
-+ __attribute__((__alias__(slim_hidden_realname(internal))))
- # define slim_hidden_ulp slim_hidden_ulp1(__USER_LABEL_PREFIX__)
- # define slim_hidden_ulp1(x) slim_hidden_ulp2(x)
- # define slim_hidden_ulp2(x) #x
- # define slim_hidden_asmname(name) slim_hidden_asmname1(name)
- # define slim_hidden_asmname1(name) slim_hidden_ulp #name
-+# define slim_hidden_realname(name) #name
- #else
- # define slim_hidden_proto(name) int _cairo_dummy_prototype(void)
- # define slim_hidden_proto_no_warn(name) int _cairo_dummy_prototype(void)
-Index: b/util/cairo-script/cairo-script-private.h
-===================================================================
---- a/util/cairo-script/cairo-script-private.h
-+++ b/util/cairo-script/cairo-script-private.h
-@@ -109,12 +109,13 @@
- __asm__ (slim_hidden_asmname (internal))
- # define slim_hidden_def1(name, internal) \
- extern __typeof (name) EXT_##name __asm__(slim_hidden_asmname(name)) \
-- __attribute__((__alias__(slim_hidden_asmname(internal))))
-+ __attribute__((__alias__(slim_hidden_realname(internal))))
- # define slim_hidden_ulp slim_hidden_ulp1(__USER_LABEL_PREFIX__)
- # define slim_hidden_ulp1(x) slim_hidden_ulp2(x)
- # define slim_hidden_ulp2(x) #x
- # define slim_hidden_asmname(name) slim_hidden_asmname1(name)
- # define slim_hidden_asmname1(name) slim_hidden_ulp #name
-+# define slim_hidden_realname(name) #name
- #else
- # define slim_hidden_proto(name) int _csi_dummy_prototype(void)
- # define slim_hidden_proto_no_warn(name) int _csi_dummy_prototype(void)
+++ /dev/null
-Fix build of OpenVG backend on platforms without X11
-
-https://bugs.freedesktop.org/show_bug.cgi?id=72911
-
-Signed-off-by: Paul Cercueil <paul@crapouillou.net>
-
-Index: b/boilerplate/cairo-boilerplate-vg.c
-===================================================================
---- a/boilerplate/cairo-boilerplate-vg.c
-+++ b/boilerplate/cairo-boilerplate-vg.c
-@@ -215,7 +215,7 @@ _cairo_boilerplate_vg_create_surface_egl (const char *name,
- EGL_ALPHA_SIZE, 8,
- EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
- EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
-- None
-+ EGL_NONE
- };
- int rgb_attribs[] = {
- EGL_RED_SIZE, 8,
-@@ -225,7 +225,7 @@ _cairo_boilerplate_vg_create_surface_egl (const char *name,
- EGL_VG_ALPHA_FORMAT, EGL_VG_ALPHA_FORMAT_PRE_BIT,
- EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
- EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
-- None
-+ EGL_NONE
- };
- int dummy_attribs[] = {
- EGL_WIDTH, 8, EGL_HEIGHT, 8,
+++ /dev/null
-test: fix build when SHOULD_FORK is false
-
-The code in test/cairo-test-runner.c properly takes into account
-platforms that do have fork() support, and uses the SHOULD_FORK define
-to know whether fork is available or not.
-
-However, this SHOULD_FORK macro is used to guard the inclusion of
-<unistd.h>, which is needed to get the prototype of other functions
-(namely readlink and getppid), that are used in portions of this file
-not guarded by SHOULD_FORK.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/test/cairo-test-runner.c
-===================================================================
---- a/test/cairo-test-runner.c
-+++ b/test/cairo-test-runner.c
-@@ -36,10 +36,10 @@
- #include <pixman.h> /* for version information */
-
- #define SHOULD_FORK HAVE_FORK && HAVE_WAITPID
--#if SHOULD_FORK
- #if HAVE_UNISTD_H
- #include <unistd.h>
- #endif
-+#if SHOULD_FORK
- #if HAVE_SIGNAL_H
- #include <signal.h>
- #endif
+++ /dev/null
-test: fix build of any2ppm if fork is not available.
-
-The test program any2ppm can run as daemon. This feature can be disabled at
-compile time, if the required headers are not present. However the support for
-fork() is not checked.
-
-This patch fixes this issue.
-
-Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
-
-Index: cairo-1.12.10/test/any2ppm.c
-===================================================================
---- cairo-1.12.10.orig/test/any2ppm.c 2012-04-19 14:17:34.000000000 +0200
-+++ cairo-1.12.10/test/any2ppm.c 2014-04-25 11:13:30.000000000 +0200
-@@ -79,7 +79,7 @@
-
- #include <errno.h>
-
--#if HAVE_UNISTD_H && HAVE_FCNTL_H && HAVE_SIGNAL_H && HAVE_SYS_STAT_H && HAVE_SYS_SOCKET_H && HAVE_SYS_POLL_H && HAVE_SYS_UN_H
-+#if HAVE_UNISTD_H && HAVE_FCNTL_H && HAVE_SIGNAL_H && HAVE_SYS_STAT_H && HAVE_SYS_SOCKET_H && HAVE_SYS_POLL_H && HAVE_SYS_UN_H && HAVE_FORK
- #include <fcntl.h>
- #include <signal.h>
- #include <sys/stat.h>
+++ /dev/null
-Fix build with gcc 4.9
-
-cairo fails to build with gcc 4.9 due to a bad interaction of cairo
-modules with the LTO mechanism. The suggested workaround is to pass
--ffat-lto-objects. See
-https://bugs.freedesktop.org/show_bug.cgi?id=77060 for the upstream
-bug report, and
-https://bugs.archlinux.org/task/40313?project=1&openedfrom=-1+week for
-the ArchLinux bug report.
-
-This patch passes -ffat-lto-objects when gcc understands this option,
-in order to provide compatibility with gcc versions older than 4.8,
-which did not provide this option, but are anyway unaffected by the
-issue.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -37,6 +37,16 @@
- m4_include(build/configure.ac.pthread) dnl checks for pthreads
- AC_CACHE_SAVE
-
-+old_cflags=$CFLAGS
-+CFLAGS=-ffat-lto-objects
-+AC_MSG_CHECKING([whether CC supports -ffat-lto-objects])
-+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
-+ [AC_MSG_RESULT([yes])]
-+ [LTO_CFLAGS=-ffat-lto-objects],
-+ [AC_MSG_RESULT([no])]
-+)
-+CFLAGS="${old_CFLAGS} ${LTO_CFLAGS}"
-+
- dnl ===========================================================================
-
- AC_CHECK_LIB(z, compress,
--- /dev/null
+From s.martin49@gmail.com Sun Sep 28 14:59:53 2014
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [PATCH] Install pkgconfig module for canfestival
+X-Mercurial-Node: c408fdc77aa18fcda81db4f0d038e8a69ba84bb2
+X-Mercurial-Series-Index: 1
+X-Mercurial-Series-Total: 1
+Message-Id: <c408fdc77aa18fcda81d.1411909193@bobook>
+X-Mercurial-Series-Id: <c408fdc77aa18fcda81d.1411909193@bobook>
+User-Agent: Mercurial-patchbomb/3.1.1
+Date: Sun, 28 Sep 2014 14:59:53 +0200
+From: Samuel Martin <s.martin49@gmail.com>
+To: canfestival-devel@lists.sourceforge.net
+Cc: Samuel Martin <s.martin49@gmail.com>
+
+# HG changeset patch
+# User "Samuel Martin" <s.martin49@gmail.com>
+# Date 1411906817 -7200
+# Sun Sep 28 14:20:17 2014 +0200
+# Node ID c408fdc77aa18fcda81db4f0d038e8a69ba84bb2
+# Parent 7740ac6fdedc23e1ed6908d3d7db54833c88572b
+Install pkgconfig module for canfestival.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+Cc: Cluadio Laurita <claudio.laurita@integrazionetotale.it>
+
+diff -r 7740ac6fdedc -r c408fdc77aa1 canfestival.pc.in
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/canfestival.pc.in Sun Sep 28 14:20:17 2014 +0200
+@@ -0,0 +1,12 @@
++PREFIX = SUB_PREFIX
++TARGET = SUB_TARGET
++
++prefix=${PREFIX}
++libdir=${prefix}/lib
++includedir=${prefix}/include/canfestival
++
++Name: Canfestival
++Description: Canfestival CANOpen library
++Version: 1
++Libs: -L${libdir} -lcanfestival -lcanfestival_${TARGET} -lrt -ldl -lpthread
++Cflags: -I${includedir}
+diff -r 7740ac6fdedc -r c408fdc77aa1 configure
+--- a/configure Thu Jun 12 14:07:16 2014 +0200
++++ b/configure Sun Sep 28 14:20:17 2014 +0200
+@@ -813,6 +813,10 @@
+ MAKEFILES=$MAKEFILES\ drivers/$SUB_TARGET/Makefile.in
+ fi
+
++if [ "$SUB_TARGET" = "unix" ]; then
++ MAKEFILES=$MAKEFILES\ canfestival.pc.in
++fi
++
+ if [ "$SUB_TARGET" = "unix" -a "$SUB_TIMERS_DRIVER" = "kernel" ]; then
+ MAKEFILES=$MAKEFILES\
+ \ examples/kerneltest/Makefile.in\
+diff -r 7740ac6fdedc -r c408fdc77aa1 src/Makefile.in
+--- a/src/Makefile.in Thu Jun 12 14:07:16 2014 +0200
++++ b/src/Makefile.in Sun Sep 28 14:20:17 2014 +0200
+@@ -132,9 +132,10 @@
+ $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+
+ install: libcanfestival.a
+- mkdir -p $(DESTDIR)$(PREFIX)/lib/
++ mkdir -p $(DESTDIR)$(PREFIX)/lib/pkgconfig
+ mkdir -p $(DESTDIR)$(PREFIX)/include/canfestival
+ cp libcanfestival.a $(DESTDIR)$(PREFIX)/lib/
++ cp ../canfestival.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig/
+ cp ../include/*.h $(DESTDIR)$(PREFIX)/include/canfestival
+
+ uninstall:
+
+
--- /dev/null
+From s.martin49@gmail.com Fri Oct 10 23:43:32 2014
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [PATCH] allow to set python interpreter
+X-Mercurial-Node: 4805f636c2317d989a5f704ba691369f41be6595
+X-Mercurial-Series-Index: 1
+X-Mercurial-Series-Total: 1
+Message-Id: <4805f636c2317d989a5f.1412977412@bobook>
+X-Mercurial-Series-Id: <4805f636c2317d989a5f.1412977412@bobook>
+User-Agent: Mercurial-patchbomb/3.1.2
+Date: Fri, 10 Oct 2014 23:43:32 +0200
+From: Samuel Martin <s.martin49@gmail.com>
+To: canfestival-devel@lists.sourceforge.net
+Cc: Samuel Martin <s.martin49@gmail.com>
+
+# HG changeset patch
+# User "Samuel Martin" <s.martin49@gmail.com>
+# Date 1412977082 -7200
+# Fri Oct 10 23:38:02 2014 +0200
+# Node ID 4805f636c2317d989a5f704ba691369f41be6595
+# Parent c408fdc77aa18fcda81db4f0d038e8a69ba84bb2
+allow to set python interpreter
+
+Canfestival python modules and scripts are not python3 compliant.
+
+Allow to pass the python interperter to be used to make.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+diff --git a/Makefile.in b/Makefile.in
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -21,6 +21,9 @@
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ #
+
++PYTHON ?= python
++export PYTHON
++
+ all: objdictedit canfestival examples
+
+ examples: canfestival driver
+diff --git a/doc/manual/en/manual.tex b/doc/manual/en/manual.tex
+--- a/doc/manual/en/manual.tex
++++ b/doc/manual/en/manual.tex
+@@ -1134,6 +1134,7 @@
+ python objdictedit.py [od files...]
+ \end{verbatim}
+
++Note that Gnosis modules only run with python2 as interpreter.
+
+ \subsubsection{Installation and usage on Windows}
+
+diff --git a/examples/CANOpenShell/Makefile.in b/examples/CANOpenShell/Makefile.in
+--- a/examples/CANOpenShell/Makefile.in
++++ b/examples/CANOpenShell/Makefile.in
+@@ -69,11 +69,11 @@
+
+ CANOpenShellMasterOD.c: CANOpenShellMasterOD.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py CANOpenShellMasterOD.od CANOpenShellMasterOD.c
++ $(PYTHON) ../../objdictgen/objdictgen.py CANOpenShellMasterOD.od CANOpenShellMasterOD.c
+
+ CANOpenShellSlaveOD.c: CANOpenShellSlaveOD.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py CANOpenShellSlaveOD.od CANOpenShellSlaveOD.c
++ $(PYTHON) ../../objdictgen/objdictgen.py CANOpenShellSlaveOD.od CANOpenShellSlaveOD.c
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/DS401_Master/Makefile.in b/examples/DS401_Master/Makefile.in
+--- a/examples/DS401_Master/Makefile.in
++++ b/examples/DS401_Master/Makefile.in
+@@ -53,7 +53,7 @@
+
+ TestMaster.c: TestMaster.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/DS401_Slave_Gui/Makefile.in b/examples/DS401_Slave_Gui/Makefile.in
+--- a/examples/DS401_Slave_Gui/Makefile.in
++++ b/examples/DS401_Slave_Gui/Makefile.in
+@@ -59,7 +59,7 @@
+
+ ObjDict.c: ObjDict.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py ObjDict.od ObjDict.c
++ $(PYTHON) ../../objdictgen/objdictgen.py ObjDict.od ObjDict.c
+
+ .cpp.o:
+ $(CXX) -c $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) `wx-config --cxxflags` $< -o $@
+diff --git a/examples/SillySlave/Makefile.in b/examples/SillySlave/Makefile.in
+--- a/examples/SillySlave/Makefile.in
++++ b/examples/SillySlave/Makefile.in
+@@ -53,7 +53,7 @@
+
+ SillySlave.c: SillySlave.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py SillySlave.od SillySlave.c
++ $(PYTHON) ../../objdictgen/objdictgen.py SillySlave.od SillySlave.c
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/TestMasterMicroMod/Makefile.in b/examples/TestMasterMicroMod/Makefile.in
+--- a/examples/TestMasterMicroMod/Makefile.in
++++ b/examples/TestMasterMicroMod/Makefile.in
+@@ -61,7 +61,7 @@
+
+ TestMaster.c: TestMaster.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/TestMasterSlave/Makefile.in b/examples/TestMasterSlave/Makefile.in
+--- a/examples/TestMasterSlave/Makefile.in
++++ b/examples/TestMasterSlave/Makefile.in
+@@ -69,11 +69,11 @@
+
+ TestSlave.c: TestSlave.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
+
+ TestMaster.c: TestMaster.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/TestMasterSlaveLSS/Makefile.in b/examples/TestMasterSlaveLSS/Makefile.in
+--- a/examples/TestMasterSlaveLSS/Makefile.in
++++ b/examples/TestMasterSlaveLSS/Makefile.in
+@@ -64,15 +64,15 @@
+
+ TestSlaveA.c: TestSlaveA.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestSlaveA.od TestSlaveA.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestSlaveA.od TestSlaveA.c
+
+ TestSlaveB.c: TestSlaveB.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestSlaveB.od TestSlaveB.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestSlaveB.od TestSlaveB.c
+
+ TestMaster.c: TestMaster.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/kerneltest/Makefile.in b/examples/kerneltest/Makefile.in
+--- a/examples/kerneltest/Makefile.in
++++ b/examples/kerneltest/Makefile.in
+@@ -79,10 +79,10 @@
+
+ TestSlave.c: TestSlave.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
+
+ TestMaster.c: TestMaster.od
+ $(MAKE) -C ../../objdictgen gnosis
+- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+
+ #endif
+
+
+++ /dev/null
-From s.martin49@gmail.com Sun Sep 28 14:59:53 2014
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [PATCH] Install pkgconfig module for canfestival
-X-Mercurial-Node: c408fdc77aa18fcda81db4f0d038e8a69ba84bb2
-X-Mercurial-Series-Index: 1
-X-Mercurial-Series-Total: 1
-Message-Id: <c408fdc77aa18fcda81d.1411909193@bobook>
-X-Mercurial-Series-Id: <c408fdc77aa18fcda81d.1411909193@bobook>
-User-Agent: Mercurial-patchbomb/3.1.1
-Date: Sun, 28 Sep 2014 14:59:53 +0200
-From: Samuel Martin <s.martin49@gmail.com>
-To: canfestival-devel@lists.sourceforge.net
-Cc: Samuel Martin <s.martin49@gmail.com>
-
-# HG changeset patch
-# User "Samuel Martin" <s.martin49@gmail.com>
-# Date 1411906817 -7200
-# Sun Sep 28 14:20:17 2014 +0200
-# Node ID c408fdc77aa18fcda81db4f0d038e8a69ba84bb2
-# Parent 7740ac6fdedc23e1ed6908d3d7db54833c88572b
-Install pkgconfig module for canfestival.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-Cc: Cluadio Laurita <claudio.laurita@integrazionetotale.it>
-
-diff -r 7740ac6fdedc -r c408fdc77aa1 canfestival.pc.in
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/canfestival.pc.in Sun Sep 28 14:20:17 2014 +0200
-@@ -0,0 +1,12 @@
-+PREFIX = SUB_PREFIX
-+TARGET = SUB_TARGET
-+
-+prefix=${PREFIX}
-+libdir=${prefix}/lib
-+includedir=${prefix}/include/canfestival
-+
-+Name: Canfestival
-+Description: Canfestival CANOpen library
-+Version: 1
-+Libs: -L${libdir} -lcanfestival -lcanfestival_${TARGET} -lrt -ldl -lpthread
-+Cflags: -I${includedir}
-diff -r 7740ac6fdedc -r c408fdc77aa1 configure
---- a/configure Thu Jun 12 14:07:16 2014 +0200
-+++ b/configure Sun Sep 28 14:20:17 2014 +0200
-@@ -813,6 +813,10 @@
- MAKEFILES=$MAKEFILES\ drivers/$SUB_TARGET/Makefile.in
- fi
-
-+if [ "$SUB_TARGET" = "unix" ]; then
-+ MAKEFILES=$MAKEFILES\ canfestival.pc.in
-+fi
-+
- if [ "$SUB_TARGET" = "unix" -a "$SUB_TIMERS_DRIVER" = "kernel" ]; then
- MAKEFILES=$MAKEFILES\
- \ examples/kerneltest/Makefile.in\
-diff -r 7740ac6fdedc -r c408fdc77aa1 src/Makefile.in
---- a/src/Makefile.in Thu Jun 12 14:07:16 2014 +0200
-+++ b/src/Makefile.in Sun Sep 28 14:20:17 2014 +0200
-@@ -132,9 +132,10 @@
- $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
-
- install: libcanfestival.a
-- mkdir -p $(DESTDIR)$(PREFIX)/lib/
-+ mkdir -p $(DESTDIR)$(PREFIX)/lib/pkgconfig
- mkdir -p $(DESTDIR)$(PREFIX)/include/canfestival
- cp libcanfestival.a $(DESTDIR)$(PREFIX)/lib/
-+ cp ../canfestival.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig/
- cp ../include/*.h $(DESTDIR)$(PREFIX)/include/canfestival
-
- uninstall:
-
-
+++ /dev/null
-From s.martin49@gmail.com Fri Oct 10 23:43:32 2014
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [PATCH] allow to set python interpreter
-X-Mercurial-Node: 4805f636c2317d989a5f704ba691369f41be6595
-X-Mercurial-Series-Index: 1
-X-Mercurial-Series-Total: 1
-Message-Id: <4805f636c2317d989a5f.1412977412@bobook>
-X-Mercurial-Series-Id: <4805f636c2317d989a5f.1412977412@bobook>
-User-Agent: Mercurial-patchbomb/3.1.2
-Date: Fri, 10 Oct 2014 23:43:32 +0200
-From: Samuel Martin <s.martin49@gmail.com>
-To: canfestival-devel@lists.sourceforge.net
-Cc: Samuel Martin <s.martin49@gmail.com>
-
-# HG changeset patch
-# User "Samuel Martin" <s.martin49@gmail.com>
-# Date 1412977082 -7200
-# Fri Oct 10 23:38:02 2014 +0200
-# Node ID 4805f636c2317d989a5f704ba691369f41be6595
-# Parent c408fdc77aa18fcda81db4f0d038e8a69ba84bb2
-allow to set python interpreter
-
-Canfestival python modules and scripts are not python3 compliant.
-
-Allow to pass the python interperter to be used to make.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
-diff --git a/Makefile.in b/Makefile.in
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -21,6 +21,9 @@
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- #
-
-+PYTHON ?= python
-+export PYTHON
-+
- all: objdictedit canfestival examples
-
- examples: canfestival driver
-diff --git a/doc/manual/en/manual.tex b/doc/manual/en/manual.tex
---- a/doc/manual/en/manual.tex
-+++ b/doc/manual/en/manual.tex
-@@ -1134,6 +1134,7 @@
- python objdictedit.py [od files...]
- \end{verbatim}
-
-+Note that Gnosis modules only run with python2 as interpreter.
-
- \subsubsection{Installation and usage on Windows}
-
-diff --git a/examples/CANOpenShell/Makefile.in b/examples/CANOpenShell/Makefile.in
---- a/examples/CANOpenShell/Makefile.in
-+++ b/examples/CANOpenShell/Makefile.in
-@@ -69,11 +69,11 @@
-
- CANOpenShellMasterOD.c: CANOpenShellMasterOD.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py CANOpenShellMasterOD.od CANOpenShellMasterOD.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py CANOpenShellMasterOD.od CANOpenShellMasterOD.c
-
- CANOpenShellSlaveOD.c: CANOpenShellSlaveOD.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py CANOpenShellSlaveOD.od CANOpenShellSlaveOD.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py CANOpenShellSlaveOD.od CANOpenShellSlaveOD.c
-
- %.o: %.c
- $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
-diff --git a/examples/DS401_Master/Makefile.in b/examples/DS401_Master/Makefile.in
---- a/examples/DS401_Master/Makefile.in
-+++ b/examples/DS401_Master/Makefile.in
-@@ -53,7 +53,7 @@
-
- TestMaster.c: TestMaster.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-
- %.o: %.c
- $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
-diff --git a/examples/DS401_Slave_Gui/Makefile.in b/examples/DS401_Slave_Gui/Makefile.in
---- a/examples/DS401_Slave_Gui/Makefile.in
-+++ b/examples/DS401_Slave_Gui/Makefile.in
-@@ -59,7 +59,7 @@
-
- ObjDict.c: ObjDict.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py ObjDict.od ObjDict.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py ObjDict.od ObjDict.c
-
- .cpp.o:
- $(CXX) -c $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) `wx-config --cxxflags` $< -o $@
-diff --git a/examples/SillySlave/Makefile.in b/examples/SillySlave/Makefile.in
---- a/examples/SillySlave/Makefile.in
-+++ b/examples/SillySlave/Makefile.in
-@@ -53,7 +53,7 @@
-
- SillySlave.c: SillySlave.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py SillySlave.od SillySlave.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py SillySlave.od SillySlave.c
-
- %.o: %.c
- $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
-diff --git a/examples/TestMasterMicroMod/Makefile.in b/examples/TestMasterMicroMod/Makefile.in
---- a/examples/TestMasterMicroMod/Makefile.in
-+++ b/examples/TestMasterMicroMod/Makefile.in
-@@ -61,7 +61,7 @@
-
- TestMaster.c: TestMaster.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-
- %.o: %.c
- $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
-diff --git a/examples/TestMasterSlave/Makefile.in b/examples/TestMasterSlave/Makefile.in
---- a/examples/TestMasterSlave/Makefile.in
-+++ b/examples/TestMasterSlave/Makefile.in
-@@ -69,11 +69,11 @@
-
- TestSlave.c: TestSlave.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
-
- TestMaster.c: TestMaster.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-
- %.o: %.c
- $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
-diff --git a/examples/TestMasterSlaveLSS/Makefile.in b/examples/TestMasterSlaveLSS/Makefile.in
---- a/examples/TestMasterSlaveLSS/Makefile.in
-+++ b/examples/TestMasterSlaveLSS/Makefile.in
-@@ -64,15 +64,15 @@
-
- TestSlaveA.c: TestSlaveA.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestSlaveA.od TestSlaveA.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestSlaveA.od TestSlaveA.c
-
- TestSlaveB.c: TestSlaveB.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestSlaveB.od TestSlaveB.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestSlaveB.od TestSlaveB.c
-
- TestMaster.c: TestMaster.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-
- %.o: %.c
- $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
-diff --git a/examples/kerneltest/Makefile.in b/examples/kerneltest/Makefile.in
---- a/examples/kerneltest/Makefile.in
-+++ b/examples/kerneltest/Makefile.in
-@@ -79,10 +79,10 @@
-
- TestSlave.c: TestSlave.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
-
- TestMaster.c: TestMaster.od
- $(MAKE) -C ../../objdictgen gnosis
-- python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-+ $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
-
- #endif
-
-
--- /dev/null
+[PATCH] fix build with uClibc
+
+cdrkit unconditionally enables code using rcmd(3), which isn't available
+on uClibc.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ include/xconfig.h.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+Index: cdrkit-1.1.10/include/xconfig.h.in
+===================================================================
+--- cdrkit-1.1.10.orig/include/xconfig.h.in
++++ cdrkit-1.1.10/include/xconfig.h.in
+@@ -187,7 +187,6 @@
+ * they are placed before the large file tests.
+ */
+
+-#define HAVE_RCMD 1 /* rcmd() is present in libc/libsocket */
+ #define HAVE_SOCKET 1 /* socket() is present in libc/libsocket */
+ #define HAVE_SOCKETPAIR 1 /* socketpair() is present in libc/libsocket */
+ #define HAVE_GETSERVBYNAME 1 /* getservbyname() is present in libc/libsocket */
+++ /dev/null
-[PATCH] fix build with uClibc
-
-cdrkit unconditionally enables code using rcmd(3), which isn't available
-on uClibc.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- include/xconfig.h.in | 1 -
- 1 file changed, 1 deletion(-)
-
-Index: cdrkit-1.1.10/include/xconfig.h.in
-===================================================================
---- cdrkit-1.1.10.orig/include/xconfig.h.in
-+++ cdrkit-1.1.10/include/xconfig.h.in
-@@ -187,7 +187,6 @@
- * they are placed before the large file tests.
- */
-
--#define HAVE_RCMD 1 /* rcmd() is present in libc/libsocket */
- #define HAVE_SOCKET 1 /* socket() is present in libc/libsocket */
- #define HAVE_SOCKETPAIR 1 /* socketpair() is present in libc/libsocket */
- #define HAVE_GETSERVBYNAME 1 /* getservbyname() is present in libc/libsocket */
--- /dev/null
+includes: ptrdiff_t is defined in stddef.h
+
+ptrdiff_t is defined in the stddef.h header, so this
+header must be included.
+
+Do the #include in a common header to avoid doing it
+all over the place.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch not sent upstream, it's a no-longer-maintained branch.
+To be noted, however, is that the current devel branch is
+still missing that include.
+
+diff -durN cegui06-0.6.2.orig/include/CEGUIBase.h cegui06-0.6.2/include/CEGUIBase.h
+--- cegui06-0.6.2.orig//include/CEGUIBase.h 2008-02-11 15:38:27.000000000 +0100
++++ cegui06-0.6.2/include/CEGUIBase.h 2012-08-19 22:51:50.260385978 +0200
+@@ -34,6 +34,7 @@
+ #define _CEGUIBase_h_
+
+ #include <cassert>
++#include <stddef.h>
+
+ // bring in configuration options
+ #include "CEGUIConfig.h"
+++ /dev/null
-includes: ptrdiff_t is defined in stddef.h
-
-ptrdiff_t is defined in the stddef.h header, so this
-header must be included.
-
-Do the #include in a common header to avoid doing it
-all over the place.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
----
-Patch not sent upstream, it's a no-longer-maintained branch.
-To be noted, however, is that the current devel branch is
-still missing that include.
-
-diff -durN cegui06-0.6.2.orig/include/CEGUIBase.h cegui06-0.6.2/include/CEGUIBase.h
---- cegui06-0.6.2.orig//include/CEGUIBase.h 2008-02-11 15:38:27.000000000 +0100
-+++ cegui06-0.6.2/include/CEGUIBase.h 2012-08-19 22:51:50.260385978 +0200
-@@ -34,6 +34,7 @@
- #define _CEGUIBase_h_
-
- #include <cassert>
-+#include <stddef.h>
-
- // bring in configuration options
- #include "CEGUIConfig.h"
--- /dev/null
+Fixes build error
+
+proto.c: In function ‘dconnect’:
+proto.c:86:67: error: invalid application of ‘sizeof’ to incomplete type ‘struct sockaddr_un’
+ if (connect(sockd, (struct sockaddr *)&nixsock, sizeof(nixsock)) == 0)
+
+Patch sent upstream: http://lurker.clamav.net/message/20140928.130829.5494fd68.en.html
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr clamav-0.98.3.org/clamdscan/proto.c clamav-0.98.3/clamdscan/proto.c
+--- clamav-0.98.3.org/clamdscan/proto.c 2014-05-06 20:39:56.000000000 +0200
++++ clamav-0.98.3/clamdscan/proto.c 2014-05-10 10:41:44.000000000 +0200
+@@ -35,6 +35,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/types.h>
++#include <sys/un.h>
+ #ifdef HAVE_SYS_SELECT_H
+ #include <sys/select.h>
+ #endif
--- /dev/null
+Fix detection of statically linked libraries
+
+Patch submitted upstream: https://bugzilla.clamav.net/show_bug.cgi?id=11132
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr clamav-0.98.4.org/m4/reorganization/libs/curl.m4 clamav-0.98.4/m4/reorganization/libs/curl.m4
+--- clamav-0.98.4.org/m4/reorganization/libs/curl.m4 2014-05-21 17:25:05.000000000 +0200
++++ clamav-0.98.4/m4/reorganization/libs/curl.m4 2014-09-28 15:39:26.714111527 +0200
+@@ -38,7 +38,7 @@
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$CURL_LDFLAGS"
+ AC_CHECK_LIB([curl], [curl_easy_init], [curl_msg="";have_curl="yes";CLAMSUBMIT_LIBS="$CLAMSUBMIT_LIBS $CURL_LDFLAGS";CLAMSUBMIT_CFLAGS="$CLAMSUBMIT_CFLAGS $CURL_CPPFLAGS"],
+- [AC_MSG_WARN([Your libcurl is misconfigured. Please use the web interface for submitting FPs/FNs.])])
++ [AC_MSG_WARN([Your libcurl is misconfigured. Please use the web interface for submitting FPs/FNs.])], [$CURL_LDFLAGS])
+ LDFLAGS="$save_LDFLAGS"
+ fi
+
+diff -uNr clamav-0.98.4.org/m4/reorganization/libs/openssl.m4 clamav-0.98.4/m4/reorganization/libs/openssl.m4
+--- clamav-0.98.4.org/m4/reorganization/libs/openssl.m4 2014-05-22 15:18:22.000000000 +0200
++++ clamav-0.98.4/m4/reorganization/libs/openssl.m4 2014-09-28 15:15:18.280323868 +0200
+@@ -26,7 +26,7 @@
+ save_CFLAGS="$CFLAGS"
+ save_LIBS="$LIBS"
+
+-SSL_LIBS="-lssl -lcrypto"
++SSL_LIBS="-lssl -lcrypto -lz"
+
+ if test "$LIBSSL_HOME" != "/usr"; then
+ SSL_LDFLAGS="-L$LIBSSL_HOME/lib"
+@@ -41,12 +41,12 @@
+ have_ssl="no"
+ have_crypto="no"
+
+-AC_CHECK_LIB([ssl], [SSL_library_init], [have_ssl="yes"], [AC_MSG_ERROR([Your OpenSSL installation is misconfigured or missing])], [-lcrypto])
++AC_CHECK_LIB([ssl], [SSL_library_init], [have_ssl="yes"], [AC_MSG_ERROR([Your OpenSSL installation is misconfigured or missing])], [-lcrypto -lz])
+
+-AC_CHECK_LIB([crypto], [EVP_EncryptInit], [have_crypto="yes"], [AC_MSG_ERROR([Your OpenSSL installation is misconfigured or missing])])
++AC_CHECK_LIB([crypto], [EVP_EncryptInit], [have_crypto="yes"], [AC_MSG_ERROR([Your OpenSSL installation is misconfigured or missing])], [-lcrypto -lz])
+
+ dnl OpenSSL 0.9.8 is the minimum required version due to X509_VERIFY_PARAM
+-AC_CHECK_LIB([ssl], [X509_VERIFY_PARAM_new], [], [AC_MSG_ERROR([Your OpenSSL installation is missing the X509_VERIFY_PARAM function. Please upgrade to a more recent version of OpenSSL.])], [-lcrypto])
++AC_CHECK_LIB([ssl], [X509_VERIFY_PARAM_new], [], [AC_MSG_ERROR([Your OpenSSL installation is missing the X509_VERIFY_PARAM function. Please upgrade to a more recent version of OpenSSL.])], [-lcrypto -lz])
+
+ LDFLAGS="$save_LDFLAGS"
+ CFLAGS="$save_CFLAGS"
+diff -uNr clamav-0.98.4.org/m4/reorganization/libs/xml.m4 clamav-0.98.4/m4/reorganization/libs/xml.m4
+--- clamav-0.98.4.org/m4/reorganization/libs/xml.m4 2014-05-21 17:25:05.000000000 +0200
++++ clamav-0.98.4/m4/reorganization/libs/xml.m4 2014-09-28 15:57:41.836339462 +0200
+@@ -67,7 +67,7 @@
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $XML_LIBS"
+
+- AC_CHECK_LIB([xml2], [xmlTextReaderRead], [working_xml="yes"], [working_xml="no"])
++ AC_CHECK_LIB([xml2], [xmlTextReaderRead], [working_xml="yes"], [working_xml="no"], [$XML_LIBS])
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
--- /dev/null
+mbox: do not use backtrace if using uClibc without backtrace support
+
+Since uClibc can be configured without support for backtrace, disable
+the backtrace if we are building with a uClibc that was built without
+backtrace.
+
+This is a bit hacky, and would greatly benefit from a test in ./configure
+instead, but does nicely as a quick fix for now.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+diff -durN clamav-0.98.4.orig/libclamav/mbox.c clamav-0.98.4/libclamav/mbox.c
+--- clamav-0.98.4.orig/libclamav/mbox.c 2014-05-21 17:25:05.000000000 +0200
++++ clamav-0.98.4/libclamav/mbox.c 2014-11-16 17:21:04.885383286 +0100
+@@ -83,7 +83,7 @@
+ #include <features.h>
+ #endif
+
+-#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1
++#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 && !defined(__UCLIBC__) || defined(__UCLIBC_HAS_BACKTRACE__)
+ #define HAVE_BACKTRACE
+ #endif
+ #endif
--- /dev/null
+stats: fix static link
+
+The stats.c file does not use the dlopen() familly of functions, but
+includes dlfcn.h, which is missing on uClibc when it is configured as
+a static-only C library.
+
+so, simply do not include dlfcn.h.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN clamav-0.98.5.orig/libclamav/stats.c clamav-0.98.5/libclamav/stats.c
+--- clamav-0.98.5.orig/libclamav/stats.c 2014-11-13 23:30:43.000000000 +0100
++++ clamav-0.98.5/libclamav/stats.c 2014-11-25 19:57:14.344291266 +0100
+@@ -41,7 +41,6 @@
+ #include <sys/sysctl.h>
+ #endif
+ #endif
+-#include <dlfcn.h>
+ #else
+ #include <Windows.h>
+ #include <tchar.h>
+++ /dev/null
-Fixes build error
-
-proto.c: In function ‘dconnect’:
-proto.c:86:67: error: invalid application of ‘sizeof’ to incomplete type ‘struct sockaddr_un’
- if (connect(sockd, (struct sockaddr *)&nixsock, sizeof(nixsock)) == 0)
-
-Patch sent upstream: http://lurker.clamav.net/message/20140928.130829.5494fd68.en.html
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr clamav-0.98.3.org/clamdscan/proto.c clamav-0.98.3/clamdscan/proto.c
---- clamav-0.98.3.org/clamdscan/proto.c 2014-05-06 20:39:56.000000000 +0200
-+++ clamav-0.98.3/clamdscan/proto.c 2014-05-10 10:41:44.000000000 +0200
-@@ -35,6 +35,7 @@
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <sys/types.h>
-+#include <sys/un.h>
- #ifdef HAVE_SYS_SELECT_H
- #include <sys/select.h>
- #endif
+++ /dev/null
-Fix detection of statically linked libraries
-
-Patch submitted upstream: https://bugzilla.clamav.net/show_bug.cgi?id=11132
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr clamav-0.98.4.org/m4/reorganization/libs/curl.m4 clamav-0.98.4/m4/reorganization/libs/curl.m4
---- clamav-0.98.4.org/m4/reorganization/libs/curl.m4 2014-05-21 17:25:05.000000000 +0200
-+++ clamav-0.98.4/m4/reorganization/libs/curl.m4 2014-09-28 15:39:26.714111527 +0200
-@@ -38,7 +38,7 @@
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$CURL_LDFLAGS"
- AC_CHECK_LIB([curl], [curl_easy_init], [curl_msg="";have_curl="yes";CLAMSUBMIT_LIBS="$CLAMSUBMIT_LIBS $CURL_LDFLAGS";CLAMSUBMIT_CFLAGS="$CLAMSUBMIT_CFLAGS $CURL_CPPFLAGS"],
-- [AC_MSG_WARN([Your libcurl is misconfigured. Please use the web interface for submitting FPs/FNs.])])
-+ [AC_MSG_WARN([Your libcurl is misconfigured. Please use the web interface for submitting FPs/FNs.])], [$CURL_LDFLAGS])
- LDFLAGS="$save_LDFLAGS"
- fi
-
-diff -uNr clamav-0.98.4.org/m4/reorganization/libs/openssl.m4 clamav-0.98.4/m4/reorganization/libs/openssl.m4
---- clamav-0.98.4.org/m4/reorganization/libs/openssl.m4 2014-05-22 15:18:22.000000000 +0200
-+++ clamav-0.98.4/m4/reorganization/libs/openssl.m4 2014-09-28 15:15:18.280323868 +0200
-@@ -26,7 +26,7 @@
- save_CFLAGS="$CFLAGS"
- save_LIBS="$LIBS"
-
--SSL_LIBS="-lssl -lcrypto"
-+SSL_LIBS="-lssl -lcrypto -lz"
-
- if test "$LIBSSL_HOME" != "/usr"; then
- SSL_LDFLAGS="-L$LIBSSL_HOME/lib"
-@@ -41,12 +41,12 @@
- have_ssl="no"
- have_crypto="no"
-
--AC_CHECK_LIB([ssl], [SSL_library_init], [have_ssl="yes"], [AC_MSG_ERROR([Your OpenSSL installation is misconfigured or missing])], [-lcrypto])
-+AC_CHECK_LIB([ssl], [SSL_library_init], [have_ssl="yes"], [AC_MSG_ERROR([Your OpenSSL installation is misconfigured or missing])], [-lcrypto -lz])
-
--AC_CHECK_LIB([crypto], [EVP_EncryptInit], [have_crypto="yes"], [AC_MSG_ERROR([Your OpenSSL installation is misconfigured or missing])])
-+AC_CHECK_LIB([crypto], [EVP_EncryptInit], [have_crypto="yes"], [AC_MSG_ERROR([Your OpenSSL installation is misconfigured or missing])], [-lcrypto -lz])
-
- dnl OpenSSL 0.9.8 is the minimum required version due to X509_VERIFY_PARAM
--AC_CHECK_LIB([ssl], [X509_VERIFY_PARAM_new], [], [AC_MSG_ERROR([Your OpenSSL installation is missing the X509_VERIFY_PARAM function. Please upgrade to a more recent version of OpenSSL.])], [-lcrypto])
-+AC_CHECK_LIB([ssl], [X509_VERIFY_PARAM_new], [], [AC_MSG_ERROR([Your OpenSSL installation is missing the X509_VERIFY_PARAM function. Please upgrade to a more recent version of OpenSSL.])], [-lcrypto -lz])
-
- LDFLAGS="$save_LDFLAGS"
- CFLAGS="$save_CFLAGS"
-diff -uNr clamav-0.98.4.org/m4/reorganization/libs/xml.m4 clamav-0.98.4/m4/reorganization/libs/xml.m4
---- clamav-0.98.4.org/m4/reorganization/libs/xml.m4 2014-05-21 17:25:05.000000000 +0200
-+++ clamav-0.98.4/m4/reorganization/libs/xml.m4 2014-09-28 15:57:41.836339462 +0200
-@@ -67,7 +67,7 @@
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $XML_LIBS"
-
-- AC_CHECK_LIB([xml2], [xmlTextReaderRead], [working_xml="yes"], [working_xml="no"])
-+ AC_CHECK_LIB([xml2], [xmlTextReaderRead], [working_xml="yes"], [working_xml="no"], [$XML_LIBS])
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
+++ /dev/null
-mbox: do not use backtrace if using uClibc without backtrace support
-
-Since uClibc can be configured without support for backtrace, disable
-the backtrace if we are building with a uClibc that was built without
-backtrace.
-
-This is a bit hacky, and would greatly benefit from a test in ./configure
-instead, but does nicely as a quick fix for now.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-diff -durN clamav-0.98.4.orig/libclamav/mbox.c clamav-0.98.4/libclamav/mbox.c
---- clamav-0.98.4.orig/libclamav/mbox.c 2014-05-21 17:25:05.000000000 +0200
-+++ clamav-0.98.4/libclamav/mbox.c 2014-11-16 17:21:04.885383286 +0100
-@@ -83,7 +83,7 @@
- #include <features.h>
- #endif
-
--#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1
-+#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 && !defined(__UCLIBC__) || defined(__UCLIBC_HAS_BACKTRACE__)
- #define HAVE_BACKTRACE
- #endif
- #endif
+++ /dev/null
-stats: fix static link
-
-The stats.c file does not use the dlopen() familly of functions, but
-includes dlfcn.h, which is missing on uClibc when it is configured as
-a static-only C library.
-
-so, simply do not include dlfcn.h.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN clamav-0.98.5.orig/libclamav/stats.c clamav-0.98.5/libclamav/stats.c
---- clamav-0.98.5.orig/libclamav/stats.c 2014-11-13 23:30:43.000000000 +0100
-+++ clamav-0.98.5/libclamav/stats.c 2014-11-25 19:57:14.344291266 +0100
-@@ -41,7 +41,6 @@
- #include <sys/sysctl.h>
- #endif
- #endif
--#include <dlfcn.h>
- #else
- #include <Windows.h>
- #include <tchar.h>
--- /dev/null
+From 4fe2f454e454d9e6b1e83b2ea67581990461ed36 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 11 Jan 2014 22:05:25 +0100
+Subject: [PATCH 1/6] cmake: force libf2c to be built as a static library
+
+As stated in INSTALL/LAPACK_version.c, liblapack requires to be linked
+against the static library of libf2c.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ F2CLIBS/libf2c/CMakeLists.txt | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
+index 43d7b3f..f98d66a 100644
+--- a/F2CLIBS/libf2c/CMakeLists.txt
++++ b/F2CLIBS/libf2c/CMakeLists.txt
+@@ -58,5 +58,10 @@ if(WIN32)
+ endif()
+ include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c)
+ include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c)
+-add_library(f2c ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h)
++add_library(f2c STATIC ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h)
+ set_property(TARGET f2c PROPERTY PREFIX lib)
++# Set fPIC on the library when build shared libraries is enabled, because
++# libf2c.a will most likely be included by some shared libraries in such cases.
++if(UNIX AND BUILD_SHARED_LIBS)
++ set_target_properties(f2c PROPERTIES COMPILE_FLAGS "-fPIC")
++endif()
+--
+1.8.5.3
+
--- /dev/null
+From 834c221936d9c460b44e3a65b6fedfb3193f491b Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 11 Jan 2014 21:33:12 +0100
+Subject: [PATCH 2/6] cmake: make test build sensitive to BUILD_TESTING
+
+This patch prevent from wasting time building the tests if it's our
+wish.
+
+The test build takes a significant amount of time, and the binaries
+are not installed.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ BLAS/TESTING/CMakeLists.txt | 3 +++
+ CMakeLists.txt | 9 ++++++---
+ TESTING/CMakeLists.txt | 4 ++++
+ 3 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/BLAS/TESTING/CMakeLists.txt b/BLAS/TESTING/CMakeLists.txt
+index ec2c587..e7dc0b7 100644
+--- a/BLAS/TESTING/CMakeLists.txt
++++ b/BLAS/TESTING/CMakeLists.txt
+@@ -25,6 +25,9 @@
+ # make single FRC=FRC
+ #
+ #######################################################################
++if(NOT BUILD_TESTING)
++ return()
++endif()
+
+ macro(add_blas_test name src)
+ get_filename_component(baseNAME ${src} NAME_WE)
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 320ccc6..0a362c0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,5 @@
+ cmake_minimum_required(VERSION 2.6)
+ project(CLAPACK C)
+-enable_testing()
+ include(CTest)
+
+ if(WIN32 AND NOT CYGWIN)
+@@ -11,7 +10,9 @@ else()
+ set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/second.c)
+ set(DSECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/dsecnd.c)
+ endif()
+-enable_testing()
++if(NOT BUILD_TESTING)
++ enable_testing()
++endif()
+ option(USE_BLAS_WRAP "pre-pend f2c_ to each function in blas" OFF)
+ if(NOT USE_BLAS_WRAP)
+ # _zrotg_ seems to be missing in the wrap header
+@@ -21,7 +22,9 @@ include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE)
+ add_subdirectory(F2CLIBS)
+ add_subdirectory(BLAS)
+ add_subdirectory(SRC)
+-add_subdirectory(TESTING)
++if(NOT BUILD_TESTING)
++ add_subdirectory(TESTING)
++endif()
+ set(CLAPACK_VERSION 3.2.1)
+ set(CPACK_PACKAGE_VERSION_MAJOR 3)
+ set(CPACK_PACKAGE_VERSION_MINOR 2)
+diff --git a/TESTING/CMakeLists.txt b/TESTING/CMakeLists.txt
+index d59359d..f6b083a 100644
+--- a/TESTING/CMakeLists.txt
++++ b/TESTING/CMakeLists.txt
+@@ -1,3 +1,7 @@
++if(NOT BUILD_TESTING)
++ return()
++endif()
++
+ if(MSVC_VERSION)
+ # string(REPLACE "/STACK:10000000" "/STACK:900000000000000000"
+ # CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
+--
+1.8.5.3
+
--- /dev/null
+From a2f0669fac1f8e7183b15cf7d14f0e99a2d8b012 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 11 Jan 2014 21:47:39 +0100
+Subject: [PATCH 3/6] cmake: do not try to run arithchk when cross-compiling to
+ generate sources
+
+Instead, use a predefined arith.h if provided, or generate a default one.
+
+The arithchk binary is still built (but not installed) to allow the user to
+run it on its target and use it; so then allowing to build an optimized
+blas library.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ F2CLIBS/libf2c/CMakeLists.txt | 38 ++++++++++++++++++++++++++++----------
+ 1 file changed, 28 insertions(+), 10 deletions(-)
+
+diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
+index f98d66a..45a0804 100644
+--- a/F2CLIBS/libf2c/CMakeLists.txt
++++ b/F2CLIBS/libf2c/CMakeLists.txt
+@@ -38,17 +38,35 @@ set(TIME dtime_.c etime_.c)
+
+ # For INTEGER*8 support (which requires system-dependent adjustments to
+ # f2c.h), add ${QINT} to the OFILES assignment below...
+-add_executable(arithchk arithchk.c)
+-if(UNIX)
+- target_link_libraries(arithchk m)
++if(CMAKE_CROSSCOMPILING)
++ if(ARITH_H)
++ message(STATUS "Using the user-defined '${ARITH_H}' as arith.h header.")
++ configure_file("${ARITH_H}" "${CMAKE_CURRENT_BINARY_DIR}/arith.h" COPYONLY)
++ else()
++ message(STATUS "No user-defined arith.h header.")
++ if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/arith.h")
++ message(WARNING "Generating the default non-optimized 'arith.h' header.
++
++To generate and provide a custom arith.h header:
++run the cross-compiled arithchk binary on your target,
++and use its output to fill your custom arith.h header.")
++ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arith.h"
++ "/* default, not optimized arith.h */")
++ endif()
++ endif()
++else()
++ add_executable(arithchk arithchk.c)
++ if(UNIX)
++ target_link_libraries(arithchk m)
++ endif()
++ set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS
++ "NO_FPINIT;NO_LONG_LONG")
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h
++ COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h
++ DEPENDS arithchk
++ )
+ endif()
+-set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS
+- "NO_FPINIT;NO_LONG_LONG")
+-ADD_CUSTOM_COMMAND(
+- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h
+- COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h
+- DEPENDS arithchk
+- )
+
+
+ set(OFILES ${MISC} ${POW} ${CX} ${DCX} ${REAL} ${DBL} ${INT}
+--
+1.8.5.3
+
--- /dev/null
+From 675111e8ffc179276a7e4950fe4a4eda4d38a703 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 11 Jan 2014 21:48:32 +0100
+Subject: [PATCH 4/6] cmake: blas: add library and header install rules
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ BLAS/SRC/CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
+index d1caff8..a5de5a1 100644
+--- a/BLAS/SRC/CMakeLists.txt
++++ b/BLAS/SRC/CMakeLists.txt
+@@ -141,3 +141,5 @@ if(UNIX)
+ target_link_libraries(blas m)
+ endif()
+ target_link_libraries(blas f2c)
++install(TARGETS blas LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
++install(FILES "${CLAPACK_SOURCE_DIR}/INCLUDE/blaswrap.h" DESTINATION include)
+--
+1.8.5.3
+
--- /dev/null
+From 9dfac0d55a31be59a856bad9d3a5071d65176597 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 11 Jan 2014 21:49:22 +0100
+Subject: [PATCH 5/6] cmake: lapack: add library and header install rules
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ SRC/CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
+index ac4cce3..aa60555 100644
+--- a/SRC/CMakeLists.txt
++++ b/SRC/CMakeLists.txt
+@@ -377,4 +377,5 @@ if(BUILD_COMPLEX16)
+ endif()
+ add_library(lapack ${ALLOBJ} ${ALLXOBJ})
+ target_link_libraries(lapack blas)
+-
++install(TARGETS lapack LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
++install(FILES "${CLAPACK_SOURCE_DIR}/INCLUDE/clapack.h" DESTINATION include)
+--
+1.8.5.3
+
+++ /dev/null
-From 4fe2f454e454d9e6b1e83b2ea67581990461ed36 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 11 Jan 2014 22:05:25 +0100
-Subject: [PATCH 1/6] cmake: force libf2c to be built as a static library
-
-As stated in INSTALL/LAPACK_version.c, liblapack requires to be linked
-against the static library of libf2c.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- F2CLIBS/libf2c/CMakeLists.txt | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
-index 43d7b3f..f98d66a 100644
---- a/F2CLIBS/libf2c/CMakeLists.txt
-+++ b/F2CLIBS/libf2c/CMakeLists.txt
-@@ -58,5 +58,10 @@ if(WIN32)
- endif()
- include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c)
- include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c)
--add_library(f2c ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h)
-+add_library(f2c STATIC ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h)
- set_property(TARGET f2c PROPERTY PREFIX lib)
-+# Set fPIC on the library when build shared libraries is enabled, because
-+# libf2c.a will most likely be included by some shared libraries in such cases.
-+if(UNIX AND BUILD_SHARED_LIBS)
-+ set_target_properties(f2c PROPERTIES COMPILE_FLAGS "-fPIC")
-+endif()
---
-1.8.5.3
-
+++ /dev/null
-From 834c221936d9c460b44e3a65b6fedfb3193f491b Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 11 Jan 2014 21:33:12 +0100
-Subject: [PATCH 2/6] cmake: make test build sensitive to BUILD_TESTING
-
-This patch prevent from wasting time building the tests if it's our
-wish.
-
-The test build takes a significant amount of time, and the binaries
-are not installed.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- BLAS/TESTING/CMakeLists.txt | 3 +++
- CMakeLists.txt | 9 ++++++---
- TESTING/CMakeLists.txt | 4 ++++
- 3 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/BLAS/TESTING/CMakeLists.txt b/BLAS/TESTING/CMakeLists.txt
-index ec2c587..e7dc0b7 100644
---- a/BLAS/TESTING/CMakeLists.txt
-+++ b/BLAS/TESTING/CMakeLists.txt
-@@ -25,6 +25,9 @@
- # make single FRC=FRC
- #
- #######################################################################
-+if(NOT BUILD_TESTING)
-+ return()
-+endif()
-
- macro(add_blas_test name src)
- get_filename_component(baseNAME ${src} NAME_WE)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 320ccc6..0a362c0 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,5 @@
- cmake_minimum_required(VERSION 2.6)
- project(CLAPACK C)
--enable_testing()
- include(CTest)
-
- if(WIN32 AND NOT CYGWIN)
-@@ -11,7 +10,9 @@ else()
- set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/second.c)
- set(DSECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/dsecnd.c)
- endif()
--enable_testing()
-+if(NOT BUILD_TESTING)
-+ enable_testing()
-+endif()
- option(USE_BLAS_WRAP "pre-pend f2c_ to each function in blas" OFF)
- if(NOT USE_BLAS_WRAP)
- # _zrotg_ seems to be missing in the wrap header
-@@ -21,7 +22,9 @@ include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE)
- add_subdirectory(F2CLIBS)
- add_subdirectory(BLAS)
- add_subdirectory(SRC)
--add_subdirectory(TESTING)
-+if(NOT BUILD_TESTING)
-+ add_subdirectory(TESTING)
-+endif()
- set(CLAPACK_VERSION 3.2.1)
- set(CPACK_PACKAGE_VERSION_MAJOR 3)
- set(CPACK_PACKAGE_VERSION_MINOR 2)
-diff --git a/TESTING/CMakeLists.txt b/TESTING/CMakeLists.txt
-index d59359d..f6b083a 100644
---- a/TESTING/CMakeLists.txt
-+++ b/TESTING/CMakeLists.txt
-@@ -1,3 +1,7 @@
-+if(NOT BUILD_TESTING)
-+ return()
-+endif()
-+
- if(MSVC_VERSION)
- # string(REPLACE "/STACK:10000000" "/STACK:900000000000000000"
- # CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
---
-1.8.5.3
-
+++ /dev/null
-From a2f0669fac1f8e7183b15cf7d14f0e99a2d8b012 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 11 Jan 2014 21:47:39 +0100
-Subject: [PATCH 3/6] cmake: do not try to run arithchk when cross-compiling to
- generate sources
-
-Instead, use a predefined arith.h if provided, or generate a default one.
-
-The arithchk binary is still built (but not installed) to allow the user to
-run it on its target and use it; so then allowing to build an optimized
-blas library.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- F2CLIBS/libf2c/CMakeLists.txt | 38 ++++++++++++++++++++++++++++----------
- 1 file changed, 28 insertions(+), 10 deletions(-)
-
-diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
-index f98d66a..45a0804 100644
---- a/F2CLIBS/libf2c/CMakeLists.txt
-+++ b/F2CLIBS/libf2c/CMakeLists.txt
-@@ -38,17 +38,35 @@ set(TIME dtime_.c etime_.c)
-
- # For INTEGER*8 support (which requires system-dependent adjustments to
- # f2c.h), add ${QINT} to the OFILES assignment below...
--add_executable(arithchk arithchk.c)
--if(UNIX)
-- target_link_libraries(arithchk m)
-+if(CMAKE_CROSSCOMPILING)
-+ if(ARITH_H)
-+ message(STATUS "Using the user-defined '${ARITH_H}' as arith.h header.")
-+ configure_file("${ARITH_H}" "${CMAKE_CURRENT_BINARY_DIR}/arith.h" COPYONLY)
-+ else()
-+ message(STATUS "No user-defined arith.h header.")
-+ if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/arith.h")
-+ message(WARNING "Generating the default non-optimized 'arith.h' header.
-+
-+To generate and provide a custom arith.h header:
-+run the cross-compiled arithchk binary on your target,
-+and use its output to fill your custom arith.h header.")
-+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arith.h"
-+ "/* default, not optimized arith.h */")
-+ endif()
-+ endif()
-+else()
-+ add_executable(arithchk arithchk.c)
-+ if(UNIX)
-+ target_link_libraries(arithchk m)
-+ endif()
-+ set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS
-+ "NO_FPINIT;NO_LONG_LONG")
-+ ADD_CUSTOM_COMMAND(
-+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h
-+ COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h
-+ DEPENDS arithchk
-+ )
- endif()
--set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS
-- "NO_FPINIT;NO_LONG_LONG")
--ADD_CUSTOM_COMMAND(
-- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h
-- COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h
-- DEPENDS arithchk
-- )
-
-
- set(OFILES ${MISC} ${POW} ${CX} ${DCX} ${REAL} ${DBL} ${INT}
---
-1.8.5.3
-
+++ /dev/null
-From 675111e8ffc179276a7e4950fe4a4eda4d38a703 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 11 Jan 2014 21:48:32 +0100
-Subject: [PATCH 4/6] cmake: blas: add library and header install rules
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- BLAS/SRC/CMakeLists.txt | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
-index d1caff8..a5de5a1 100644
---- a/BLAS/SRC/CMakeLists.txt
-+++ b/BLAS/SRC/CMakeLists.txt
-@@ -141,3 +141,5 @@ if(UNIX)
- target_link_libraries(blas m)
- endif()
- target_link_libraries(blas f2c)
-+install(TARGETS blas LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
-+install(FILES "${CLAPACK_SOURCE_DIR}/INCLUDE/blaswrap.h" DESTINATION include)
---
-1.8.5.3
-
+++ /dev/null
-From 9dfac0d55a31be59a856bad9d3a5071d65176597 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 11 Jan 2014 21:49:22 +0100
-Subject: [PATCH 5/6] cmake: lapack: add library and header install rules
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- SRC/CMakeLists.txt | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
-index ac4cce3..aa60555 100644
---- a/SRC/CMakeLists.txt
-+++ b/SRC/CMakeLists.txt
-@@ -377,4 +377,5 @@ if(BUILD_COMPLEX16)
- endif()
- add_library(lapack ${ALLOBJ} ${ALLXOBJ})
- target_link_libraries(lapack blas)
--
-+install(TARGETS lapack LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
-+install(FILES "${CLAPACK_SOURCE_DIR}/INCLUDE/clapack.h" DESTINATION include)
---
-1.8.5.3
-
--- /dev/null
+The GMP include is hardcoded to /usr/include causing obvious problems.
+
+From classpath CVS:
+http://cvs.savannah.gnu.org/viewvc/classpath/configure.ac?root=classpath&r1=1.245&r2=1.246
+
+[Gustavo: ditch -L or libtool complains loudly]
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+--- a/configure.ac 2010/01/30 01:33:50 1.245
++++ b/configure.ac 2010/05/04 12:29:23 1.246
+@@ -752,10 +752,32 @@
+ dnl __gmpz_mul_si for earlier versions (>= 3.1).
+ dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to
+ dnl change the name of the corresponding ac_ variable on lines 860...
++ AC_ARG_WITH(gmp, [ --with-gmp=PATH specify prefix directory for the installed GMP package.
++ Equivalent to --with-gmp-include=PATH/include
++ plus --with-gmp-lib=PATH/lib])
++ AC_ARG_WITH(gmp_include, [ --with-gmp-include=PATH specify directory for installed GMP include files])
++ AC_ARG_WITH(gmp_lib, [ --with-gmp-lib=PATH specify directory for the installed GMP library])
++
+ if test "x${COMPILE_GMP}" = xyes; then
++ AC_MSG_CHECKING([for GMP directories])
++ if test "x$with_gmp" != x; then
++ gmplibs="-lgmp"
++ gmpinc="-I$with_gmp/include"
++ if test "x$with_gmp_include" != x; then
++ gmpinc="-I$with_gmp_include $gmpinc"
++ fi
++ if test "x$with_gmp_lib" != x; then
++ gmplibs="$gmplibs"
++ fi
++ else
++ with_gmp="/usr"
++ gmplibs="-lgmp"
++ gmpinc="-I/usr/include"
++ fi
++ AC_MSG_RESULT([prefix=$with_gmp, libs=$gmplibs, inc=$gmpinc])
+ AC_CHECK_LIB(gmp, __gmpz_mul_si,
+- [GMP_CFLAGS=-I/usr/include
+- GMP_LIBS=-lgmp ],
++ [GMP_CFLAGS="$gmpinc"
++ GMP_LIBS="$gmplibs" ],
+ [GMP_CFLAGS=
+ GMP_LIBS= ])
+ AC_SUBST(GMP_CFLAGS)
--- /dev/null
+Add config.rpath from upstream CVS to avoid (re)autoconfiguring errors.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura classpath-0.98.orig/config.rpath classpath-0.98/config.rpath
+--- classpath-0.98.orig/config.rpath 1969-12-31 21:00:00.000000000 -0300
++++ classpath-0.98/config.rpath 2013-07-10 09:36:51.894281025 -0300
+@@ -0,0 +1,672 @@
++#! /bin/sh
++# Output a system dependent set of variables, describing how to set the
++# run time search path of shared libraries in an executable.
++#
++# Copyright 1996-2010 Free Software Foundation, Inc.
++# Taken from GNU libtool, 2001
++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
++#
++# This file is free software; the Free Software Foundation gives
++# unlimited permission to copy and/or distribute it, with or without
++# modifications, as long as this notice is preserved.
++#
++# The first argument passed to this file is the canonical host specification,
++# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
++# or
++# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
++# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
++# should be set by the caller.
++#
++# The set of defined variables is at the end of this script.
++
++# Known limitations:
++# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
++# than 256 bytes, otherwise the compiler driver will dump core. The only
++# known workaround is to choose shorter directory names for the build
++# directory and/or the installation directory.
++
++# All known linkers require a `.a' archive for static linking (except MSVC,
++# which needs '.lib').
++libext=a
++shrext=.so
++
++host="$1"
++host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++
++# Code taken from libtool.m4's _LT_CC_BASENAME.
++
++for cc_temp in $CC""; do
++ case $cc_temp in
++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
++ \-*) ;;
++ *) break;;
++ esac
++done
++cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
++
++# Code taken from libtool.m4's _LT_COMPILER_PIC.
++
++wl=
++if test "$GCC" = yes; then
++ wl='-Wl,'
++else
++ case "$host_os" in
++ aix*)
++ wl='-Wl,'
++ ;;
++ darwin*)
++ case $cc_basename in
++ xlc*)
++ wl='-Wl,'
++ ;;
++ esac
++ ;;
++ mingw* | cygwin* | pw32* | os2* | cegcc*)
++ ;;
++ hpux9* | hpux10* | hpux11*)
++ wl='-Wl,'
++ ;;
++ irix5* | irix6* | nonstopux*)
++ wl='-Wl,'
++ ;;
++ newsos6)
++ ;;
++ linux* | k*bsd*-gnu)
++ case $cc_basename in
++ ecc*)
++ wl='-Wl,'
++ ;;
++ icc* | ifort*)
++ wl='-Wl,'
++ ;;
++ lf95*)
++ wl='-Wl,'
++ ;;
++ pgcc | pgf77 | pgf90)
++ wl='-Wl,'
++ ;;
++ ccc*)
++ wl='-Wl,'
++ ;;
++ como)
++ wl='-lopt='
++ ;;
++ *)
++ case `$CC -V 2>&1 | sed 5q` in
++ *Sun\ C*)
++ wl='-Wl,'
++ ;;
++ esac
++ ;;
++ esac
++ ;;
++ osf3* | osf4* | osf5*)
++ wl='-Wl,'
++ ;;
++ rdos*)
++ ;;
++ solaris*)
++ wl='-Wl,'
++ ;;
++ sunos4*)
++ wl='-Qoption ld '
++ ;;
++ sysv4 | sysv4.2uw2* | sysv4.3*)
++ wl='-Wl,'
++ ;;
++ sysv4*MP*)
++ ;;
++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
++ wl='-Wl,'
++ ;;
++ unicos*)
++ wl='-Wl,'
++ ;;
++ uts4*)
++ ;;
++ esac
++fi
++
++# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
++
++hardcode_libdir_flag_spec=
++hardcode_libdir_separator=
++hardcode_direct=no
++hardcode_minus_L=no
++
++case "$host_os" in
++ cygwin* | mingw* | pw32* | cegcc*)
++ # FIXME: the MSVC++ port hasn't been tested in a loooong time
++ # When not using gcc, we currently assume that we are using
++ # Microsoft Visual C++.
++ if test "$GCC" != yes; then
++ with_gnu_ld=no
++ fi
++ ;;
++ interix*)
++ # we just hope/assume this is gcc and not c89 (= MSVC++)
++ with_gnu_ld=yes
++ ;;
++ openbsd*)
++ with_gnu_ld=no
++ ;;
++esac
++
++ld_shlibs=yes
++if test "$with_gnu_ld" = yes; then
++ # Set some defaults for GNU ld with shared library support. These
++ # are reset later if shared libraries are not supported. Putting them
++ # here allows them to be overridden if necessary.
++ # Unlike libtool, we use -rpath here, not --rpath, since the documented
++ # option of GNU ld is called -rpath, not --rpath.
++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++ case "$host_os" in
++ aix[3-9]*)
++ # On AIX/PPC, the GNU linker is very broken
++ if test "$host_cpu" != ia64; then
++ ld_shlibs=no
++ fi
++ ;;
++ amigaos*)
++ hardcode_libdir_flag_spec='-L$libdir'
++ hardcode_minus_L=yes
++ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
++ # that the semantics of dynamic libraries on AmigaOS, at least up
++ # to version 4, is to share data among multiple programs linked
++ # with the same dynamic library. Since this doesn't match the
++ # behavior of shared libraries on other platforms, we cannot use
++ # them.
++ ld_shlibs=no
++ ;;
++ beos*)
++ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
++ :
++ else
++ ld_shlibs=no
++ fi
++ ;;
++ cygwin* | mingw* | pw32* | cegcc*)
++ # hardcode_libdir_flag_spec is actually meaningless, as there is
++ # no search path for DLLs.
++ hardcode_libdir_flag_spec='-L$libdir'
++ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
++ :
++ else
++ ld_shlibs=no
++ fi
++ ;;
++ interix[3-9]*)
++ hardcode_direct=no
++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
++ ;;
++ gnu* | linux* | k*bsd*-gnu)
++ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
++ :
++ else
++ ld_shlibs=no
++ fi
++ ;;
++ netbsd*)
++ ;;
++ solaris*)
++ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
++ ld_shlibs=no
++ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
++ :
++ else
++ ld_shlibs=no
++ fi
++ ;;
++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
++ case `$LD -v 2>&1` in
++ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
++ ld_shlibs=no
++ ;;
++ *)
++ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
++ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
++ else
++ ld_shlibs=no
++ fi
++ ;;
++ esac
++ ;;
++ sunos4*)
++ hardcode_direct=yes
++ ;;
++ *)
++ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
++ :
++ else
++ ld_shlibs=no
++ fi
++ ;;
++ esac
++ if test "$ld_shlibs" = no; then
++ hardcode_libdir_flag_spec=
++ fi
++else
++ case "$host_os" in
++ aix3*)
++ # Note: this linker hardcodes the directories in LIBPATH if there
++ # are no directories specified by -L.
++ hardcode_minus_L=yes
++ if test "$GCC" = yes; then
++ # Neither direct hardcoding nor static linking is supported with a
++ # broken collect2.
++ hardcode_direct=unsupported
++ fi
++ ;;
++ aix[4-9]*)
++ if test "$host_cpu" = ia64; then
++ # On IA64, the linker does run time linking by default, so we don't
++ # have to do anything special.
++ aix_use_runtimelinking=no
++ else
++ aix_use_runtimelinking=no
++ # Test if we are trying to use run time linking or normal
++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
++ # need to do runtime linking.
++ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
++ for ld_flag in $LDFLAGS; do
++ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
++ aix_use_runtimelinking=yes
++ break
++ fi
++ done
++ ;;
++ esac
++ fi
++ hardcode_direct=yes
++ hardcode_libdir_separator=':'
++ if test "$GCC" = yes; then
++ case $host_os in aix4.[012]|aix4.[012].*)
++ collect2name=`${CC} -print-prog-name=collect2`
++ if test -f "$collect2name" && \
++ strings "$collect2name" | grep resolve_lib_name >/dev/null
++ then
++ # We have reworked collect2
++ :
++ else
++ # We have old collect2
++ hardcode_direct=unsupported
++ hardcode_minus_L=yes
++ hardcode_libdir_flag_spec='-L$libdir'
++ hardcode_libdir_separator=
++ fi
++ ;;
++ esac
++ fi
++ # Begin _LT_AC_SYS_LIBPATH_AIX.
++ echo 'int main () { return 0; }' > conftest.c
++ ${CC} ${LDFLAGS} conftest.c -o conftest
++ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
++}'`
++ if test -z "$aix_libpath"; then
++ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
++}'`
++ fi
++ if test -z "$aix_libpath"; then
++ aix_libpath="/usr/lib:/lib"
++ fi
++ rm -f conftest.c conftest
++ # End _LT_AC_SYS_LIBPATH_AIX.
++ if test "$aix_use_runtimelinking" = yes; then
++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
++ else
++ if test "$host_cpu" = ia64; then
++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
++ else
++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
++ fi
++ fi
++ ;;
++ amigaos*)
++ hardcode_libdir_flag_spec='-L$libdir'
++ hardcode_minus_L=yes
++ # see comment about different semantics on the GNU ld section
++ ld_shlibs=no
++ ;;
++ bsdi[45]*)
++ ;;
++ cygwin* | mingw* | pw32* | cegcc*)
++ # When not using gcc, we currently assume that we are using
++ # Microsoft Visual C++.
++ # hardcode_libdir_flag_spec is actually meaningless, as there is
++ # no search path for DLLs.
++ hardcode_libdir_flag_spec=' '
++ libext=lib
++ ;;
++ darwin* | rhapsody*)
++ hardcode_direct=no
++ if test "$GCC" = yes ; then
++ :
++ else
++ case $cc_basename in
++ xlc*)
++ ;;
++ *)
++ ld_shlibs=no
++ ;;
++ esac
++ fi
++ ;;
++ dgux*)
++ hardcode_libdir_flag_spec='-L$libdir'
++ ;;
++ freebsd1*)
++ ld_shlibs=no
++ ;;
++ freebsd2.2*)
++ hardcode_libdir_flag_spec='-R$libdir'
++ hardcode_direct=yes
++ ;;
++ freebsd2*)
++ hardcode_direct=yes
++ hardcode_minus_L=yes
++ ;;
++ freebsd* | dragonfly*)
++ hardcode_libdir_flag_spec='-R$libdir'
++ hardcode_direct=yes
++ ;;
++ hpux9*)
++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
++ hardcode_libdir_separator=:
++ hardcode_direct=yes
++ # hardcode_minus_L: Not really in the search PATH,
++ # but as the default location of the library.
++ hardcode_minus_L=yes
++ ;;
++ hpux10*)
++ if test "$with_gnu_ld" = no; then
++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
++ hardcode_libdir_separator=:
++ hardcode_direct=yes
++ # hardcode_minus_L: Not really in the search PATH,
++ # but as the default location of the library.
++ hardcode_minus_L=yes
++ fi
++ ;;
++ hpux11*)
++ if test "$with_gnu_ld" = no; then
++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
++ hardcode_libdir_separator=:
++ case $host_cpu in
++ hppa*64*|ia64*)
++ hardcode_direct=no
++ ;;
++ *)
++ hardcode_direct=yes
++ # hardcode_minus_L: Not really in the search PATH,
++ # but as the default location of the library.
++ hardcode_minus_L=yes
++ ;;
++ esac
++ fi
++ ;;
++ irix5* | irix6* | nonstopux*)
++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++ hardcode_libdir_separator=:
++ ;;
++ netbsd*)
++ hardcode_libdir_flag_spec='-R$libdir'
++ hardcode_direct=yes
++ ;;
++ newsos6)
++ hardcode_direct=yes
++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++ hardcode_libdir_separator=:
++ ;;
++ openbsd*)
++ if test -f /usr/libexec/ld.so; then
++ hardcode_direct=yes
++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
++ else
++ case "$host_os" in
++ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
++ hardcode_libdir_flag_spec='-R$libdir'
++ ;;
++ *)
++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
++ ;;
++ esac
++ fi
++ else
++ ld_shlibs=no
++ fi
++ ;;
++ os2*)
++ hardcode_libdir_flag_spec='-L$libdir'
++ hardcode_minus_L=yes
++ ;;
++ osf3*)
++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++ hardcode_libdir_separator=:
++ ;;
++ osf4* | osf5*)
++ if test "$GCC" = yes; then
++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++ else
++ # Both cc and cxx compiler support -rpath directly
++ hardcode_libdir_flag_spec='-rpath $libdir'
++ fi
++ hardcode_libdir_separator=:
++ ;;
++ solaris*)
++ hardcode_libdir_flag_spec='-R$libdir'
++ ;;
++ sunos4*)
++ hardcode_libdir_flag_spec='-L$libdir'
++ hardcode_direct=yes
++ hardcode_minus_L=yes
++ ;;
++ sysv4)
++ case $host_vendor in
++ sni)
++ hardcode_direct=yes # is this really true???
++ ;;
++ siemens)
++ hardcode_direct=no
++ ;;
++ motorola)
++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
++ ;;
++ esac
++ ;;
++ sysv4.3*)
++ ;;
++ sysv4*MP*)
++ if test -d /usr/nec; then
++ ld_shlibs=yes
++ fi
++ ;;
++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
++ ;;
++ sysv5* | sco3.2v5* | sco5v6*)
++ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
++ hardcode_libdir_separator=':'
++ ;;
++ uts4*)
++ hardcode_libdir_flag_spec='-L$libdir'
++ ;;
++ *)
++ ld_shlibs=no
++ ;;
++ esac
++fi
++
++# Check dynamic linker characteristics
++# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
++# Unlike libtool.m4, here we don't care about _all_ names of the library, but
++# only about the one the linker finds when passed -lNAME. This is the last
++# element of library_names_spec in libtool.m4, or possibly two of them if the
++# linker has special search rules.
++library_names_spec= # the last element of library_names_spec in libtool.m4
++libname_spec='lib$name'
++case "$host_os" in
++ aix3*)
++ library_names_spec='$libname.a'
++ ;;
++ aix[4-9]*)
++ library_names_spec='$libname$shrext'
++ ;;
++ amigaos*)
++ library_names_spec='$libname.a'
++ ;;
++ beos*)
++ library_names_spec='$libname$shrext'
++ ;;
++ bsdi[45]*)
++ library_names_spec='$libname$shrext'
++ ;;
++ cygwin* | mingw* | pw32* | cegcc*)
++ shrext=.dll
++ library_names_spec='$libname.dll.a $libname.lib'
++ ;;
++ darwin* | rhapsody*)
++ shrext=.dylib
++ library_names_spec='$libname$shrext'
++ ;;
++ dgux*)
++ library_names_spec='$libname$shrext'
++ ;;
++ freebsd1*)
++ ;;
++ freebsd* | dragonfly*)
++ case "$host_os" in
++ freebsd[123]*)
++ library_names_spec='$libname$shrext$versuffix' ;;
++ *)
++ library_names_spec='$libname$shrext' ;;
++ esac
++ ;;
++ gnu*)
++ library_names_spec='$libname$shrext'
++ ;;
++ hpux9* | hpux10* | hpux11*)
++ case $host_cpu in
++ ia64*)
++ shrext=.so
++ ;;
++ hppa*64*)
++ shrext=.sl
++ ;;
++ *)
++ shrext=.sl
++ ;;
++ esac
++ library_names_spec='$libname$shrext'
++ ;;
++ interix[3-9]*)
++ library_names_spec='$libname$shrext'
++ ;;
++ irix5* | irix6* | nonstopux*)
++ library_names_spec='$libname$shrext'
++ case "$host_os" in
++ irix5* | nonstopux*)
++ libsuff= shlibsuff=
++ ;;
++ *)
++ case $LD in
++ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
++ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
++ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
++ *) libsuff= shlibsuff= ;;
++ esac
++ ;;
++ esac
++ ;;
++ linux*oldld* | linux*aout* | linux*coff*)
++ ;;
++ linux* | k*bsd*-gnu)
++ library_names_spec='$libname$shrext'
++ ;;
++ knetbsd*-gnu)
++ library_names_spec='$libname$shrext'
++ ;;
++ netbsd*)
++ library_names_spec='$libname$shrext'
++ ;;
++ newsos6)
++ library_names_spec='$libname$shrext'
++ ;;
++ nto-qnx*)
++ library_names_spec='$libname$shrext'
++ ;;
++ openbsd*)
++ library_names_spec='$libname$shrext$versuffix'
++ ;;
++ os2*)
++ libname_spec='$name'
++ shrext=.dll
++ library_names_spec='$libname.a'
++ ;;
++ osf3* | osf4* | osf5*)
++ library_names_spec='$libname$shrext'
++ ;;
++ rdos*)
++ ;;
++ solaris*)
++ library_names_spec='$libname$shrext'
++ ;;
++ sunos4*)
++ library_names_spec='$libname$shrext$versuffix'
++ ;;
++ sysv4 | sysv4.3*)
++ library_names_spec='$libname$shrext'
++ ;;
++ sysv4*MP*)
++ library_names_spec='$libname$shrext'
++ ;;
++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
++ library_names_spec='$libname$shrext'
++ ;;
++ uts4*)
++ library_names_spec='$libname$shrext'
++ ;;
++esac
++
++sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
++escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
++shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
++escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
++escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
++escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
++
++LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
++
++# How to pass a linker flag through the compiler.
++wl="$escaped_wl"
++
++# Static library suffix (normally "a").
++libext="$libext"
++
++# Shared library suffix (normally "so").
++shlibext="$shlibext"
++
++# Format of library name prefix.
++libname_spec="$escaped_libname_spec"
++
++# Library names that the linker finds when passed -lNAME.
++library_names_spec="$escaped_library_names_spec"
++
++# Flag to hardcode \$libdir into a binary during linking.
++# This must work even if \$libdir does not exist.
++hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
++
++# Whether we need a single -rpath flag with a separated argument.
++hardcode_libdir_separator="$hardcode_libdir_separator"
++
++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
++# resulting binary.
++hardcode_direct="$hardcode_direct"
++
++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
++# resulting binary.
++hardcode_minus_L="$hardcode_minus_L"
++
++EOF
+++ /dev/null
-The GMP include is hardcoded to /usr/include causing obvious problems.
-
-From classpath CVS:
-http://cvs.savannah.gnu.org/viewvc/classpath/configure.ac?root=classpath&r1=1.245&r2=1.246
-
-[Gustavo: ditch -L or libtool complains loudly]
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
---- a/configure.ac 2010/01/30 01:33:50 1.245
-+++ b/configure.ac 2010/05/04 12:29:23 1.246
-@@ -752,10 +752,32 @@
- dnl __gmpz_mul_si for earlier versions (>= 3.1).
- dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to
- dnl change the name of the corresponding ac_ variable on lines 860...
-+ AC_ARG_WITH(gmp, [ --with-gmp=PATH specify prefix directory for the installed GMP package.
-+ Equivalent to --with-gmp-include=PATH/include
-+ plus --with-gmp-lib=PATH/lib])
-+ AC_ARG_WITH(gmp_include, [ --with-gmp-include=PATH specify directory for installed GMP include files])
-+ AC_ARG_WITH(gmp_lib, [ --with-gmp-lib=PATH specify directory for the installed GMP library])
-+
- if test "x${COMPILE_GMP}" = xyes; then
-+ AC_MSG_CHECKING([for GMP directories])
-+ if test "x$with_gmp" != x; then
-+ gmplibs="-lgmp"
-+ gmpinc="-I$with_gmp/include"
-+ if test "x$with_gmp_include" != x; then
-+ gmpinc="-I$with_gmp_include $gmpinc"
-+ fi
-+ if test "x$with_gmp_lib" != x; then
-+ gmplibs="$gmplibs"
-+ fi
-+ else
-+ with_gmp="/usr"
-+ gmplibs="-lgmp"
-+ gmpinc="-I/usr/include"
-+ fi
-+ AC_MSG_RESULT([prefix=$with_gmp, libs=$gmplibs, inc=$gmpinc])
- AC_CHECK_LIB(gmp, __gmpz_mul_si,
-- [GMP_CFLAGS=-I/usr/include
-- GMP_LIBS=-lgmp ],
-+ [GMP_CFLAGS="$gmpinc"
-+ GMP_LIBS="$gmplibs" ],
- [GMP_CFLAGS=
- GMP_LIBS= ])
- AC_SUBST(GMP_CFLAGS)
+++ /dev/null
-Add config.rpath from upstream CVS to avoid (re)autoconfiguring errors.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura classpath-0.98.orig/config.rpath classpath-0.98/config.rpath
---- classpath-0.98.orig/config.rpath 1969-12-31 21:00:00.000000000 -0300
-+++ classpath-0.98/config.rpath 2013-07-10 09:36:51.894281025 -0300
-@@ -0,0 +1,672 @@
-+#! /bin/sh
-+# Output a system dependent set of variables, describing how to set the
-+# run time search path of shared libraries in an executable.
-+#
-+# Copyright 1996-2010 Free Software Foundation, Inc.
-+# Taken from GNU libtool, 2001
-+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-+#
-+# This file is free software; the Free Software Foundation gives
-+# unlimited permission to copy and/or distribute it, with or without
-+# modifications, as long as this notice is preserved.
-+#
-+# The first argument passed to this file is the canonical host specification,
-+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-+# or
-+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
-+# should be set by the caller.
-+#
-+# The set of defined variables is at the end of this script.
-+
-+# Known limitations:
-+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
-+# than 256 bytes, otherwise the compiler driver will dump core. The only
-+# known workaround is to choose shorter directory names for the build
-+# directory and/or the installation directory.
-+
-+# All known linkers require a `.a' archive for static linking (except MSVC,
-+# which needs '.lib').
-+libext=a
-+shrext=.so
-+
-+host="$1"
-+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+
-+# Code taken from libtool.m4's _LT_CC_BASENAME.
-+
-+for cc_temp in $CC""; do
-+ case $cc_temp in
-+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-+ \-*) ;;
-+ *) break;;
-+ esac
-+done
-+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
-+
-+# Code taken from libtool.m4's _LT_COMPILER_PIC.
-+
-+wl=
-+if test "$GCC" = yes; then
-+ wl='-Wl,'
-+else
-+ case "$host_os" in
-+ aix*)
-+ wl='-Wl,'
-+ ;;
-+ darwin*)
-+ case $cc_basename in
-+ xlc*)
-+ wl='-Wl,'
-+ ;;
-+ esac
-+ ;;
-+ mingw* | cygwin* | pw32* | os2* | cegcc*)
-+ ;;
-+ hpux9* | hpux10* | hpux11*)
-+ wl='-Wl,'
-+ ;;
-+ irix5* | irix6* | nonstopux*)
-+ wl='-Wl,'
-+ ;;
-+ newsos6)
-+ ;;
-+ linux* | k*bsd*-gnu)
-+ case $cc_basename in
-+ ecc*)
-+ wl='-Wl,'
-+ ;;
-+ icc* | ifort*)
-+ wl='-Wl,'
-+ ;;
-+ lf95*)
-+ wl='-Wl,'
-+ ;;
-+ pgcc | pgf77 | pgf90)
-+ wl='-Wl,'
-+ ;;
-+ ccc*)
-+ wl='-Wl,'
-+ ;;
-+ como)
-+ wl='-lopt='
-+ ;;
-+ *)
-+ case `$CC -V 2>&1 | sed 5q` in
-+ *Sun\ C*)
-+ wl='-Wl,'
-+ ;;
-+ esac
-+ ;;
-+ esac
-+ ;;
-+ osf3* | osf4* | osf5*)
-+ wl='-Wl,'
-+ ;;
-+ rdos*)
-+ ;;
-+ solaris*)
-+ wl='-Wl,'
-+ ;;
-+ sunos4*)
-+ wl='-Qoption ld '
-+ ;;
-+ sysv4 | sysv4.2uw2* | sysv4.3*)
-+ wl='-Wl,'
-+ ;;
-+ sysv4*MP*)
-+ ;;
-+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-+ wl='-Wl,'
-+ ;;
-+ unicos*)
-+ wl='-Wl,'
-+ ;;
-+ uts4*)
-+ ;;
-+ esac
-+fi
-+
-+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
-+
-+hardcode_libdir_flag_spec=
-+hardcode_libdir_separator=
-+hardcode_direct=no
-+hardcode_minus_L=no
-+
-+case "$host_os" in
-+ cygwin* | mingw* | pw32* | cegcc*)
-+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
-+ # When not using gcc, we currently assume that we are using
-+ # Microsoft Visual C++.
-+ if test "$GCC" != yes; then
-+ with_gnu_ld=no
-+ fi
-+ ;;
-+ interix*)
-+ # we just hope/assume this is gcc and not c89 (= MSVC++)
-+ with_gnu_ld=yes
-+ ;;
-+ openbsd*)
-+ with_gnu_ld=no
-+ ;;
-+esac
-+
-+ld_shlibs=yes
-+if test "$with_gnu_ld" = yes; then
-+ # Set some defaults for GNU ld with shared library support. These
-+ # are reset later if shared libraries are not supported. Putting them
-+ # here allows them to be overridden if necessary.
-+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
-+ # option of GNU ld is called -rpath, not --rpath.
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ case "$host_os" in
-+ aix[3-9]*)
-+ # On AIX/PPC, the GNU linker is very broken
-+ if test "$host_cpu" != ia64; then
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ amigaos*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_minus_L=yes
-+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-+ # that the semantics of dynamic libraries on AmigaOS, at least up
-+ # to version 4, is to share data among multiple programs linked
-+ # with the same dynamic library. Since this doesn't match the
-+ # behavior of shared libraries on other platforms, we cannot use
-+ # them.
-+ ld_shlibs=no
-+ ;;
-+ beos*)
-+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ cygwin* | mingw* | pw32* | cegcc*)
-+ # hardcode_libdir_flag_spec is actually meaningless, as there is
-+ # no search path for DLLs.
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ interix[3-9]*)
-+ hardcode_direct=no
-+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-+ ;;
-+ gnu* | linux* | k*bsd*-gnu)
-+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ netbsd*)
-+ ;;
-+ solaris*)
-+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-+ ld_shlibs=no
-+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-+ case `$LD -v 2>&1` in
-+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-+ ld_shlibs=no
-+ ;;
-+ *)
-+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ esac
-+ ;;
-+ sunos4*)
-+ hardcode_direct=yes
-+ ;;
-+ *)
-+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-+ :
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ esac
-+ if test "$ld_shlibs" = no; then
-+ hardcode_libdir_flag_spec=
-+ fi
-+else
-+ case "$host_os" in
-+ aix3*)
-+ # Note: this linker hardcodes the directories in LIBPATH if there
-+ # are no directories specified by -L.
-+ hardcode_minus_L=yes
-+ if test "$GCC" = yes; then
-+ # Neither direct hardcoding nor static linking is supported with a
-+ # broken collect2.
-+ hardcode_direct=unsupported
-+ fi
-+ ;;
-+ aix[4-9]*)
-+ if test "$host_cpu" = ia64; then
-+ # On IA64, the linker does run time linking by default, so we don't
-+ # have to do anything special.
-+ aix_use_runtimelinking=no
-+ else
-+ aix_use_runtimelinking=no
-+ # Test if we are trying to use run time linking or normal
-+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-+ # need to do runtime linking.
-+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-+ for ld_flag in $LDFLAGS; do
-+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-+ aix_use_runtimelinking=yes
-+ break
-+ fi
-+ done
-+ ;;
-+ esac
-+ fi
-+ hardcode_direct=yes
-+ hardcode_libdir_separator=':'
-+ if test "$GCC" = yes; then
-+ case $host_os in aix4.[012]|aix4.[012].*)
-+ collect2name=`${CC} -print-prog-name=collect2`
-+ if test -f "$collect2name" && \
-+ strings "$collect2name" | grep resolve_lib_name >/dev/null
-+ then
-+ # We have reworked collect2
-+ :
-+ else
-+ # We have old collect2
-+ hardcode_direct=unsupported
-+ hardcode_minus_L=yes
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_libdir_separator=
-+ fi
-+ ;;
-+ esac
-+ fi
-+ # Begin _LT_AC_SYS_LIBPATH_AIX.
-+ echo 'int main () { return 0; }' > conftest.c
-+ ${CC} ${LDFLAGS} conftest.c -o conftest
-+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-+}'`
-+ if test -z "$aix_libpath"; then
-+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-+}'`
-+ fi
-+ if test -z "$aix_libpath"; then
-+ aix_libpath="/usr/lib:/lib"
-+ fi
-+ rm -f conftest.c conftest
-+ # End _LT_AC_SYS_LIBPATH_AIX.
-+ if test "$aix_use_runtimelinking" = yes; then
-+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-+ else
-+ if test "$host_cpu" = ia64; then
-+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-+ else
-+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-+ fi
-+ fi
-+ ;;
-+ amigaos*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_minus_L=yes
-+ # see comment about different semantics on the GNU ld section
-+ ld_shlibs=no
-+ ;;
-+ bsdi[45]*)
-+ ;;
-+ cygwin* | mingw* | pw32* | cegcc*)
-+ # When not using gcc, we currently assume that we are using
-+ # Microsoft Visual C++.
-+ # hardcode_libdir_flag_spec is actually meaningless, as there is
-+ # no search path for DLLs.
-+ hardcode_libdir_flag_spec=' '
-+ libext=lib
-+ ;;
-+ darwin* | rhapsody*)
-+ hardcode_direct=no
-+ if test "$GCC" = yes ; then
-+ :
-+ else
-+ case $cc_basename in
-+ xlc*)
-+ ;;
-+ *)
-+ ld_shlibs=no
-+ ;;
-+ esac
-+ fi
-+ ;;
-+ dgux*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ ;;
-+ freebsd1*)
-+ ld_shlibs=no
-+ ;;
-+ freebsd2.2*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ hardcode_direct=yes
-+ ;;
-+ freebsd2*)
-+ hardcode_direct=yes
-+ hardcode_minus_L=yes
-+ ;;
-+ freebsd* | dragonfly*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ hardcode_direct=yes
-+ ;;
-+ hpux9*)
-+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ hardcode_direct=yes
-+ # hardcode_minus_L: Not really in the search PATH,
-+ # but as the default location of the library.
-+ hardcode_minus_L=yes
-+ ;;
-+ hpux10*)
-+ if test "$with_gnu_ld" = no; then
-+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ hardcode_direct=yes
-+ # hardcode_minus_L: Not really in the search PATH,
-+ # but as the default location of the library.
-+ hardcode_minus_L=yes
-+ fi
-+ ;;
-+ hpux11*)
-+ if test "$with_gnu_ld" = no; then
-+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ case $host_cpu in
-+ hppa*64*|ia64*)
-+ hardcode_direct=no
-+ ;;
-+ *)
-+ hardcode_direct=yes
-+ # hardcode_minus_L: Not really in the search PATH,
-+ # but as the default location of the library.
-+ hardcode_minus_L=yes
-+ ;;
-+ esac
-+ fi
-+ ;;
-+ irix5* | irix6* | nonstopux*)
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ ;;
-+ netbsd*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ hardcode_direct=yes
-+ ;;
-+ newsos6)
-+ hardcode_direct=yes
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ ;;
-+ openbsd*)
-+ if test -f /usr/libexec/ld.so; then
-+ hardcode_direct=yes
-+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-+ else
-+ case "$host_os" in
-+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ ;;
-+ *)
-+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-+ ;;
-+ esac
-+ fi
-+ else
-+ ld_shlibs=no
-+ fi
-+ ;;
-+ os2*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_minus_L=yes
-+ ;;
-+ osf3*)
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ hardcode_libdir_separator=:
-+ ;;
-+ osf4* | osf5*)
-+ if test "$GCC" = yes; then
-+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ else
-+ # Both cc and cxx compiler support -rpath directly
-+ hardcode_libdir_flag_spec='-rpath $libdir'
-+ fi
-+ hardcode_libdir_separator=:
-+ ;;
-+ solaris*)
-+ hardcode_libdir_flag_spec='-R$libdir'
-+ ;;
-+ sunos4*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ hardcode_direct=yes
-+ hardcode_minus_L=yes
-+ ;;
-+ sysv4)
-+ case $host_vendor in
-+ sni)
-+ hardcode_direct=yes # is this really true???
-+ ;;
-+ siemens)
-+ hardcode_direct=no
-+ ;;
-+ motorola)
-+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-+ ;;
-+ esac
-+ ;;
-+ sysv4.3*)
-+ ;;
-+ sysv4*MP*)
-+ if test -d /usr/nec; then
-+ ld_shlibs=yes
-+ fi
-+ ;;
-+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-+ ;;
-+ sysv5* | sco3.2v5* | sco5v6*)
-+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
-+ hardcode_libdir_separator=':'
-+ ;;
-+ uts4*)
-+ hardcode_libdir_flag_spec='-L$libdir'
-+ ;;
-+ *)
-+ ld_shlibs=no
-+ ;;
-+ esac
-+fi
-+
-+# Check dynamic linker characteristics
-+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
-+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
-+# only about the one the linker finds when passed -lNAME. This is the last
-+# element of library_names_spec in libtool.m4, or possibly two of them if the
-+# linker has special search rules.
-+library_names_spec= # the last element of library_names_spec in libtool.m4
-+libname_spec='lib$name'
-+case "$host_os" in
-+ aix3*)
-+ library_names_spec='$libname.a'
-+ ;;
-+ aix[4-9]*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ amigaos*)
-+ library_names_spec='$libname.a'
-+ ;;
-+ beos*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ bsdi[45]*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ cygwin* | mingw* | pw32* | cegcc*)
-+ shrext=.dll
-+ library_names_spec='$libname.dll.a $libname.lib'
-+ ;;
-+ darwin* | rhapsody*)
-+ shrext=.dylib
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ dgux*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ freebsd1*)
-+ ;;
-+ freebsd* | dragonfly*)
-+ case "$host_os" in
-+ freebsd[123]*)
-+ library_names_spec='$libname$shrext$versuffix' ;;
-+ *)
-+ library_names_spec='$libname$shrext' ;;
-+ esac
-+ ;;
-+ gnu*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ hpux9* | hpux10* | hpux11*)
-+ case $host_cpu in
-+ ia64*)
-+ shrext=.so
-+ ;;
-+ hppa*64*)
-+ shrext=.sl
-+ ;;
-+ *)
-+ shrext=.sl
-+ ;;
-+ esac
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ interix[3-9]*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ irix5* | irix6* | nonstopux*)
-+ library_names_spec='$libname$shrext'
-+ case "$host_os" in
-+ irix5* | nonstopux*)
-+ libsuff= shlibsuff=
-+ ;;
-+ *)
-+ case $LD in
-+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
-+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
-+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
-+ *) libsuff= shlibsuff= ;;
-+ esac
-+ ;;
-+ esac
-+ ;;
-+ linux*oldld* | linux*aout* | linux*coff*)
-+ ;;
-+ linux* | k*bsd*-gnu)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ knetbsd*-gnu)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ netbsd*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ newsos6)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ nto-qnx*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ openbsd*)
-+ library_names_spec='$libname$shrext$versuffix'
-+ ;;
-+ os2*)
-+ libname_spec='$name'
-+ shrext=.dll
-+ library_names_spec='$libname.a'
-+ ;;
-+ osf3* | osf4* | osf5*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ rdos*)
-+ ;;
-+ solaris*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ sunos4*)
-+ library_names_spec='$libname$shrext$versuffix'
-+ ;;
-+ sysv4 | sysv4.3*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ sysv4*MP*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+ uts4*)
-+ library_names_spec='$libname$shrext'
-+ ;;
-+esac
-+
-+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
-+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
-+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-+
-+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
-+
-+# How to pass a linker flag through the compiler.
-+wl="$escaped_wl"
-+
-+# Static library suffix (normally "a").
-+libext="$libext"
-+
-+# Shared library suffix (normally "so").
-+shlibext="$shlibext"
-+
-+# Format of library name prefix.
-+libname_spec="$escaped_libname_spec"
-+
-+# Library names that the linker finds when passed -lNAME.
-+library_names_spec="$escaped_library_names_spec"
-+
-+# Flag to hardcode \$libdir into a binary during linking.
-+# This must work even if \$libdir does not exist.
-+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
-+
-+# Whether we need a single -rpath flag with a separated argument.
-+hardcode_libdir_separator="$hardcode_libdir_separator"
-+
-+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-+# resulting binary.
-+hardcode_direct="$hardcode_direct"
-+
-+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-+# resulting binary.
-+hardcode_minus_L="$hardcode_minus_L"
-+
-+EOF
--- /dev/null
+Add CMake related files missing from the release tarball
+
+Due to a bug in the cloog release, a few files were missing from the
+release tarball. This patch re-adds those files, which are needed for
+the build to work. This patch can be dropped when cloog is bumped.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/cmake/isl-config.cmake
+===================================================================
+--- /dev/null
++++ b/cmake/isl-config.cmake
+@@ -0,0 +1,25 @@
++# Try to find the isl library
++
++# ISL_FOUND - System has isl lib
++# ISL_INCLUDE_DIR - The isl include directory
++# ISL_LIBRARY - Library needed to use isl
++
++
++if (ISL_INCLUDE_DIR AND ISL_LIBRARY)
++ # Already in cache, be silent
++ set(ISL_FIND_QUIETLY TRUE)
++endif()
++
++find_path(ISL_INCLUDE_DIR NAMES isl/version.h)
++find_library(ISL_LIBRARY NAMES isl)
++
++if (ISL_LIBRARY AND ISL_INCLUDE_DIR)
++ message(STATUS "Library isl found =) ${ISL_LIBRARY}")
++else()
++ message(STATUS "Library isl not found =(")
++endif()
++
++include(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(ISL DEFAULT_MSG ISL_INCLUDE_DIR ISL_LIBRARY)
++
++mark_as_advanced(ISL_INCLUDE_DIR ISL_LIBRARY)
+Index: b/cmake/cloog-isl-config.cmake
+===================================================================
+--- /dev/null
++++ b/cmake/cloog-isl-config.cmake
+@@ -0,0 +1,26 @@
++# Try to find the cloog-isl library
++
++# CLOOG_ISL_FOUND - System has cloog-isl lib
++# CLOOG_ISL_INCLUDE_DIR - The cloog-isl include directory
++# CLOOG_ISL_LIBRARY - Library needed to use cloog-isl
++
++
++if (CLOOG_ISL_INCLUDE_DIR AND CLOOG_ISL_LIBRARY)
++ # Already in cache, be silent
++ set(CLOOG_ISL_FIND_QUIETLY TRUE)
++endif()
++
++find_path(CLOOG_ISL_INCLUDE_DIR NAMES cloog/isl/cloog.h)
++find_library(CLOOG_ISL_LIBRARY NAMES cloog-isl)
++
++if (CLOOG_ISL_LIBRARY AND CLOOG_ISL_INCLUDE_DIR)
++ message(STATUS "Library cloog-isl found =) ${CLOOG_ISL_LIBRARY}")
++else()
++ message(STATUS "Library cloog-isl not found =(")
++endif()
++
++
++include(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(CLOOG_ISL DEFAULT_MSG CLOOG_ISL_INCLUDE_DIR CLOOG_ISL_LIBRARY)
++
++mark_as_advanced(CLOOG_ISL_INCLUDE_DIR CLOOG_ISL_LIBRARY)
+++ /dev/null
-Add CMake related files missing from the release tarball
-
-Due to a bug in the cloog release, a few files were missing from the
-release tarball. This patch re-adds those files, which are needed for
-the build to work. This patch can be dropped when cloog is bumped.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/cmake/isl-config.cmake
-===================================================================
---- /dev/null
-+++ b/cmake/isl-config.cmake
-@@ -0,0 +1,25 @@
-+# Try to find the isl library
-+
-+# ISL_FOUND - System has isl lib
-+# ISL_INCLUDE_DIR - The isl include directory
-+# ISL_LIBRARY - Library needed to use isl
-+
-+
-+if (ISL_INCLUDE_DIR AND ISL_LIBRARY)
-+ # Already in cache, be silent
-+ set(ISL_FIND_QUIETLY TRUE)
-+endif()
-+
-+find_path(ISL_INCLUDE_DIR NAMES isl/version.h)
-+find_library(ISL_LIBRARY NAMES isl)
-+
-+if (ISL_LIBRARY AND ISL_INCLUDE_DIR)
-+ message(STATUS "Library isl found =) ${ISL_LIBRARY}")
-+else()
-+ message(STATUS "Library isl not found =(")
-+endif()
-+
-+include(FindPackageHandleStandardArgs)
-+FIND_PACKAGE_HANDLE_STANDARD_ARGS(ISL DEFAULT_MSG ISL_INCLUDE_DIR ISL_LIBRARY)
-+
-+mark_as_advanced(ISL_INCLUDE_DIR ISL_LIBRARY)
-Index: b/cmake/cloog-isl-config.cmake
-===================================================================
---- /dev/null
-+++ b/cmake/cloog-isl-config.cmake
-@@ -0,0 +1,26 @@
-+# Try to find the cloog-isl library
-+
-+# CLOOG_ISL_FOUND - System has cloog-isl lib
-+# CLOOG_ISL_INCLUDE_DIR - The cloog-isl include directory
-+# CLOOG_ISL_LIBRARY - Library needed to use cloog-isl
-+
-+
-+if (CLOOG_ISL_INCLUDE_DIR AND CLOOG_ISL_LIBRARY)
-+ # Already in cache, be silent
-+ set(CLOOG_ISL_FIND_QUIETLY TRUE)
-+endif()
-+
-+find_path(CLOOG_ISL_INCLUDE_DIR NAMES cloog/isl/cloog.h)
-+find_library(CLOOG_ISL_LIBRARY NAMES cloog-isl)
-+
-+if (CLOOG_ISL_LIBRARY AND CLOOG_ISL_INCLUDE_DIR)
-+ message(STATUS "Library cloog-isl found =) ${CLOOG_ISL_LIBRARY}")
-+else()
-+ message(STATUS "Library cloog-isl not found =(")
-+endif()
-+
-+
-+include(FindPackageHandleStandardArgs)
-+FIND_PACKAGE_HANDLE_STANDARD_ARGS(CLOOG_ISL DEFAULT_MSG CLOOG_ISL_INCLUDE_DIR CLOOG_ISL_LIBRARY)
-+
-+mark_as_advanced(CLOOG_ISL_INCLUDE_DIR CLOOG_ISL_LIBRARY)
--- /dev/null
+Take into account the CFLAGS/LDFLAGS passed in the environment.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: host-cloop-2.634-1/Makefile
+===================================================================
+--- host-cloop-2.634-1.orig/Makefile 2010-12-16 09:17:52.826555645 +0100
++++ host-cloop-2.634-1/Makefile 2010-12-16 09:18:57.208713338 +0100
+@@ -15,7 +15,7 @@
+ endif
+
+ ifdef APPSONLY
+-CFLAGS:=-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer
++CLOOP_CFLAGS:=-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer
+ endif
+
+ KERNOBJ:=compressed_loop.o
+@@ -53,10 +53,10 @@
+ ( cd advancecomp-1.15 ; ./configure && $(MAKE) advfs )
+
+ extract_compressed_fs: extract_compressed_fs.c
+- $(CC) -Wall -O2 -s -o $@ $< -lz
++ $(CC) $(CFLAGS) $(CLOOP_CFLAGS) $(LDFLAGS) -Wall -O2 -s -o $@ $< -lz
+
+ cloop_suspend: cloop_suspend.o
+- $(CC) -o $@ $<
++ $(CC) $(CFLAGS) $(CLOOP_CFLAGS) $(LDFLAGS) -o $@ $<
+
+ clean:
+ rm -rf create_compressed_fs extract_compressed_fs zoom *.o *.ko Module.symvers .cloop* .compressed_loop.* .tmp*
+++ /dev/null
-Take into account the CFLAGS/LDFLAGS passed in the environment.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: host-cloop-2.634-1/Makefile
-===================================================================
---- host-cloop-2.634-1.orig/Makefile 2010-12-16 09:17:52.826555645 +0100
-+++ host-cloop-2.634-1/Makefile 2010-12-16 09:18:57.208713338 +0100
-@@ -15,7 +15,7 @@
- endif
-
- ifdef APPSONLY
--CFLAGS:=-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer
-+CLOOP_CFLAGS:=-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer
- endif
-
- KERNOBJ:=compressed_loop.o
-@@ -53,10 +53,10 @@
- ( cd advancecomp-1.15 ; ./configure && $(MAKE) advfs )
-
- extract_compressed_fs: extract_compressed_fs.c
-- $(CC) -Wall -O2 -s -o $@ $< -lz
-+ $(CC) $(CFLAGS) $(CLOOP_CFLAGS) $(LDFLAGS) -Wall -O2 -s -o $@ $< -lz
-
- cloop_suspend: cloop_suspend.o
-- $(CC) -o $@ $<
-+ $(CC) $(CFLAGS) $(CLOOP_CFLAGS) $(LDFLAGS) -o $@ $<
-
- clean:
- rm -rf create_compressed_fs extract_compressed_fs zoom *.o *.ko Module.symvers .cloop* .compressed_loop.* .tmp*
--- /dev/null
+Upstream-Status: Pending
+
+coreutils: fix for dummy-man usage
+
+The options should be before the final argument, otherwise, the following error
+would appear when compiling.
+
+"dummy-man: too many non-option arguments"
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Gustavo: update for 8.23]
+
+diff -Nura coreutils-8.23.orig/man/local.mk coreutils-8.23/man/local.mk
+--- coreutils-8.23.orig/man/local.mk 2014-10-24 16:52:29.720555852 -0300
++++ coreutils-8.23/man/local.mk 2014-10-24 16:52:59.381391498 -0300
+@@ -101,8 +101,8 @@
+ && $(run_help2man) \
+ --source='$(PACKAGE_STRING)' \
+ --include=$(srcdir)/man/$$name.x \
+- --output=$$t/$$name.1 $$t/$$argv \
+ --info-page='coreutils \(aq'$$name' invocation\(aq' \
++ --output=$$t/$$name.1 $$t/$$argv \
+ && sed \
+ -e 's|$*\.td/||g' \
+ -e '/For complete documentation/d' \
+++ /dev/null
-Upstream-Status: Pending
-
-coreutils: fix for dummy-man usage
-
-The options should be before the final argument, otherwise, the following error
-would appear when compiling.
-
-"dummy-man: too many non-option arguments"
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Gustavo: update for 8.23]
-
-diff -Nura coreutils-8.23.orig/man/local.mk coreutils-8.23/man/local.mk
---- coreutils-8.23.orig/man/local.mk 2014-10-24 16:52:29.720555852 -0300
-+++ coreutils-8.23/man/local.mk 2014-10-24 16:52:59.381391498 -0300
-@@ -101,8 +101,8 @@
- && $(run_help2man) \
- --source='$(PACKAGE_STRING)' \
- --include=$(srcdir)/man/$$name.x \
-- --output=$$t/$$name.1 $$t/$$argv \
- --info-page='coreutils \(aq'$$name' invocation\(aq' \
-+ --output=$$t/$$name.1 $$t/$$argv \
- && sed \
- -e 's|$*\.td/||g' \
- -e '/For complete documentation/d' \
--- /dev/null
+Add mysql/ to PATH_SUFFIXES for the library search for mysql.
+
+On common distros libmysqlclient* is installed and/or symlinked
+into /usr/lib.
+Since we install the libraries into /usr/lib/mysql alone cppdb
+fails to properly link to it giving runtime errors.
+
+Status: https://sourceforge.net/p/cppcms/bugs/135/
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura cppdb-0.3.1.orig/CMakeLists.txt cppdb-0.3.1/CMakeLists.txt
+--- cppdb-0.3.1.orig/CMakeLists.txt 2014-10-17 11:05:57.875429748 -0300
++++ cppdb-0.3.1/CMakeLists.txt 2014-10-17 11:12:57.486775484 -0300
+@@ -196,7 +196,7 @@
+ endif()
+
+ if(NOT DISABLE_MYSQL)
+- find_library(MYSQL_LIB mysqlclient)
++ find_library(MYSQL_LIB mysqlclient PATH_SUFFIXES mysql)
+ find_path(MYSQL_PATH mysql.h PATH_SUFFIXES mysql)
+ if(MYSQL_LIB AND MYSQL_PATH)
+ include_directories(${MYSQL_PATH})
+++ /dev/null
-Add mysql/ to PATH_SUFFIXES for the library search for mysql.
-
-On common distros libmysqlclient* is installed and/or symlinked
-into /usr/lib.
-Since we install the libraries into /usr/lib/mysql alone cppdb
-fails to properly link to it giving runtime errors.
-
-Status: https://sourceforge.net/p/cppcms/bugs/135/
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura cppdb-0.3.1.orig/CMakeLists.txt cppdb-0.3.1/CMakeLists.txt
---- cppdb-0.3.1.orig/CMakeLists.txt 2014-10-17 11:05:57.875429748 -0300
-+++ cppdb-0.3.1/CMakeLists.txt 2014-10-17 11:12:57.486775484 -0300
-@@ -196,7 +196,7 @@
- endif()
-
- if(NOT DISABLE_MYSQL)
-- find_library(MYSQL_LIB mysqlclient)
-+ find_library(MYSQL_LIB mysqlclient PATH_SUFFIXES mysql)
- find_path(MYSQL_PATH mysql.h PATH_SUFFIXES mysql)
- if(MYSQL_LIB AND MYSQL_PATH)
- include_directories(${MYSQL_PATH})
--- /dev/null
+Index: cramfs-1.1/mkcramfs.c
+===================================================================
+--- cramfs-1.1.orig/mkcramfs.c 2002-02-20 09:03:32.000000000 +0100
++++ cramfs-1.1/mkcramfs.c 2011-09-09 15:11:00.980895119 +0200
+@@ -93,6 +93,7 @@
+ static int opt_verbose = 0;
+ static char *opt_image = NULL;
+ static char *opt_name = NULL;
++static int swap_endian = 0;
+
+ static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
+
+@@ -130,6 +131,8 @@
+ " -i file insert a file image into the filesystem (requires >= 2.4.0)\n"
+ " -n name set name of cramfs filesystem\n"
+ " -p pad by %d bytes for boot code\n"
++ " -l litte endian filesystem\n"
++ " -b big endian filesystem\n"
+ " -s sort directory entries (old option, ignored)\n"
+ " -v be more verbose\n"
+ " -z make explicit holes (requires >= 2.3.39)\n"
+@@ -372,6 +375,50 @@
+ return totalsize;
+ }
+
++/* routines to swap endianness/bitfields in inode/superblock block data */
++static void fix_inode(struct cramfs_inode *inode)
++{
++#define wswap(x) (((x)>>24) | (((x)>>8)&0xff00) | (((x)&0xff00)<<8) | (((x)&0xff)<<24))
++ /* attempt #2 */
++ inode->mode = (inode->mode >> 8) | ((inode->mode&0xff)<<8);
++ inode->uid = (inode->uid >> 8) | ((inode->uid&0xff)<<8);
++ inode->size = (inode->size >> 16) | (inode->size&0xff00) |
++ ((inode->size&0xff)<<16);
++ ((u32*)inode)[2] = wswap(inode->offset | (inode->namelen<<26));
++}
++
++static void fix_offset(struct cramfs_inode *inode, u32 offset)
++{
++ u32 tmp = wswap(((u32*)inode)[2]);
++ ((u32*)inode)[2] = wswap((offset >> 2) | (tmp&0xfc000000));
++}
++
++static void fix_block_pointer(u32 *p)
++{
++ *p = wswap(*p);
++}
++
++static void fix_super(struct cramfs_super *super)
++{
++ u32 *p = (u32*)super;
++
++ /* fix superblock fields */
++ p[0] = wswap(p[0]); /* magic */
++ p[1] = wswap(p[1]); /* size */
++ p[2] = wswap(p[2]); /* flags */
++ p[3] = wswap(p[3]); /* future */
++
++ /* fix filesystem info fields */
++ p = (u32*)&super->fsid;
++ p[0] = wswap(p[0]); /* crc */
++ p[1] = wswap(p[1]); /* edition */
++ p[2] = wswap(p[2]); /* blocks */
++ p[3] = wswap(p[3]); /* files */
++
++ fix_inode(&super->root);
++#undef wswap
++}
++
+ /* Returns sizeof(struct cramfs_super), which includes the root inode. */
+ static unsigned int write_superblock(struct entry *root, char *base, int size)
+ {
+@@ -405,6 +452,7 @@
+ super->root.gid = root->gid;
+ super->root.size = root->size;
+ super->root.offset = offset >> 2;
++ if (swap_endian) fix_super(super);
+
+ return offset;
+ }
+@@ -419,7 +467,10 @@
+ if (offset >= (1 << (2 + CRAMFS_OFFSET_WIDTH))) {
+ die(MKFS_ERROR, 0, "filesystem too big");
+ }
+- inode->offset = (offset >> 2);
++ if (swap_endian)
++ fix_offset(inode, offset);
++ else
++ inode->offset = (offset >> 2);
+ }
+
+ /*
+@@ -515,6 +566,7 @@
+ stack_entries++;
+ }
+ entry = entry->next;
++ if (swap_endian) fix_inode(inode);
+ }
+
+ /*
+@@ -609,6 +661,7 @@
+ }
+
+ *(u32 *) (base + offset) = curr;
++ if (swap_endian) fix_block_pointer((u32*)(base + offset));
+ offset += 4;
+ } while (size);
+
+@@ -699,7 +752,7 @@
+ progname = argv[0];
+
+ /* command line options */
+- while ((c = getopt(argc, argv, "hEe:i:n:psvz")) != EOF) {
++ while ((c = getopt(argc, argv, "hEe:i:n:psvzlb")) != EOF) {
+ switch (c) {
+ case 'h':
+ usage(MKFS_OK);
+@@ -727,6 +780,18 @@
+ opt_pad = PAD_SIZE;
+ fslen_ub += PAD_SIZE;
+ break;
++ case 'b':
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++ swap_endian = 1;
++ printf("Swapping filesystem endian-ness\n");
++#endif
++ break;
++ case 'l':
++#if __BYTE_ORDER == __BIG_ENDIAN
++ swap_endian = 1;
++ printf("Swapping filesystem endian-ness\n");
++#endif
++ break;
+ case 's':
+ /* old option, ignored */
+ break;
+Index: cramfs-1.1/cramfsck.c
+===================================================================
+--- cramfs-1.1.orig/cramfsck.c 2002-02-23 01:00:42.000000000 +0100
++++ cramfs-1.1/cramfsck.c 2011-09-09 15:10:06.810894275 +0200
+@@ -30,6 +30,7 @@
+ * 2000/07/15: Daniel Quinlan (initial support for block devices)
+ * 2002/01/10: Daniel Quinlan (additional checks, test more return codes,
+ * use read if mmap fails, standardize messages)
++ * 2004/09/01: Alfonso Acosta (Add swapping support)
+ */
+
+ /* compile-time options */
+@@ -53,6 +54,7 @@
+ #define _LINUX_STRING_H_
+ #include <linux/fs.h>
+ #include <linux/cramfs_fs.h>
++#include <byteswap.h>
+ #include <zlib.h>
+
+ /* Exit codes used by fsck-type programs */
+@@ -73,6 +75,7 @@
+ static char *filename; /* ROM image filename */
+ struct cramfs_super super; /* just find the cramfs superblock once */
+ static int opt_verbose = 0; /* 1 = verbose (-v), 2+ = very verbose (-vv) */
++static int need_swapping = 0; /* fs and host dont have the same endianness */
+ #ifdef INCLUDE_FS_TESTS
+ static int opt_extract = 0; /* extract cramfs (-x) */
+ static char *extract_dir = "root"; /* extraction directory (-x) */
+@@ -84,6 +87,9 @@
+ static unsigned long start_data = ~0UL; /* start of the data (256 MB = max) */
+ static unsigned long end_data = 0; /* end of the data */
+
++/* access 32 byte variables */
++#define CRAMFS_32(x) (need_swapping ? bswap_32(x) : x)
++
+ /* Guarantee access to at least 8kB at a time */
+ #define ROMBUFFER_BITS 13
+ #define ROMBUFFERSIZE (1 << ROMBUFFER_BITS)
+@@ -165,20 +171,34 @@
+ if (super.magic == CRAMFS_MAGIC) {
+ *start = 0;
+ }
++ else if (super.magic == bswap_32(CRAMFS_MAGIC)) {
++ *start = 0;
++ need_swapping = 1;
++ }
++
+ else if (*length >= (PAD_SIZE + sizeof(super))) {
+ lseek(fd, PAD_SIZE, SEEK_SET);
+ if (read(fd, &super, sizeof(super)) != sizeof(super)) {
+ die(FSCK_ERROR, 1, "read failed: %s", filename);
+ }
+- if (super.magic == CRAMFS_MAGIC) {
++ if (super.magic == CRAMFS_32(CRAMFS_MAGIC)) {
+ *start = PAD_SIZE;
+ }
+ }
+
+ /* superblock tests */
+- if (super.magic != CRAMFS_MAGIC) {
++ if (super.magic != CRAMFS_32(CRAMFS_MAGIC)) {
+ die(FSCK_UNCORRECTED, 0, "superblock magic not found");
+ }
++ if (need_swapping){
++ super.size = bswap_32(super.size);
++ super.flags = bswap_32(super.flags);
++ super.future = bswap_32(super.future);
++ super.fsid.crc = bswap_32(super.fsid.crc);
++ super.fsid.edition = bswap_32(super.fsid.edition);
++ super.fsid.blocks = bswap_32(super.fsid.blocks);
++ super.fsid.files = bswap_32(super.fsid.files);
++ }
+ if (super.flags & ~CRAMFS_SUPPORTED_FLAGS) {
+ die(FSCK_ERROR, 0, "unsupported filesystem features");
+ }
+@@ -213,7 +233,10 @@
+ die(FSCK_USAGE, 0, "unable to test CRC: old cramfs format");
+ #endif /* not INCLUDE_FS_TESTS */
+ }
+-
++ else if (need_swapping) {
++ /* crc checking in this case would mean translating the whole file */
++ return;
++ }
+ crc = crc32(0L, Z_NULL, 0);
+
+ buf = mmap(NULL, super.size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
+@@ -298,12 +321,23 @@
+
+ static struct cramfs_inode *cramfs_iget(struct cramfs_inode * i)
+ {
++#define wswap(x) (((x)>>24) | (((x)>>8)&0xff00) | (((x)&0xff00)<<8) | (((x)&0xff)<<24))
+ struct cramfs_inode *inode = malloc(sizeof(struct cramfs_inode));
+
+ if (!inode) {
+ die(FSCK_ERROR, 1, "malloc failed");
+ }
+- *inode = *i;
++ if(!need_swapping) {
++ *inode = *i;
++ }
++ else {
++ inode->mode=bswap_16(i->mode);
++ inode->uid=bswap_16(i->uid);
++ inode->size=bswap_32(i->size << 8);
++ inode->gid=i->gid;
++ inode->namelen = bswap_32(((u32*)i)[2]) >> 26;
++ inode->offset = bswap_32(((u32*)i)[2]) & 0x3FFFFFFF;
++ }
+ return inode;
+ }
+
+@@ -322,9 +356,9 @@
+ */
+ static struct cramfs_inode *read_super(void)
+ {
+- unsigned long offset = super.root.offset << 2;
+-
+- if (!S_ISDIR(super.root.mode))
++ struct cramfs_inode *root = cramfs_iget(&super.root);
++ unsigned long offset = root->offset << 2;
++ if (!S_ISDIR(root->mode))
+ die(FSCK_UNCORRECTED, 0, "root inode is not directory");
+ if (!(super.flags & CRAMFS_FLAG_SHIFTED_ROOT_OFFSET) &&
+ ((offset != sizeof(struct cramfs_super)) &&
+@@ -332,7 +366,7 @@
+ {
+ die(FSCK_UNCORRECTED, 0, "bad root offset (%lu)", offset);
+ }
+- return cramfs_iget(&super.root);
++ return root;
+ }
+
+ static int uncompress_block(void *src, int len)
+@@ -364,7 +398,7 @@
+
+ do {
+ unsigned long out = PAGE_CACHE_SIZE;
+- unsigned long next = *(u32 *) romfs_read(offset);
++ unsigned long next = CRAMFS_32(*(u32 *) romfs_read(offset));
+
+ if (next > end_data) {
+ end_data = next;
+@@ -525,7 +559,7 @@
+ {
+ unsigned long offset = i->offset << 2;
+ unsigned long curr = offset + 4;
+- unsigned long next = *(u32 *) romfs_read(offset);
++ unsigned long next = CRAMFS_32(*(u32 *) romfs_read(offset));
+ unsigned long size;
+
+ if (offset == 0) {
--- /dev/null
+Index: cramfs-1.1/cramfsck.c
+===================================================================
+--- cramfs-1.1.orig/cramfsck.c 2011-09-09 15:10:06.000000000 +0200
++++ cramfs-1.1/cramfsck.c 2011-09-09 15:13:49.950897747 +0200
+@@ -57,6 +57,10 @@
+ #include <byteswap.h>
+ #include <zlib.h>
+
++#ifdef __CYGWIN__
++#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
++#endif /* __CYGWIN__ */
++
+ /* Exit codes used by fsck-type programs */
+ #define FSCK_OK 0 /* No errors */
+ #define FSCK_NONDESTRUCT 1 /* File system errors corrected */
+++ /dev/null
-Index: cramfs-1.1/mkcramfs.c
-===================================================================
---- cramfs-1.1.orig/mkcramfs.c 2002-02-20 09:03:32.000000000 +0100
-+++ cramfs-1.1/mkcramfs.c 2011-09-09 15:11:00.980895119 +0200
-@@ -93,6 +93,7 @@
- static int opt_verbose = 0;
- static char *opt_image = NULL;
- static char *opt_name = NULL;
-+static int swap_endian = 0;
-
- static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
-
-@@ -130,6 +131,8 @@
- " -i file insert a file image into the filesystem (requires >= 2.4.0)\n"
- " -n name set name of cramfs filesystem\n"
- " -p pad by %d bytes for boot code\n"
-+ " -l litte endian filesystem\n"
-+ " -b big endian filesystem\n"
- " -s sort directory entries (old option, ignored)\n"
- " -v be more verbose\n"
- " -z make explicit holes (requires >= 2.3.39)\n"
-@@ -372,6 +375,50 @@
- return totalsize;
- }
-
-+/* routines to swap endianness/bitfields in inode/superblock block data */
-+static void fix_inode(struct cramfs_inode *inode)
-+{
-+#define wswap(x) (((x)>>24) | (((x)>>8)&0xff00) | (((x)&0xff00)<<8) | (((x)&0xff)<<24))
-+ /* attempt #2 */
-+ inode->mode = (inode->mode >> 8) | ((inode->mode&0xff)<<8);
-+ inode->uid = (inode->uid >> 8) | ((inode->uid&0xff)<<8);
-+ inode->size = (inode->size >> 16) | (inode->size&0xff00) |
-+ ((inode->size&0xff)<<16);
-+ ((u32*)inode)[2] = wswap(inode->offset | (inode->namelen<<26));
-+}
-+
-+static void fix_offset(struct cramfs_inode *inode, u32 offset)
-+{
-+ u32 tmp = wswap(((u32*)inode)[2]);
-+ ((u32*)inode)[2] = wswap((offset >> 2) | (tmp&0xfc000000));
-+}
-+
-+static void fix_block_pointer(u32 *p)
-+{
-+ *p = wswap(*p);
-+}
-+
-+static void fix_super(struct cramfs_super *super)
-+{
-+ u32 *p = (u32*)super;
-+
-+ /* fix superblock fields */
-+ p[0] = wswap(p[0]); /* magic */
-+ p[1] = wswap(p[1]); /* size */
-+ p[2] = wswap(p[2]); /* flags */
-+ p[3] = wswap(p[3]); /* future */
-+
-+ /* fix filesystem info fields */
-+ p = (u32*)&super->fsid;
-+ p[0] = wswap(p[0]); /* crc */
-+ p[1] = wswap(p[1]); /* edition */
-+ p[2] = wswap(p[2]); /* blocks */
-+ p[3] = wswap(p[3]); /* files */
-+
-+ fix_inode(&super->root);
-+#undef wswap
-+}
-+
- /* Returns sizeof(struct cramfs_super), which includes the root inode. */
- static unsigned int write_superblock(struct entry *root, char *base, int size)
- {
-@@ -405,6 +452,7 @@
- super->root.gid = root->gid;
- super->root.size = root->size;
- super->root.offset = offset >> 2;
-+ if (swap_endian) fix_super(super);
-
- return offset;
- }
-@@ -419,7 +467,10 @@
- if (offset >= (1 << (2 + CRAMFS_OFFSET_WIDTH))) {
- die(MKFS_ERROR, 0, "filesystem too big");
- }
-- inode->offset = (offset >> 2);
-+ if (swap_endian)
-+ fix_offset(inode, offset);
-+ else
-+ inode->offset = (offset >> 2);
- }
-
- /*
-@@ -515,6 +566,7 @@
- stack_entries++;
- }
- entry = entry->next;
-+ if (swap_endian) fix_inode(inode);
- }
-
- /*
-@@ -609,6 +661,7 @@
- }
-
- *(u32 *) (base + offset) = curr;
-+ if (swap_endian) fix_block_pointer((u32*)(base + offset));
- offset += 4;
- } while (size);
-
-@@ -699,7 +752,7 @@
- progname = argv[0];
-
- /* command line options */
-- while ((c = getopt(argc, argv, "hEe:i:n:psvz")) != EOF) {
-+ while ((c = getopt(argc, argv, "hEe:i:n:psvzlb")) != EOF) {
- switch (c) {
- case 'h':
- usage(MKFS_OK);
-@@ -727,6 +780,18 @@
- opt_pad = PAD_SIZE;
- fslen_ub += PAD_SIZE;
- break;
-+ case 'b':
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+ swap_endian = 1;
-+ printf("Swapping filesystem endian-ness\n");
-+#endif
-+ break;
-+ case 'l':
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+ swap_endian = 1;
-+ printf("Swapping filesystem endian-ness\n");
-+#endif
-+ break;
- case 's':
- /* old option, ignored */
- break;
-Index: cramfs-1.1/cramfsck.c
-===================================================================
---- cramfs-1.1.orig/cramfsck.c 2002-02-23 01:00:42.000000000 +0100
-+++ cramfs-1.1/cramfsck.c 2011-09-09 15:10:06.810894275 +0200
-@@ -30,6 +30,7 @@
- * 2000/07/15: Daniel Quinlan (initial support for block devices)
- * 2002/01/10: Daniel Quinlan (additional checks, test more return codes,
- * use read if mmap fails, standardize messages)
-+ * 2004/09/01: Alfonso Acosta (Add swapping support)
- */
-
- /* compile-time options */
-@@ -53,6 +54,7 @@
- #define _LINUX_STRING_H_
- #include <linux/fs.h>
- #include <linux/cramfs_fs.h>
-+#include <byteswap.h>
- #include <zlib.h>
-
- /* Exit codes used by fsck-type programs */
-@@ -73,6 +75,7 @@
- static char *filename; /* ROM image filename */
- struct cramfs_super super; /* just find the cramfs superblock once */
- static int opt_verbose = 0; /* 1 = verbose (-v), 2+ = very verbose (-vv) */
-+static int need_swapping = 0; /* fs and host dont have the same endianness */
- #ifdef INCLUDE_FS_TESTS
- static int opt_extract = 0; /* extract cramfs (-x) */
- static char *extract_dir = "root"; /* extraction directory (-x) */
-@@ -84,6 +87,9 @@
- static unsigned long start_data = ~0UL; /* start of the data (256 MB = max) */
- static unsigned long end_data = 0; /* end of the data */
-
-+/* access 32 byte variables */
-+#define CRAMFS_32(x) (need_swapping ? bswap_32(x) : x)
-+
- /* Guarantee access to at least 8kB at a time */
- #define ROMBUFFER_BITS 13
- #define ROMBUFFERSIZE (1 << ROMBUFFER_BITS)
-@@ -165,20 +171,34 @@
- if (super.magic == CRAMFS_MAGIC) {
- *start = 0;
- }
-+ else if (super.magic == bswap_32(CRAMFS_MAGIC)) {
-+ *start = 0;
-+ need_swapping = 1;
-+ }
-+
- else if (*length >= (PAD_SIZE + sizeof(super))) {
- lseek(fd, PAD_SIZE, SEEK_SET);
- if (read(fd, &super, sizeof(super)) != sizeof(super)) {
- die(FSCK_ERROR, 1, "read failed: %s", filename);
- }
-- if (super.magic == CRAMFS_MAGIC) {
-+ if (super.magic == CRAMFS_32(CRAMFS_MAGIC)) {
- *start = PAD_SIZE;
- }
- }
-
- /* superblock tests */
-- if (super.magic != CRAMFS_MAGIC) {
-+ if (super.magic != CRAMFS_32(CRAMFS_MAGIC)) {
- die(FSCK_UNCORRECTED, 0, "superblock magic not found");
- }
-+ if (need_swapping){
-+ super.size = bswap_32(super.size);
-+ super.flags = bswap_32(super.flags);
-+ super.future = bswap_32(super.future);
-+ super.fsid.crc = bswap_32(super.fsid.crc);
-+ super.fsid.edition = bswap_32(super.fsid.edition);
-+ super.fsid.blocks = bswap_32(super.fsid.blocks);
-+ super.fsid.files = bswap_32(super.fsid.files);
-+ }
- if (super.flags & ~CRAMFS_SUPPORTED_FLAGS) {
- die(FSCK_ERROR, 0, "unsupported filesystem features");
- }
-@@ -213,7 +233,10 @@
- die(FSCK_USAGE, 0, "unable to test CRC: old cramfs format");
- #endif /* not INCLUDE_FS_TESTS */
- }
--
-+ else if (need_swapping) {
-+ /* crc checking in this case would mean translating the whole file */
-+ return;
-+ }
- crc = crc32(0L, Z_NULL, 0);
-
- buf = mmap(NULL, super.size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
-@@ -298,12 +321,23 @@
-
- static struct cramfs_inode *cramfs_iget(struct cramfs_inode * i)
- {
-+#define wswap(x) (((x)>>24) | (((x)>>8)&0xff00) | (((x)&0xff00)<<8) | (((x)&0xff)<<24))
- struct cramfs_inode *inode = malloc(sizeof(struct cramfs_inode));
-
- if (!inode) {
- die(FSCK_ERROR, 1, "malloc failed");
- }
-- *inode = *i;
-+ if(!need_swapping) {
-+ *inode = *i;
-+ }
-+ else {
-+ inode->mode=bswap_16(i->mode);
-+ inode->uid=bswap_16(i->uid);
-+ inode->size=bswap_32(i->size << 8);
-+ inode->gid=i->gid;
-+ inode->namelen = bswap_32(((u32*)i)[2]) >> 26;
-+ inode->offset = bswap_32(((u32*)i)[2]) & 0x3FFFFFFF;
-+ }
- return inode;
- }
-
-@@ -322,9 +356,9 @@
- */
- static struct cramfs_inode *read_super(void)
- {
-- unsigned long offset = super.root.offset << 2;
--
-- if (!S_ISDIR(super.root.mode))
-+ struct cramfs_inode *root = cramfs_iget(&super.root);
-+ unsigned long offset = root->offset << 2;
-+ if (!S_ISDIR(root->mode))
- die(FSCK_UNCORRECTED, 0, "root inode is not directory");
- if (!(super.flags & CRAMFS_FLAG_SHIFTED_ROOT_OFFSET) &&
- ((offset != sizeof(struct cramfs_super)) &&
-@@ -332,7 +366,7 @@
- {
- die(FSCK_UNCORRECTED, 0, "bad root offset (%lu)", offset);
- }
-- return cramfs_iget(&super.root);
-+ return root;
- }
-
- static int uncompress_block(void *src, int len)
-@@ -364,7 +398,7 @@
-
- do {
- unsigned long out = PAGE_CACHE_SIZE;
-- unsigned long next = *(u32 *) romfs_read(offset);
-+ unsigned long next = CRAMFS_32(*(u32 *) romfs_read(offset));
-
- if (next > end_data) {
- end_data = next;
-@@ -525,7 +559,7 @@
- {
- unsigned long offset = i->offset << 2;
- unsigned long curr = offset + 4;
-- unsigned long next = *(u32 *) romfs_read(offset);
-+ unsigned long next = CRAMFS_32(*(u32 *) romfs_read(offset));
- unsigned long size;
-
- if (offset == 0) {
+++ /dev/null
-Index: cramfs-1.1/cramfsck.c
-===================================================================
---- cramfs-1.1.orig/cramfsck.c 2011-09-09 15:10:06.000000000 +0200
-+++ cramfs-1.1/cramfsck.c 2011-09-09 15:13:49.950897747 +0200
-@@ -57,6 +57,10 @@
- #include <byteswap.h>
- #include <zlib.h>
-
-+#ifdef __CYGWIN__
-+#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
-+#endif /* __CYGWIN__ */
-+
- /* Exit codes used by fsck-type programs */
- #define FSCK_OK 0 /* No errors */
- #define FSCK_NONDESTRUCT 1 /* File system errors corrected */
--- /dev/null
+From 6831024a247fd89c7f7adcbee8a0be991b3caaf4 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 2 Mar 2014 23:45:44 +0100
+Subject: [PATCH] Makefile: allow to override python interpreter
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 1d34bde..d7134ff 100644
+--- a/Makefile
++++ b/Makefile
+@@ -42,6 +42,7 @@ LDLIBS += -lgcrypt
+ reglib.o: keys-gcrypt.c
+
+ endif
++PYTHON ?= python2
+ MKDIR ?= mkdir -p
+ INSTALL ?= install
+
+@@ -103,7 +104,7 @@ $(REG_BIN):
+ keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
+ $(NQ) ' GEN ' $@
+ $(NQ) ' Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem)
+- $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
++ $(Q)$(PYTHON) ./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
+
+ %.o: %.c regdb.h reglib.h
+ $(NQ) ' CC ' $@
+--
+1.9.0
+
--- /dev/null
+From 2cabb2588da56735369131b709f191453c080be0 Mon Sep 17 00:00:00 2001
+From: "John W. Linville" <linville@tuxdriver.com>
+Date: Fri, 14 Feb 2014 13:58:44 -0500
+Subject: [PATCH 1/4] crda: Add DESTDIR support in install-libreg* rules in
+ Makefile
+
+Also drop ldconfig call, as that causes problems when cross compiling /
+installing as non-root.
+
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ Makefile | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 0b2f0d7..1f25509 100644
+--- a/Makefile
++++ b/Makefile
+@@ -120,13 +120,12 @@ $(LIBREG): regdb.h reglib.h reglib.c
+
+ install-libreg-headers:
+ $(NQ) ' INSTALL libreg-headers'
+- $(Q)mkdir -p $(INCLUDE_DIR)
+- $(Q)cp *.h $(INCLUDE_DIR)/
++ $(Q)mkdir -p $(DESTDIR)/$(INCLUDE_DIR)
++ $(Q)cp *.h $(DESTDIR)/$(INCLUDE_DIR)/
+
+ install-libreg:
+ $(NQ) ' INSTALL libreg'
+- $(Q)mkdir -p $(LIBDIR)
+- $(Q)cp $(LIBREG) $(LIBDIR)/
+- $(Q)ldconfig
++ $(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
++ $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
+
+ %.o: %.c regdb.h $(LIBREG)
+--
+1.8.5.5
+
+++ /dev/null
-From 6831024a247fd89c7f7adcbee8a0be991b3caaf4 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sun, 2 Mar 2014 23:45:44 +0100
-Subject: [PATCH] Makefile: allow to override python interpreter
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 1d34bde..d7134ff 100644
---- a/Makefile
-+++ b/Makefile
-@@ -42,6 +42,7 @@ LDLIBS += -lgcrypt
- reglib.o: keys-gcrypt.c
-
- endif
-+PYTHON ?= python2
- MKDIR ?= mkdir -p
- INSTALL ?= install
-
-@@ -103,7 +104,7 @@ $(REG_BIN):
- keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
- $(NQ) ' GEN ' $@
- $(NQ) ' Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem)
-- $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
-+ $(Q)$(PYTHON) ./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
-
- %.o: %.c regdb.h reglib.h
- $(NQ) ' CC ' $@
---
-1.9.0
-
+++ /dev/null
-From 2cabb2588da56735369131b709f191453c080be0 Mon Sep 17 00:00:00 2001
-From: "John W. Linville" <linville@tuxdriver.com>
-Date: Fri, 14 Feb 2014 13:58:44 -0500
-Subject: [PATCH 1/4] crda: Add DESTDIR support in install-libreg* rules in
- Makefile
-
-Also drop ldconfig call, as that causes problems when cross compiling /
-installing as non-root.
-
-Signed-off-by: John W. Linville <linville@tuxdriver.com>
-Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- Makefile | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0b2f0d7..1f25509 100644
---- a/Makefile
-+++ b/Makefile
-@@ -120,13 +120,12 @@ $(LIBREG): regdb.h reglib.h reglib.c
-
- install-libreg-headers:
- $(NQ) ' INSTALL libreg-headers'
-- $(Q)mkdir -p $(INCLUDE_DIR)
-- $(Q)cp *.h $(INCLUDE_DIR)/
-+ $(Q)mkdir -p $(DESTDIR)/$(INCLUDE_DIR)
-+ $(Q)cp *.h $(DESTDIR)/$(INCLUDE_DIR)/
-
- install-libreg:
- $(NQ) ' INSTALL libreg'
-- $(Q)mkdir -p $(LIBDIR)
-- $(Q)cp $(LIBREG) $(LIBDIR)/
-- $(Q)ldconfig
-+ $(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
-+ $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
-
- %.o: %.c regdb.h $(LIBREG)
---
-1.8.5.5
-
--- /dev/null
+From: Cosmin Paraschiv <cosmin.paraschiv@freescale.com>
+To: <cryptodev-linux-devel@gna.org>
+Subject: [Cryptodev-linux-devel] [PATCH v2] Replace INIT_COMPLETION with
+ reinit_completion.
+
+In the 3.13-rc1 Linux kernel, the INIT_COMPLETION macro has been replaced
+with an inline function, reinit_completion [1][2]. We are currently
+using the 3.13-rc3 Linux kernel, which leads to the following error:
+
+cryptlib.c:279:2: error: implicit declaration of function 'INIT_COMPLETION' [-Werror=implicit-function-declaration]
+ INIT_COMPLETION(cdata->async.result->completion);
+
+[1] https://github.com/torvalds/linux/commit/c32f74ab2872994bc8336ed367313da3139350ca
+[2] https://github.com/torvalds/linux/commit/62026aedaacedbe1ffe94a3599ad4acd8ecdf587
+
+Signed-off-by: Cosmin Paraschiv <cosmin.paraschiv@freescale.com>
+Reviewed-by: Cristian Stoica <cristian.stoica@freescale.com>
+Tested-by: Cristian Stoica <cristian.stoica@freescale.com>
+Signed-off-by: Horia Geanta <horia.geanta@freescale.com>
+---
+ cryptlib.c | 8 ++++----
+ cryptodev_int.h | 6 ++++++
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/cryptlib.c b/cryptlib.c
+index e6c91fc..fe25563 100644
+--- a/cryptlib.c
++++ b/cryptlib.c
+@@ -276,7 +276,7 @@ ssize_t cryptodev_cipher_encrypt(struct cipher_data *cdata,
+ {
+ int ret;
+
+- INIT_COMPLETION(cdata->async.result->completion);
++ reinit_completion(&cdata->async.result->completion);
+
+ if (cdata->aead == 0) {
+ ablkcipher_request_set_crypt(cdata->async.request,
+@@ -299,7 +299,7 @@ ssize_t cryptodev_cipher_decrypt(struct cipher_data *cdata,
+ {
+ int ret;
+
+- INIT_COMPLETION(cdata->async.result->completion);
++ reinit_completion(&cdata->async.result->completion);
+ if (cdata->aead == 0) {
+ ablkcipher_request_set_crypt(cdata->async.request,
+ (struct scatterlist *)src, dst,
+@@ -410,7 +410,7 @@ ssize_t cryptodev_hash_update(struct hash_data *hdata,
+ {
+ int ret;
+
+- INIT_COMPLETION(hdata->async.result->completion);
++ reinit_completion(&hdata->async.result->completion);
+ ahash_request_set_crypt(hdata->async.request, sg, NULL, len);
+
+ ret = crypto_ahash_update(hdata->async.request);
+@@ -422,7 +422,7 @@ int cryptodev_hash_final(struct hash_data *hdata, void* output)
+ {
+ int ret;
+
+- INIT_COMPLETION(hdata->async.result->completion);
++ reinit_completion(&hdata->async.result->completion);
+ ahash_request_set_crypt(hdata->async.request, NULL, output, 0);
+
+ ret = crypto_ahash_final(hdata->async.request);
+diff --git a/cryptodev_int.h b/cryptodev_int.h
+index eb2aabf..3834ef1 100644
+--- a/cryptodev_int.h
++++ b/cryptodev_int.h
+@@ -2,6 +2,12 @@
+ #ifndef CRYPTODEV_INT_H
+ # define CRYPTODEV_INT_H
+
++#include <linux/version.h>
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0))
++# define reinit_completion(x) INIT_COMPLETION(*(x))
++#endif
++
+ #include <linux/init.h>
+ #include <linux/sched.h>
+ #include <linux/fs.h>
+--
+1.8.3.1
+++ /dev/null
-From: Cosmin Paraschiv <cosmin.paraschiv@freescale.com>
-To: <cryptodev-linux-devel@gna.org>
-Subject: [Cryptodev-linux-devel] [PATCH v2] Replace INIT_COMPLETION with
- reinit_completion.
-
-In the 3.13-rc1 Linux kernel, the INIT_COMPLETION macro has been replaced
-with an inline function, reinit_completion [1][2]. We are currently
-using the 3.13-rc3 Linux kernel, which leads to the following error:
-
-cryptlib.c:279:2: error: implicit declaration of function 'INIT_COMPLETION' [-Werror=implicit-function-declaration]
- INIT_COMPLETION(cdata->async.result->completion);
-
-[1] https://github.com/torvalds/linux/commit/c32f74ab2872994bc8336ed367313da3139350ca
-[2] https://github.com/torvalds/linux/commit/62026aedaacedbe1ffe94a3599ad4acd8ecdf587
-
-Signed-off-by: Cosmin Paraschiv <cosmin.paraschiv@freescale.com>
-Reviewed-by: Cristian Stoica <cristian.stoica@freescale.com>
-Tested-by: Cristian Stoica <cristian.stoica@freescale.com>
-Signed-off-by: Horia Geanta <horia.geanta@freescale.com>
----
- cryptlib.c | 8 ++++----
- cryptodev_int.h | 6 ++++++
- 2 files changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/cryptlib.c b/cryptlib.c
-index e6c91fc..fe25563 100644
---- a/cryptlib.c
-+++ b/cryptlib.c
-@@ -276,7 +276,7 @@ ssize_t cryptodev_cipher_encrypt(struct cipher_data *cdata,
- {
- int ret;
-
-- INIT_COMPLETION(cdata->async.result->completion);
-+ reinit_completion(&cdata->async.result->completion);
-
- if (cdata->aead == 0) {
- ablkcipher_request_set_crypt(cdata->async.request,
-@@ -299,7 +299,7 @@ ssize_t cryptodev_cipher_decrypt(struct cipher_data *cdata,
- {
- int ret;
-
-- INIT_COMPLETION(cdata->async.result->completion);
-+ reinit_completion(&cdata->async.result->completion);
- if (cdata->aead == 0) {
- ablkcipher_request_set_crypt(cdata->async.request,
- (struct scatterlist *)src, dst,
-@@ -410,7 +410,7 @@ ssize_t cryptodev_hash_update(struct hash_data *hdata,
- {
- int ret;
-
-- INIT_COMPLETION(hdata->async.result->completion);
-+ reinit_completion(&hdata->async.result->completion);
- ahash_request_set_crypt(hdata->async.request, sg, NULL, len);
-
- ret = crypto_ahash_update(hdata->async.request);
-@@ -422,7 +422,7 @@ int cryptodev_hash_final(struct hash_data *hdata, void* output)
- {
- int ret;
-
-- INIT_COMPLETION(hdata->async.result->completion);
-+ reinit_completion(&hdata->async.result->completion);
- ahash_request_set_crypt(hdata->async.request, NULL, output, 0);
-
- ret = crypto_ahash_final(hdata->async.request);
-diff --git a/cryptodev_int.h b/cryptodev_int.h
-index eb2aabf..3834ef1 100644
---- a/cryptodev_int.h
-+++ b/cryptodev_int.h
-@@ -2,6 +2,12 @@
- #ifndef CRYPTODEV_INT_H
- # define CRYPTODEV_INT_H
-
-+#include <linux/version.h>
-+
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0))
-+# define reinit_completion(x) INIT_COMPLETION(*(x))
-+#endif
-+
- #include <linux/init.h>
- #include <linux/sched.h>
- #include <linux/fs.h>
---
-1.8.3.1
--- /dev/null
+cups: fix static linking
+
+Append -lz to the cups linking libs to fix a problem like this one:
+
+../cups/libcups.a(file.o): In function `cupsFileSeek':
+/home/test/test/1/output/build/cups-1.3.11/cups/file.c:1444: undefined
+reference to `inflateEnd'
+collect2: error: ld returned 1 exit status
+make[2]: *** [ipp] Error 1
+make[2]: *** Waiting for unfinished jobs....
+
+This solution is the same used upstream in newer versions.
+
+Fixes:
+ http://autobuild.buildroot.net/results/f3d/f3d4f67ce7ee1d54f5bd4c87dfddb7417db614e5/
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+--- cups-1.3.11/Makedefs.in.orig 2014-03-05 13:28:10.175437880 +0000
++++ cups-1.3.11/Makedefs.in 2014-03-05 13:28:35.398845162 +0000
+@@ -132,7 +132,7 @@ LDFLAGS = -L../cups -L../filter @LDARCH
+ LEGACY_BACKENDS = @LEGACY_BACKENDS@
+ LIBCUPSORDER = @LIBCUPSORDER@
+ LIBCUPSIMAGEORDER = @LIBCUPSIMAGEORDER@
+-LINKCUPS = @LINKCUPS@ $(SSLLIBS)
++LINKCUPS = @LINKCUPS@ $(SSLLIBS) $(LIBZ)
+ LINKCUPSIMAGE = @LINKCUPSIMAGE@
+ LIBS = $(LINKCUPS) $(COMMONLIBS)
+ OPTIM = @OPTIM@
--- /dev/null
+[PATCH]: use AC_TRY_LINK for stack protector check
+
+Actually try to link an executable to test for stack protector support,
+as gcc seems to accept the -fstack-protector argument even when it's
+compiled with --disable-libssp (but linking fails with a error
+finding -lssp_nonshared).
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ config-scripts/cups-compiler.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: cups-1.3.9/config-scripts/cups-compiler.m4
+===================================================================
+--- cups-1.3.9.orig/config-scripts/cups-compiler.m4
++++ cups-1.3.9/config-scripts/cups-compiler.m4
+@@ -109,7 +109,7 @@ if test -n "$GCC"; then
+ AC_MSG_CHECKING(if GCC supports -fstack-protector)
+ OLDCFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fstack-protector"
+- AC_TRY_COMPILE(,,
++ AC_TRY_LINK(,,
+ OPTIM="$OPTIM -fstack-protector"
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no))
--- /dev/null
+--- cups-1.3.5/man/Makefile 2007-07-12 21:01:14.000000000 -0400
++++ cups-1.3.5/man/Makefile 2008-02-11 08:55:24.000000000 -0500
+@@ -173,7 +173,7 @@ html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) ma
+ done
+
+ mantohtml: mantohtml.o
+- $(CC) $(LDFLAGS) -o $@ mantohtml.o
++ gcc -I/usr/include -I../ -L/usr/lib mantohtml.c -o mantohtml
+
+
+ #
+++ /dev/null
-cups: fix static linking
-
-Append -lz to the cups linking libs to fix a problem like this one:
-
-../cups/libcups.a(file.o): In function `cupsFileSeek':
-/home/test/test/1/output/build/cups-1.3.11/cups/file.c:1444: undefined
-reference to `inflateEnd'
-collect2: error: ld returned 1 exit status
-make[2]: *** [ipp] Error 1
-make[2]: *** Waiting for unfinished jobs....
-
-This solution is the same used upstream in newer versions.
-
-Fixes:
- http://autobuild.buildroot.net/results/f3d/f3d4f67ce7ee1d54f5bd4c87dfddb7417db614e5/
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---- cups-1.3.11/Makedefs.in.orig 2014-03-05 13:28:10.175437880 +0000
-+++ cups-1.3.11/Makedefs.in 2014-03-05 13:28:35.398845162 +0000
-@@ -132,7 +132,7 @@ LDFLAGS = -L../cups -L../filter @LDARCH
- LEGACY_BACKENDS = @LEGACY_BACKENDS@
- LIBCUPSORDER = @LIBCUPSORDER@
- LIBCUPSIMAGEORDER = @LIBCUPSIMAGEORDER@
--LINKCUPS = @LINKCUPS@ $(SSLLIBS)
-+LINKCUPS = @LINKCUPS@ $(SSLLIBS) $(LIBZ)
- LINKCUPSIMAGE = @LINKCUPSIMAGE@
- LIBS = $(LINKCUPS) $(COMMONLIBS)
- OPTIM = @OPTIM@
+++ /dev/null
-[PATCH]: use AC_TRY_LINK for stack protector check
-
-Actually try to link an executable to test for stack protector support,
-as gcc seems to accept the -fstack-protector argument even when it's
-compiled with --disable-libssp (but linking fails with a error
-finding -lssp_nonshared).
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- config-scripts/cups-compiler.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: cups-1.3.9/config-scripts/cups-compiler.m4
-===================================================================
---- cups-1.3.9.orig/config-scripts/cups-compiler.m4
-+++ cups-1.3.9/config-scripts/cups-compiler.m4
-@@ -109,7 +109,7 @@ if test -n "$GCC"; then
- AC_MSG_CHECKING(if GCC supports -fstack-protector)
- OLDCFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fstack-protector"
-- AC_TRY_COMPILE(,,
-+ AC_TRY_LINK(,,
- OPTIM="$OPTIM -fstack-protector"
- AC_MSG_RESULT(yes),
- AC_MSG_RESULT(no))
+++ /dev/null
---- cups-1.3.5/man/Makefile 2007-07-12 21:01:14.000000000 -0400
-+++ cups-1.3.5/man/Makefile 2008-02-11 08:55:24.000000000 -0500
-@@ -173,7 +173,7 @@ html: $(MAN1) $(MAN5) $(MAN7) $(MAN8) ma
- done
-
- mantohtml: mantohtml.o
-- $(CC) $(LDFLAGS) -o $@ mantohtml.o
-+ gcc -I/usr/include -I../ -L/usr/lib mantohtml.c -o mantohtml
-
-
- #
--- /dev/null
+Borrowed from the curlftpfs_0.9.2-5 Debian package.
+
+CURLOPT_INFILESIZE does not support -1 arg. This fix bug #556012.
+--- curlftpfs-0.9.2/ftpfs.c.old 2009-12-13 14:12:25.000000000 +0100
++++ curlftpfs-0.9.2/ftpfs.c 2009-12-13 14:12:32.000000000 +0100
+@@ -503,7 +503,6 @@
+
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1);
+- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh);
+ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 1);
--- /dev/null
+Borrowed from the curlftpfs_0.9.2-5 Debian package.
+
+Fix a memory leak. See Bug #587250.
+--- a/ftpfs.c 2008-04-30 01:05:47.000000000 +0200
++++ a/ftpfs.c.slesimple 2010-01-01 22:12:10.000000000 +0100
+@@ -615,6 +615,8 @@ static void free_ftpfs_file(struct ftpfs
+ sem_destroy(&fh->data_need);
+ sem_destroy(&fh->data_written);
+ sem_destroy(&fh->ready);
++ if (fh->buf.size) { buf_free(&fh->buf); }
++ if (fh->stream_buf.size) { buf_free(&fh->stream_buf); }
+ free(fh);
+ }
+
--- /dev/null
+Borrowed from the curlftpfs_0.9.2-5 Debian package.
+
+Fix a memory leak when cache is disabled. Closes: #614347.
+diff -ur curlftpfs-0.9.2/cache.c curlftpfs-0.9.2-olexat/cache.c
+--- curlftpfs-0.9.2/cache.c 2008-04-30 01:03:09.000000000 +0200
++++ curlftpfs-0.9.2-olexat/cache.c 2011-02-04 16:43:05.000000000 +0100
+@@ -25,7 +25,7 @@
+ time_t last_cleaned;
+ };
+
+-static struct cache cache;
++struct cache cache;
+
+ struct node {
+ struct stat stat;
+diff -ur curlftpfs-0.9.2/ftpfs-ls.c curlftpfs-0.9.2-olexat/ftpfs-ls.c
+--- curlftpfs-0.9.2/ftpfs-ls.c 2008-04-23 12:55:41.000000000 +0200
++++ curlftpfs-0.9.2-olexat/ftpfs-ls.c 2011-02-07 17:23:37.000000000 +0100
+@@ -25,6 +25,13 @@
+ #include "charset_utils.h"
+ #include "ftpfs-ls.h"
+
++struct cache {
++ int on;
++ char incomplete[];
++};
++
++extern struct cache cache;
++
+ static int parse_dir_unix(const char *line,
+ struct stat *sbuf,
+ char *file,
+@@ -243,8 +256,10 @@
+ reallink = g_strdup(link);
+ }
+ int linksize = strlen(reallink);
+- cache_add_link(full_path, reallink, linksize+1);
+- DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink);
++ if (cache.on) {
++ cache_add_link(full_path, reallink, linksize+1);
++ DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink);
++ }
+ if (linkbuf && linklen) {
+ if (linksize > linklen) linksize = linklen - 1;
+ strncpy(linkbuf, reallink, linksize);
+@@ -257,8 +272,10 @@
+ DEBUG(1, "filler: %s\n", file);
+ filler(h, file, &stat_buf);
+ } else {
+- DEBUG(1, "cache_add_attr: %s\n", full_path);
+- cache_add_attr(full_path, &stat_buf);
++ if (cache.on) {
++ DEBUG(1, "cache_add_attr: %s\n", full_path);
++ cache_add_attr(full_path, &stat_buf);
++ }
+ }
+
+ DEBUG(2, "comparing %s %s\n", name, file);
+
+++ /dev/null
-Borrowed from the curlftpfs_0.9.2-5 Debian package.
-
-CURLOPT_INFILESIZE does not support -1 arg. This fix bug #556012.
---- curlftpfs-0.9.2/ftpfs.c.old 2009-12-13 14:12:25.000000000 +0100
-+++ curlftpfs-0.9.2/ftpfs.c 2009-12-13 14:12:32.000000000 +0100
-@@ -503,7 +503,6 @@
-
- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path);
- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1);
-- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1);
- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg);
- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh);
- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 1);
+++ /dev/null
-Borrowed from the curlftpfs_0.9.2-5 Debian package.
-
-Fix a memory leak. See Bug #587250.
---- a/ftpfs.c 2008-04-30 01:05:47.000000000 +0200
-+++ a/ftpfs.c.slesimple 2010-01-01 22:12:10.000000000 +0100
-@@ -615,6 +615,8 @@ static void free_ftpfs_file(struct ftpfs
- sem_destroy(&fh->data_need);
- sem_destroy(&fh->data_written);
- sem_destroy(&fh->ready);
-+ if (fh->buf.size) { buf_free(&fh->buf); }
-+ if (fh->stream_buf.size) { buf_free(&fh->stream_buf); }
- free(fh);
- }
-
+++ /dev/null
-Borrowed from the curlftpfs_0.9.2-5 Debian package.
-
-Fix a memory leak when cache is disabled. Closes: #614347.
-diff -ur curlftpfs-0.9.2/cache.c curlftpfs-0.9.2-olexat/cache.c
---- curlftpfs-0.9.2/cache.c 2008-04-30 01:03:09.000000000 +0200
-+++ curlftpfs-0.9.2-olexat/cache.c 2011-02-04 16:43:05.000000000 +0100
-@@ -25,7 +25,7 @@
- time_t last_cleaned;
- };
-
--static struct cache cache;
-+struct cache cache;
-
- struct node {
- struct stat stat;
-diff -ur curlftpfs-0.9.2/ftpfs-ls.c curlftpfs-0.9.2-olexat/ftpfs-ls.c
---- curlftpfs-0.9.2/ftpfs-ls.c 2008-04-23 12:55:41.000000000 +0200
-+++ curlftpfs-0.9.2-olexat/ftpfs-ls.c 2011-02-07 17:23:37.000000000 +0100
-@@ -25,6 +25,13 @@
- #include "charset_utils.h"
- #include "ftpfs-ls.h"
-
-+struct cache {
-+ int on;
-+ char incomplete[];
-+};
-+
-+extern struct cache cache;
-+
- static int parse_dir_unix(const char *line,
- struct stat *sbuf,
- char *file,
-@@ -243,8 +256,10 @@
- reallink = g_strdup(link);
- }
- int linksize = strlen(reallink);
-- cache_add_link(full_path, reallink, linksize+1);
-- DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink);
-+ if (cache.on) {
-+ cache_add_link(full_path, reallink, linksize+1);
-+ DEBUG(1, "cache_add_link: %s %s\n", full_path, reallink);
-+ }
- if (linkbuf && linklen) {
- if (linksize > linklen) linksize = linklen - 1;
- strncpy(linkbuf, reallink, linksize);
-@@ -257,8 +272,10 @@
- DEBUG(1, "filler: %s\n", file);
- filler(h, file, &stat_buf);
- } else {
-- DEBUG(1, "cache_add_attr: %s\n", full_path);
-- cache_add_attr(full_path, &stat_buf);
-+ if (cache.on) {
-+ DEBUG(1, "cache_add_attr: %s\n", full_path);
-+ cache_add_attr(full_path, &stat_buf);
-+ }
- }
-
- DEBUG(2, "comparing %s %s\n", name, file);
-
--- /dev/null
+From 6af678616531eb1f3d3d0a052313ef9d8125bac7 Mon Sep 17 00:00:00 2001
+From: "L. Donnie Smith" <donnie.smith@gatech.edu>
+Date: Thu, 4 Feb 2010 22:53:41 -0500
+Subject: [PATCH] fix link options for --as-needed (#90)
+
+also fix a couple of includes
+---
+ common/include/app.mak | 2 +-
+ common/include/lib.mak.in | 4 ++--
+ common/include/plugin.mak | 2 +-
+ lswm/Makefile.in | 2 +-
+ python/Makefile.in | 2 +-
+ python/Wiimote.c | 2 +-
+ python/cwiidmodule.c | 2 +-
+ wmdemo/wmdemo.c | 1 +
+ wmgui/Makefile.in | 2 +-
+ wminput/Makefile.in | 2 +-
+ wminput/main.c | 1 +
+ 11 files changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/common/include/app.mak b/common/include/app.mak
+index f00cf12..c26d0ff 100644
+--- a/common/include/app.mak
++++ b/common/include/app.mak
+@@ -10,7 +10,7 @@ DEST_INST_DIR = $(ROOTDIR)$(INST_DIR)
+ all: $(APP_NAME)
+
+ $(APP_NAME): $(OBJECTS)
+- $(CC) -o $@ $(OBJECTS) $(LDFLAGS) $(LDLIBS)
++ $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LDLIBS)
+
+ install: $(APP_NAME)
+ install -D $(APP_NAME) $(DEST_INST_DIR)/$(APP_NAME)
+diff --git a/common/include/lib.mak.in b/common/include/lib.mak.in
+index 5e81ff3..3afbb14 100644
+--- a/common/include/lib.mak.in
++++ b/common/include/lib.mak.in
+@@ -25,8 +25,8 @@ $(STATIC_LIB): $(OBJECTS)
+ ar rcs $(STATIC_LIB) $(OBJECTS)
+
+ $(SHARED_LIB): $(OBJECTS)
+- $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) $(LDLIBS) \
+- -o $(SHARED_LIB) $(OBJECTS)
++ $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $(SHARED_LIB) \
++ $(OBJECTS) $(LDLIBS)
+
+ install: install_header install_static install_shared
+
+diff --git a/common/include/plugin.mak b/common/include/plugin.mak
+index 0f61502..a2d5c85 100644
+--- a/common/include/plugin.mak
++++ b/common/include/plugin.mak
+@@ -16,7 +16,7 @@ DEST_INST_DIR = $(INST_DIR)
+ all: $(LIB_NAME)
+
+ $(LIB_NAME): $(OBJECTS)
+- $(CC) -shared $(LDFLAGS) $(LDLIBS) -o $(LIB_NAME) $(OBJECTS)
++ $(CC) -shared $(LDFLAGS) -o $(LIB_NAME) $(OBJECTS) $(LDLIBS)
+
+ install: $(LIB_NAME)
+ install -D $(LIB_NAME) $(DEST_INST_DIR)/$(LIB_NAME)
+diff --git a/lswm/Makefile.in b/lswm/Makefile.in
+index 79e8b5b..017104f 100644
+--- a/lswm/Makefile.in
++++ b/lswm/Makefile.in
+@@ -8,7 +8,7 @@ SOURCES = lswm.c
+
+ CFLAGS += -I@top_builddir@/libcwiid
+ LDFLAGS += -L@top_builddir@/libcwiid
+-LDLIBS += -lcwiid
++LDLIBS += -lcwiid -lbluetooth
+ INST_DIR = @bindir@
+
+ include $(COMMON)/include/app.mak
+diff --git a/python/Makefile.in b/python/Makefile.in
+index 0d7efdf..0ca57ca 100644
+--- a/python/Makefile.in
++++ b/python/Makefile.in
+@@ -7,7 +7,7 @@ ifdef ROOTDIR
+ endif
+
+ all:
+- $(PYTHON) setup.py build_ext $(DEBUGFLAGS) -I@top_builddir@/libcwiid -L@top_builddir@/libcwiid -lcwiid
++ $(PYTHON) setup.py build_ext $(DEBUGFLAGS) -I@top_builddir@/libcwiid -L@top_builddir@/libcwiid -lcwiid -lbluetooth
+
+ install:
+ $(PYTHON) setup.py install --install-lib=${libdir}/python@PYTHON_VERSION@/site-packages $(SET_ROOT_DIR)
+diff --git a/python/Wiimote.c b/python/Wiimote.c
+index 794e7e2..523185e 100644
+--- a/python/Wiimote.c
++++ b/python/Wiimote.c
+@@ -24,7 +24,7 @@
+ #include "structmember.h"
+ #include <errno.h>
+ #include <bluetooth/bluetooth.h>
+-#include "cwiid.h"
++#include <cwiid.h>
+
+ #if (PY_VERSION_HEX < 0x02050000)
+ #ifndef PY_SSIZE_T_MIN
+diff --git a/python/cwiidmodule.c b/python/cwiidmodule.c
+index f6a8f33..a01ed82 100644
+--- a/python/cwiidmodule.c
++++ b/python/cwiidmodule.c
+@@ -24,7 +24,7 @@
+
+ #include <stdlib.h>
+
+-#include "cwiid.h"
++#include <cwiid.h>
+ #include "structmember.h"
+
+ /* externally defined types */
+diff --git a/wmdemo/wmdemo.c b/wmdemo/wmdemo.c
+index 70a25a1..b7aaa7f 100644
+--- a/wmdemo/wmdemo.c
++++ b/wmdemo/wmdemo.c
+@@ -2,6 +2,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+
++#include <bluetooth/bluetooth.h>
+ #include <cwiid.h>
+
+ /* This is a sample program written to demonstrate basic CWiid libwiimote
+diff --git a/wmgui/Makefile.in b/wmgui/Makefile.in
+index 41b205e..14d1c1e 100644
+--- a/wmgui/Makefile.in
++++ b/wmgui/Makefile.in
+@@ -8,7 +8,7 @@ SOURCES = main.c interface.c support.c
+
+ CFLAGS += @GTK_CFLAGS@ -I@top_builddir@/libcwiid
+ LDFLAGS += -L@top_builddir@/libcwiid
+-LDLIBS += @GTK_LIBS@ -lm -lcwiid
++LDLIBS += @GTK_LIBS@ -lcwiid -lbluetooth -lm
+ INST_DIR = @bindir@
+
+ include $(COMMON)/include/app.mak
+diff --git a/wminput/Makefile.in b/wminput/Makefile.in
+index 009d4d5..d3c3679 100644
+--- a/wminput/Makefile.in
++++ b/wminput/Makefile.in
+@@ -14,7 +14,7 @@ CFLAGS += -I@top_builddir@/libcwiid \
+ -DWMINPUT_CONFIG_DIR=\"$(WMINPUT_CONFIG_DIR)\" \
+ -DCWIID_PLUGINS_DIR=\"$(CWIID_PLUGINS_DIR)\"
+
+-LDLIBS += -lcwiid -ldl
++LDLIBS += -lcwiid -lbluetooth -ldl -lpthread
+ LDFLAGS += -L@top_builddir@/libcwiid -rdynamic
+ INST_DIR = @bindir@
+
+diff --git a/wminput/main.c b/wminput/main.c
+index c3a7445..bbc98d9 100644
+--- a/wminput/main.c
++++ b/wminput/main.c
+@@ -30,6 +30,7 @@
+ #include <signal.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <bluetooth/bluetooth.h>
+
+ #include <cwiid.h>
+
+--
+1.8.5.2
+
--- /dev/null
+From c5dd7d4a9af5a7d8ead8ad26d9e5e0f8f8292d29 Mon Sep 17 00:00:00 2001
+From: "L. Donnie Smith" <donnie.smith@gatech.edu>
+Date: Sun, 30 Nov 2008 22:34:08 +0000
+Subject: [PATCH] Update for BlueZ changes.
+
+git-svn-id: http://abstrakraft.org/cwiid/svn/trunk@183 918edb2d-ff29-0410-9de2-eb38e7f22bc7
+---
+ libcwiid/bluetooth.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libcwiid/bluetooth.c b/libcwiid/bluetooth.c
+index 63284a8..e986f75 100644
+--- a/libcwiid/bluetooth.c
++++ b/libcwiid/bluetooth.c
+@@ -122,8 +122,8 @@ int cwiid_get_bdinfo_array(int dev_id, unsigned int timeout, int max_bdinfo,
+ }
+
+ /* timeout (10000) in milliseconds */
+- if (hci_remote_name(sock, &dev_list[i].bdaddr, BT_NAME_LEN,
+- (*bdinfo)[bdinfo_count].name, 10000)) {
++ if (hci_read_remote_name(sock, &dev_list[i].bdaddr, BT_NAME_LEN,
++ (*bdinfo)[bdinfo_count].name, 10000)) {
+ cwiid_err(NULL, "Bluetooth name read error");
+ err = 1;
+ goto CODA;
+--
+1.8.5.2
+
--- /dev/null
+From af6bffb5b8b71e99e0f9bbbd2cf1fbd695a643c2 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 8 Dec 2012 13:32:40 +0100
+Subject: [PATCH 1/2] wmdemo: fix linking by adding the missing -lbluetooth to
+ LDLIBS
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ wmdemo/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/wmdemo/Makefile.in b/wmdemo/Makefile.in
+index 56aed58..1eccc02 100644
+--- a/wmdemo/Makefile.in
++++ b/wmdemo/Makefile.in
+@@ -8,7 +8,7 @@ SOURCES = wmdemo.c
+
+ CFLAGS += -I@top_builddir@/libcwiid
+ LDFLAGS += -L@top_builddir@/libcwiid
+-LDLIBS += -lcwiid
++LDLIBS += -lcwiid -lbluetooth
+ INST_DIR = @bindir@
+
+ include $(COMMON)/include/app.mak
+--
+1.8.5.2
+
--- /dev/null
+From dbb578450974db5decc24560da4aeaed838849a1 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Thu, 2 Jan 2014 14:03:07 +0100
+Subject: [PATCH 2/2] configure: make wmgui build optional
+
+So, make gtk-2 and glib2 dependencies optional (only needed by wmgui)
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile.in | 2 +-
+ configure.ac | 17 +++++++++++++----
+ 2 files changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 6d3ac98..3d2fb45 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -3,7 +3,7 @@
+ include @top_builddir@/defs.mak
+
+ LIB_DIRS = libcwiid
+-BIN_DIRS = wmgui wminput lswm
++BIN_DIRS = @WMGUI@ wminput lswm
+ DOC_DIRS = man doc
+ ifdef PYTHON
+ BIND_DIRS = python
+diff --git a/configure.ac b/configure.ac
+index 82ca3e1..d146cb6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -15,6 +15,11 @@ if test "$YACC" != "bison -y"; then
+ AC_MSG_ERROR([bison not found])
+ fi
+
++AC_ARG_ENABLE(
++ [wmgui],
++ [AS_HELP_STRING([--disable-wmgui],[Do not build wmgui binary (also drop the gtk-2/glib2 dependency)])],
++ [ENABLE_WMGUI="$enableval"],[ENABLE_WMGUI=yes])
++
+ AC_ARG_WITH(
+ [python],
+ [AS_HELP_STRING([--without-python],[compile without python support])],
+@@ -98,10 +103,14 @@ else
+ fi
+ AC_SUBST(LDCONFIG)
+
+-pkg_modules="gtk+-2.0 >= 2.0.0 gthread-2.0"
+-PKG_CHECK_MODULES([GTK], [$pkg_modules])
+-AC_SUBST(GTK_CFLAGS)
+-AC_SUBST(GTK_LIBS)
++AS_IF(
++ [test "x$ENABLE_WMGUI" = xyes],
++ [pkg_modules="gtk+-2.0 >= 2.0.0 gthread-2.0" ;
++ PKG_CHECK_MODULES([GTK], [$pkg_modules])
++ AC_SUBST(GTK_CFLAGS)
++ AC_SUBST(GTK_LIBS)
++ AC_SUBST(WMGUI, wmgui)]
++)
+
+ AC_OUTPUT(
+ [Makefile]
+--
+1.8.5.2
+
+++ /dev/null
-From 6af678616531eb1f3d3d0a052313ef9d8125bac7 Mon Sep 17 00:00:00 2001
-From: "L. Donnie Smith" <donnie.smith@gatech.edu>
-Date: Thu, 4 Feb 2010 22:53:41 -0500
-Subject: [PATCH] fix link options for --as-needed (#90)
-
-also fix a couple of includes
----
- common/include/app.mak | 2 +-
- common/include/lib.mak.in | 4 ++--
- common/include/plugin.mak | 2 +-
- lswm/Makefile.in | 2 +-
- python/Makefile.in | 2 +-
- python/Wiimote.c | 2 +-
- python/cwiidmodule.c | 2 +-
- wmdemo/wmdemo.c | 1 +
- wmgui/Makefile.in | 2 +-
- wminput/Makefile.in | 2 +-
- wminput/main.c | 1 +
- 11 files changed, 12 insertions(+), 10 deletions(-)
-
-diff --git a/common/include/app.mak b/common/include/app.mak
-index f00cf12..c26d0ff 100644
---- a/common/include/app.mak
-+++ b/common/include/app.mak
-@@ -10,7 +10,7 @@ DEST_INST_DIR = $(ROOTDIR)$(INST_DIR)
- all: $(APP_NAME)
-
- $(APP_NAME): $(OBJECTS)
-- $(CC) -o $@ $(OBJECTS) $(LDFLAGS) $(LDLIBS)
-+ $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LDLIBS)
-
- install: $(APP_NAME)
- install -D $(APP_NAME) $(DEST_INST_DIR)/$(APP_NAME)
-diff --git a/common/include/lib.mak.in b/common/include/lib.mak.in
-index 5e81ff3..3afbb14 100644
---- a/common/include/lib.mak.in
-+++ b/common/include/lib.mak.in
-@@ -25,8 +25,8 @@ $(STATIC_LIB): $(OBJECTS)
- ar rcs $(STATIC_LIB) $(OBJECTS)
-
- $(SHARED_LIB): $(OBJECTS)
-- $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) $(LDLIBS) \
-- -o $(SHARED_LIB) $(OBJECTS)
-+ $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $(SHARED_LIB) \
-+ $(OBJECTS) $(LDLIBS)
-
- install: install_header install_static install_shared
-
-diff --git a/common/include/plugin.mak b/common/include/plugin.mak
-index 0f61502..a2d5c85 100644
---- a/common/include/plugin.mak
-+++ b/common/include/plugin.mak
-@@ -16,7 +16,7 @@ DEST_INST_DIR = $(INST_DIR)
- all: $(LIB_NAME)
-
- $(LIB_NAME): $(OBJECTS)
-- $(CC) -shared $(LDFLAGS) $(LDLIBS) -o $(LIB_NAME) $(OBJECTS)
-+ $(CC) -shared $(LDFLAGS) -o $(LIB_NAME) $(OBJECTS) $(LDLIBS)
-
- install: $(LIB_NAME)
- install -D $(LIB_NAME) $(DEST_INST_DIR)/$(LIB_NAME)
-diff --git a/lswm/Makefile.in b/lswm/Makefile.in
-index 79e8b5b..017104f 100644
---- a/lswm/Makefile.in
-+++ b/lswm/Makefile.in
-@@ -8,7 +8,7 @@ SOURCES = lswm.c
-
- CFLAGS += -I@top_builddir@/libcwiid
- LDFLAGS += -L@top_builddir@/libcwiid
--LDLIBS += -lcwiid
-+LDLIBS += -lcwiid -lbluetooth
- INST_DIR = @bindir@
-
- include $(COMMON)/include/app.mak
-diff --git a/python/Makefile.in b/python/Makefile.in
-index 0d7efdf..0ca57ca 100644
---- a/python/Makefile.in
-+++ b/python/Makefile.in
-@@ -7,7 +7,7 @@ ifdef ROOTDIR
- endif
-
- all:
-- $(PYTHON) setup.py build_ext $(DEBUGFLAGS) -I@top_builddir@/libcwiid -L@top_builddir@/libcwiid -lcwiid
-+ $(PYTHON) setup.py build_ext $(DEBUGFLAGS) -I@top_builddir@/libcwiid -L@top_builddir@/libcwiid -lcwiid -lbluetooth
-
- install:
- $(PYTHON) setup.py install --install-lib=${libdir}/python@PYTHON_VERSION@/site-packages $(SET_ROOT_DIR)
-diff --git a/python/Wiimote.c b/python/Wiimote.c
-index 794e7e2..523185e 100644
---- a/python/Wiimote.c
-+++ b/python/Wiimote.c
-@@ -24,7 +24,7 @@
- #include "structmember.h"
- #include <errno.h>
- #include <bluetooth/bluetooth.h>
--#include "cwiid.h"
-+#include <cwiid.h>
-
- #if (PY_VERSION_HEX < 0x02050000)
- #ifndef PY_SSIZE_T_MIN
-diff --git a/python/cwiidmodule.c b/python/cwiidmodule.c
-index f6a8f33..a01ed82 100644
---- a/python/cwiidmodule.c
-+++ b/python/cwiidmodule.c
-@@ -24,7 +24,7 @@
-
- #include <stdlib.h>
-
--#include "cwiid.h"
-+#include <cwiid.h>
- #include "structmember.h"
-
- /* externally defined types */
-diff --git a/wmdemo/wmdemo.c b/wmdemo/wmdemo.c
-index 70a25a1..b7aaa7f 100644
---- a/wmdemo/wmdemo.c
-+++ b/wmdemo/wmdemo.c
-@@ -2,6 +2,7 @@
- #include <stdio.h>
- #include <stdlib.h>
-
-+#include <bluetooth/bluetooth.h>
- #include <cwiid.h>
-
- /* This is a sample program written to demonstrate basic CWiid libwiimote
-diff --git a/wmgui/Makefile.in b/wmgui/Makefile.in
-index 41b205e..14d1c1e 100644
---- a/wmgui/Makefile.in
-+++ b/wmgui/Makefile.in
-@@ -8,7 +8,7 @@ SOURCES = main.c interface.c support.c
-
- CFLAGS += @GTK_CFLAGS@ -I@top_builddir@/libcwiid
- LDFLAGS += -L@top_builddir@/libcwiid
--LDLIBS += @GTK_LIBS@ -lm -lcwiid
-+LDLIBS += @GTK_LIBS@ -lcwiid -lbluetooth -lm
- INST_DIR = @bindir@
-
- include $(COMMON)/include/app.mak
-diff --git a/wminput/Makefile.in b/wminput/Makefile.in
-index 009d4d5..d3c3679 100644
---- a/wminput/Makefile.in
-+++ b/wminput/Makefile.in
-@@ -14,7 +14,7 @@ CFLAGS += -I@top_builddir@/libcwiid \
- -DWMINPUT_CONFIG_DIR=\"$(WMINPUT_CONFIG_DIR)\" \
- -DCWIID_PLUGINS_DIR=\"$(CWIID_PLUGINS_DIR)\"
-
--LDLIBS += -lcwiid -ldl
-+LDLIBS += -lcwiid -lbluetooth -ldl -lpthread
- LDFLAGS += -L@top_builddir@/libcwiid -rdynamic
- INST_DIR = @bindir@
-
-diff --git a/wminput/main.c b/wminput/main.c
-index c3a7445..bbc98d9 100644
---- a/wminput/main.c
-+++ b/wminput/main.c
-@@ -30,6 +30,7 @@
- #include <signal.h>
- #include <sys/types.h>
- #include <unistd.h>
-+#include <bluetooth/bluetooth.h>
-
- #include <cwiid.h>
-
---
-1.8.5.2
-
+++ /dev/null
-From c5dd7d4a9af5a7d8ead8ad26d9e5e0f8f8292d29 Mon Sep 17 00:00:00 2001
-From: "L. Donnie Smith" <donnie.smith@gatech.edu>
-Date: Sun, 30 Nov 2008 22:34:08 +0000
-Subject: [PATCH] Update for BlueZ changes.
-
-git-svn-id: http://abstrakraft.org/cwiid/svn/trunk@183 918edb2d-ff29-0410-9de2-eb38e7f22bc7
----
- libcwiid/bluetooth.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libcwiid/bluetooth.c b/libcwiid/bluetooth.c
-index 63284a8..e986f75 100644
---- a/libcwiid/bluetooth.c
-+++ b/libcwiid/bluetooth.c
-@@ -122,8 +122,8 @@ int cwiid_get_bdinfo_array(int dev_id, unsigned int timeout, int max_bdinfo,
- }
-
- /* timeout (10000) in milliseconds */
-- if (hci_remote_name(sock, &dev_list[i].bdaddr, BT_NAME_LEN,
-- (*bdinfo)[bdinfo_count].name, 10000)) {
-+ if (hci_read_remote_name(sock, &dev_list[i].bdaddr, BT_NAME_LEN,
-+ (*bdinfo)[bdinfo_count].name, 10000)) {
- cwiid_err(NULL, "Bluetooth name read error");
- err = 1;
- goto CODA;
---
-1.8.5.2
-
+++ /dev/null
-From af6bffb5b8b71e99e0f9bbbd2cf1fbd695a643c2 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 8 Dec 2012 13:32:40 +0100
-Subject: [PATCH 1/2] wmdemo: fix linking by adding the missing -lbluetooth to
- LDLIBS
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- wmdemo/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wmdemo/Makefile.in b/wmdemo/Makefile.in
-index 56aed58..1eccc02 100644
---- a/wmdemo/Makefile.in
-+++ b/wmdemo/Makefile.in
-@@ -8,7 +8,7 @@ SOURCES = wmdemo.c
-
- CFLAGS += -I@top_builddir@/libcwiid
- LDFLAGS += -L@top_builddir@/libcwiid
--LDLIBS += -lcwiid
-+LDLIBS += -lcwiid -lbluetooth
- INST_DIR = @bindir@
-
- include $(COMMON)/include/app.mak
---
-1.8.5.2
-
+++ /dev/null
-From dbb578450974db5decc24560da4aeaed838849a1 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Thu, 2 Jan 2014 14:03:07 +0100
-Subject: [PATCH 2/2] configure: make wmgui build optional
-
-So, make gtk-2 and glib2 dependencies optional (only needed by wmgui)
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- Makefile.in | 2 +-
- configure.ac | 17 +++++++++++++----
- 2 files changed, 14 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 6d3ac98..3d2fb45 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -3,7 +3,7 @@
- include @top_builddir@/defs.mak
-
- LIB_DIRS = libcwiid
--BIN_DIRS = wmgui wminput lswm
-+BIN_DIRS = @WMGUI@ wminput lswm
- DOC_DIRS = man doc
- ifdef PYTHON
- BIND_DIRS = python
-diff --git a/configure.ac b/configure.ac
-index 82ca3e1..d146cb6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -15,6 +15,11 @@ if test "$YACC" != "bison -y"; then
- AC_MSG_ERROR([bison not found])
- fi
-
-+AC_ARG_ENABLE(
-+ [wmgui],
-+ [AS_HELP_STRING([--disable-wmgui],[Do not build wmgui binary (also drop the gtk-2/glib2 dependency)])],
-+ [ENABLE_WMGUI="$enableval"],[ENABLE_WMGUI=yes])
-+
- AC_ARG_WITH(
- [python],
- [AS_HELP_STRING([--without-python],[compile without python support])],
-@@ -98,10 +103,14 @@ else
- fi
- AC_SUBST(LDCONFIG)
-
--pkg_modules="gtk+-2.0 >= 2.0.0 gthread-2.0"
--PKG_CHECK_MODULES([GTK], [$pkg_modules])
--AC_SUBST(GTK_CFLAGS)
--AC_SUBST(GTK_LIBS)
-+AS_IF(
-+ [test "x$ENABLE_WMGUI" = xyes],
-+ [pkg_modules="gtk+-2.0 >= 2.0.0 gthread-2.0" ;
-+ PKG_CHECK_MODULES([GTK], [$pkg_modules])
-+ AC_SUBST(GTK_CFLAGS)
-+ AC_SUBST(GTK_LIBS)
-+ AC_SUBST(WMGUI, wmgui)]
-+)
-
- AC_OUTPUT(
- [Makefile]
---
-1.8.5.2
-
--- /dev/null
+[PATCH] Don't include config.h when building helpers using the native compiler
+
+config.h contains settings for the cross compiler (most importantly
+32/64bit versions of functions), so don't include it when calling the
+native compiler to build the helpers.
+
+Otherwise we get build errors like:
+
+/usr/bin/gcc -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN -g -O2 -Wall -o mkinit mkinit.c
+In file included from /usr/include/sys/stat.h:107,
+ from /usr/include/fcntl.h:38,
+ from mkinit.c:50:
+/usr/include/bits/stat.h:117: error: redefinition of ‘struct stat’
+In file included from /usr/include/fcntl.h:38,
+ from mkinit.c:50:
+/usr/include/sys/stat.h:504: error: redefinition of ‘stat’
+/usr/include/sys/stat.h:455: note: previous definition of ‘stat’ was here
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/Makefile.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+Index: dash-0.5.5.1/src/Makefile.in
+===================================================================
+--- dash-0.5.5.1.orig/src/Makefile.in
++++ dash-0.5.5.1/src/Makefile.in
+@@ -165,7 +165,6 @@ COMMON_CPPFLAGS = \
+ AM_CFLAGS = $(COMMON_CFLAGS)
+ AM_CPPFLAGS = $(COMMON_CPPFLAGS)
+ AM_CFLAGS_FOR_BUILD = -g -O2 $(COMMON_CFLAGS)
+-AM_CPPFLAGS_FOR_BUILD = $(COMMON_CPPFLAGS)
+ COMPILE_FOR_BUILD = \
+ $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) \
+ $(AM_CFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
+++ /dev/null
-[PATCH] Don't include config.h when building helpers using the native compiler
-
-config.h contains settings for the cross compiler (most importantly
-32/64bit versions of functions), so don't include it when calling the
-native compiler to build the helpers.
-
-Otherwise we get build errors like:
-
-/usr/bin/gcc -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN -g -O2 -Wall -o mkinit mkinit.c
-In file included from /usr/include/sys/stat.h:107,
- from /usr/include/fcntl.h:38,
- from mkinit.c:50:
-/usr/include/bits/stat.h:117: error: redefinition of ‘struct stat’
-In file included from /usr/include/fcntl.h:38,
- from mkinit.c:50:
-/usr/include/sys/stat.h:504: error: redefinition of ‘stat’
-/usr/include/sys/stat.h:455: note: previous definition of ‘stat’ was here
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/Makefile.in | 1 -
- 1 file changed, 1 deletion(-)
-
-Index: dash-0.5.5.1/src/Makefile.in
-===================================================================
---- dash-0.5.5.1.orig/src/Makefile.in
-+++ dash-0.5.5.1/src/Makefile.in
-@@ -165,7 +165,6 @@ COMMON_CPPFLAGS = \
- AM_CFLAGS = $(COMMON_CFLAGS)
- AM_CPPFLAGS = $(COMMON_CPPFLAGS)
- AM_CFLAGS_FOR_BUILD = -g -O2 $(COMMON_CFLAGS)
--AM_CPPFLAGS_FOR_BUILD = $(COMMON_CPPFLAGS)
- COMPILE_FOR_BUILD = \
- $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) \
- $(AM_CFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
--- /dev/null
+Fix build failure with gcc 4.7+
+From bugtracker: http://sourceforge.net/p/dbus-cplusplus/patches/13/
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff --git a/include/dbus-c++/eventloop-integration.h b/include/dbus-c++/eventloop-integration.h
+index 1b0302e..3e44304 100644
+--- a/include/dbus-c++/eventloop-integration.h
++++ b/include/dbus-c++/eventloop-integration.h
+@@ -26,6 +26,7 @@
+ #define __DBUSXX_EVENTLOOP_INTEGRATION_H
+
+ #include <errno.h>
++#include <unistd.h>
+ #include "api.h"
+ #include "dispatcher.h"
+ #include "util.h"
--- /dev/null
+Use CXXFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD for the tools since expat
+may not be living in the default include & library path.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura libdbus-c++-0.9.0.orig/configure.ac libdbus-c++-0.9.0/configure.ac
+--- libdbus-c++-0.9.0.orig/configure.ac 2014-01-05 15:28:03.653886567 -0300
++++ libdbus-c++-0.9.0/configure.ac 2014-01-05 15:44:32.571172225 -0300
+@@ -65,7 +65,11 @@
+ AC_PROG_CXX
+
+ CXX_FOR_BUILD=${CXX_FOR_BUILD-${CXX}}
++CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
++LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
+ AC_SUBST(CXX_FOR_BUILD)
++AC_SUBST(CXXFLAGS_FOR_BUILD)
++AC_SUBST(LDFLAGS_FOR_BUILD)
+
+ AM_PROG_LIBTOOL
+
+diff -Nura libdbus-c++-0.9.0.orig/tools/Makefile.am libdbus-c++-0.9.0/tools/Makefile.am
+--- libdbus-c++-0.9.0.orig/tools/Makefile.am 2014-01-05 15:28:03.652886535 -0300
++++ libdbus-c++-0.9.0/tools/Makefile.am 2014-01-05 15:44:42.071482390 -0300
+@@ -1,6 +1,8 @@
+ # hacky, but ...
+
+ CXX = $(CXX_FOR_BUILD)
++CXXFLAGS = $(CXXFLAGS_FOR_BUILD)
++LDFLAGS = $(LDFLAGS_FOR_BUILD)
+
+ AM_CPPFLAGS = \
+ $(dbus_CFLAGS) \
+++ /dev/null
-Fix build failure with gcc 4.7+
-From bugtracker: http://sourceforge.net/p/dbus-cplusplus/patches/13/
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff --git a/include/dbus-c++/eventloop-integration.h b/include/dbus-c++/eventloop-integration.h
-index 1b0302e..3e44304 100644
---- a/include/dbus-c++/eventloop-integration.h
-+++ b/include/dbus-c++/eventloop-integration.h
-@@ -26,6 +26,7 @@
- #define __DBUSXX_EVENTLOOP_INTEGRATION_H
-
- #include <errno.h>
-+#include <unistd.h>
- #include "api.h"
- #include "dispatcher.h"
- #include "util.h"
+++ /dev/null
-Use CXXFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD for the tools since expat
-may not be living in the default include & library path.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura libdbus-c++-0.9.0.orig/configure.ac libdbus-c++-0.9.0/configure.ac
---- libdbus-c++-0.9.0.orig/configure.ac 2014-01-05 15:28:03.653886567 -0300
-+++ libdbus-c++-0.9.0/configure.ac 2014-01-05 15:44:32.571172225 -0300
-@@ -65,7 +65,11 @@
- AC_PROG_CXX
-
- CXX_FOR_BUILD=${CXX_FOR_BUILD-${CXX}}
-+CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
-+LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
- AC_SUBST(CXX_FOR_BUILD)
-+AC_SUBST(CXXFLAGS_FOR_BUILD)
-+AC_SUBST(LDFLAGS_FOR_BUILD)
-
- AM_PROG_LIBTOOL
-
-diff -Nura libdbus-c++-0.9.0.orig/tools/Makefile.am libdbus-c++-0.9.0/tools/Makefile.am
---- libdbus-c++-0.9.0.orig/tools/Makefile.am 2014-01-05 15:28:03.652886535 -0300
-+++ libdbus-c++-0.9.0/tools/Makefile.am 2014-01-05 15:44:42.071482390 -0300
-@@ -1,6 +1,8 @@
- # hacky, but ...
-
- CXX = $(CXX_FOR_BUILD)
-+CXXFLAGS = $(CXXFLAGS_FOR_BUILD)
-+LDFLAGS = $(LDFLAGS_FOR_BUILD)
-
- AM_CPPFLAGS = \
- $(dbus_CFLAGS) \
--- /dev/null
+From 6570e7afe1eebd64022b871b9ebd9a76be267f57 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Sun, 29 Jun 2014 16:27:49 +0200
+Subject: [PATCH] Be coherent in type usage
+
+- no need to use off_t because it is read from strtoul()
+- print unsigned int type correctly
+
+When built with _FILE_OFFSET_BITS=64, off_t becomes an long long int
+and was printed as an unsigned int which lead to a garbled output.
+
+Signed-off-by: Colin Didier <colin.didier@devialet.com>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ devmem2.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/devmem2.c b/devmem2.c
+index 7732ecb..7aa5c79 100644
+--- a/devmem2.c
++++ b/devmem2.c
+@@ -58,8 +58,7 @@
+ int main(int argc, char **argv) {
+ int fd;
+ void *map_base, *virt_addr;
+- unsigned long read_result, writeval;
+- off_t target;
++ unsigned long target, read_result, writeval;
+ int access_type = 'w';
+
+ if(argc < 2) {
+@@ -101,7 +100,7 @@ int main(int argc, char **argv) {
+ fprintf(stderr, "Illegal data type '%c'.\n", access_type);
+ exit(2);
+ }
+- printf("Value at address 0x%X (%p): 0x%X\n", target, virt_addr, read_result);
++ printf("Value at address 0x%lX (%p): 0x%X\n", target, virt_addr, read_result);
+ fflush(stdout);
+
+ if(argc > 3) {
+@@ -120,7 +119,7 @@ int main(int argc, char **argv) {
+ read_result = *((unsigned long *) virt_addr);
+ break;
+ }
+- printf("Written 0x%X; readback 0x%X\n", writeval, read_result);
++ printf("Written 0x%lX; readback 0x%X\n", writeval, read_result);
+ fflush(stdout);
+ }
+
+--
+2.0.0
+
+++ /dev/null
-From 6570e7afe1eebd64022b871b9ebd9a76be267f57 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sun, 29 Jun 2014 16:27:49 +0200
-Subject: [PATCH] Be coherent in type usage
-
-- no need to use off_t because it is read from strtoul()
-- print unsigned int type correctly
-
-When built with _FILE_OFFSET_BITS=64, off_t becomes an long long int
-and was printed as an unsigned int which lead to a garbled output.
-
-Signed-off-by: Colin Didier <colin.didier@devialet.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- devmem2.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/devmem2.c b/devmem2.c
-index 7732ecb..7aa5c79 100644
---- a/devmem2.c
-+++ b/devmem2.c
-@@ -58,8 +58,7 @@
- int main(int argc, char **argv) {
- int fd;
- void *map_base, *virt_addr;
-- unsigned long read_result, writeval;
-- off_t target;
-+ unsigned long target, read_result, writeval;
- int access_type = 'w';
-
- if(argc < 2) {
-@@ -101,7 +100,7 @@ int main(int argc, char **argv) {
- fprintf(stderr, "Illegal data type '%c'.\n", access_type);
- exit(2);
- }
-- printf("Value at address 0x%X (%p): 0x%X\n", target, virt_addr, read_result);
-+ printf("Value at address 0x%lX (%p): 0x%X\n", target, virt_addr, read_result);
- fflush(stdout);
-
- if(argc > 3) {
-@@ -120,7 +119,7 @@ int main(int argc, char **argv) {
- read_result = *((unsigned long *) virt_addr);
- break;
- }
-- printf("Written 0x%X; readback 0x%X\n", writeval, read_result);
-+ printf("Written 0x%lX; readback 0x%X\n", writeval, read_result);
- fflush(stdout);
- }
-
---
-2.0.0
-
--- /dev/null
+The udphdr structure has uh_* fields when _FAVOR_BSD is
+defined. Otherwise, the fields are just named source, dest, len and
+check. See <netinet/udp.h>.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: dhcpdump-1.8/dhcpdump.c
+===================================================================
+--- dhcpdump-1.8.orig/dhcpdump.c 2011-05-17 20:20:46.506980003 +0200
++++ dhcpdump-1.8/dhcpdump.c 2011-05-17 20:20:59.338979999 +0200
+@@ -163,10 +163,10 @@
+ strcpy(ip_origin, (u_char *)inet_ntoa(ip->ip_src));
+ strcpy(ip_destination, (u_char *)inet_ntoa(ip->ip_dst));
+
+- if (hmask && check_ch((u_char *)(sp + offset), ntohs(udp->uh_ulen)))
++ if (hmask && check_ch((u_char *)(sp + offset), ntohs(udp->len)))
+ return;
+
+- printdata((u_char *)(sp + offset), ntohs(udp->uh_ulen));
++ printdata((u_char *)(sp + offset), ntohs(udp->len));
+ }
+
+ // check for matching CHADDR (Peter Apian-Bennewitz <apian@ise.fhg.de>)
--- /dev/null
+Use the official _BSD_SOURCE feature test macro instead of the meaningless
+HAVE_STRSEP macro in order to detect the availability of strsep().
+
+This allows toolchains supporting strsep() to use it instead of the custom
+implementation from dhcpdump, which also avoids the following error with some
+toolchains:
+
+ In file included from dhcpdump.c:30:0:
+ dhcpdump.c: At top level:
+ strsep.c:65:23: error: register name not specified for ‘delim’
+ register const char *delim;
+ ^
+
+Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
+
+diff -Nrdup dhcpdump-1.8.orig/dhcpdump.c dhcpdump-1.8/dhcpdump.c
+--- dhcpdump-1.8.orig/dhcpdump.c 2008-06-24 05:26:52.000000000 +0200
++++ dhcpdump-1.8/dhcpdump.c 2011-05-31 19:22:15.987388498 +0200
+@@ -26,7 +26,7 @@
+ #include <regex.h>
+ #include "dhcp_options.h"
+
+-#ifndef HAVE_STRSEP
++#ifndef _BSD_SOURCE
+ #include "strsep.c"
+ #endif
+
+++ /dev/null
-The udphdr structure has uh_* fields when _FAVOR_BSD is
-defined. Otherwise, the fields are just named source, dest, len and
-check. See <netinet/udp.h>.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: dhcpdump-1.8/dhcpdump.c
-===================================================================
---- dhcpdump-1.8.orig/dhcpdump.c 2011-05-17 20:20:46.506980003 +0200
-+++ dhcpdump-1.8/dhcpdump.c 2011-05-17 20:20:59.338979999 +0200
-@@ -163,10 +163,10 @@
- strcpy(ip_origin, (u_char *)inet_ntoa(ip->ip_src));
- strcpy(ip_destination, (u_char *)inet_ntoa(ip->ip_dst));
-
-- if (hmask && check_ch((u_char *)(sp + offset), ntohs(udp->uh_ulen)))
-+ if (hmask && check_ch((u_char *)(sp + offset), ntohs(udp->len)))
- return;
-
-- printdata((u_char *)(sp + offset), ntohs(udp->uh_ulen));
-+ printdata((u_char *)(sp + offset), ntohs(udp->len));
- }
-
- // check for matching CHADDR (Peter Apian-Bennewitz <apian@ise.fhg.de>)
+++ /dev/null
-Use the official _BSD_SOURCE feature test macro instead of the meaningless
-HAVE_STRSEP macro in order to detect the availability of strsep().
-
-This allows toolchains supporting strsep() to use it instead of the custom
-implementation from dhcpdump, which also avoids the following error with some
-toolchains:
-
- In file included from dhcpdump.c:30:0:
- dhcpdump.c: At top level:
- strsep.c:65:23: error: register name not specified for ‘delim’
- register const char *delim;
- ^
-
-Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
-
-diff -Nrdup dhcpdump-1.8.orig/dhcpdump.c dhcpdump-1.8/dhcpdump.c
---- dhcpdump-1.8.orig/dhcpdump.c 2008-06-24 05:26:52.000000000 +0200
-+++ dhcpdump-1.8/dhcpdump.c 2011-05-31 19:22:15.987388498 +0200
-@@ -26,7 +26,7 @@
- #include <regex.h>
- #include "dhcp_options.h"
-
--#ifndef HAVE_STRSEP
-+#ifndef _BSD_SOURCE
- #include "strsep.c"
- #endif
-
--- /dev/null
+let people specify the number of runs on the command line
+
+Patch by Vivi Li <vivi.li@analog.com>
+
+--- a/dhry_1.c
++++ b/dhry_1.c
+@@ -66,7 +70,7 @@
+ /* end of variables for time measurement */
+
+
+-main ()
++main(int argc, char *argv[])
+ /*****/
+
+ /* main program, corresponds to procedures */
+@@ -101,6 +105,13 @@
+ /* Warning: With 16-Bit processors and Number_Of_Runs > 32000, */
+ /* overflow may occur for this array element. */
+
++ Number_Of_Runs = 0;
++ if ( argc == 2 ) {
++ if (atoi(argv[1]) > 0) {
++ Number_Of_Runs = atoi(argv[1]);
++ }
++ }
++
+ printf ("\n");
+ printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n");
+ printf ("\n");
+@@ -114,13 +125,17 @@
+ printf ("Program compiled without 'register' attribute\n");
+ printf ("\n");
+ }
+- printf ("Please give the number of runs through the benchmark: ");
+- {
+- int n;
+- scanf ("%d", &n);
+- Number_Of_Runs = n;
++
++ if (!Number_Of_Runs) {
++ printf ("Please give the number of runs through the benchmark: ");
++ fflush (stdout);
++ {
++ int n;
++ scanf ("%d", &n);
++ Number_Of_Runs = n;
++ }
++ printf ("\n");
+ }
+- printf ("\n");
+
+ printf ("Execution starts, %d runs through Dhrystone\n", Number_Of_Runs);
+
--- /dev/null
+Get HZ value from system rather than requiring via CPPFLAGS
+
+Patch by Robin Getz <rgetz@blackfin.uclinux.org>
+
+--- a/dhry.h
++++ b/dhry.h
+@@ -359,6 +359,10 @@
+ /* for "times" */
+ #endif
+
++#ifndef HZ
++#include <sys/param.h>
++#endif
++
+ #define Mic_secs_Per_Second 1000000.0
+ /* Berkeley UNIX C returns process times in seconds/HZ */
+
--- /dev/null
+trust the exit status of the program
+
+Patch by Robin Getz <rgetz@blackfin.uclinux.org>
+
+--- a/dhry_1.c
++++ b/dhry_1.c
+@@ -274,6 +289,7 @@
+ printf ("\n");
+ }
+
++ exit(0);
+ }
+
+
--- /dev/null
+get prototypes for malloc/exit/strcpy
+
+Patch by Mike Frysinger <vapier@gentoo.org>
+
+--- a/dhry.h
++++ b/dhry.h
+@@ -388,6 +388,8 @@
+ /* General definitions: */
+
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
+ /* for strcpy, strcmp */
+
+ #define Null 0
--- /dev/null
+Avoid collision with C library using NO_PROTOTYPES found in code already
+
+Patch by Robin Getz <rgetz@blackfin.uclinux.org>
+
+--- a/dhry_1.c
++++ b/dhry_1.c
+@@ -28,7 +28,9 @@
+ int Arr_1_Glob [50];
+ int Arr_2_Glob [50] [50];
+
++#ifndef NO_PROTOTYPES
+ extern char *malloc ();
++#endif
+ Enumeration Func_1 ();
+ /* forward declaration necessary since Enumeration may not simply be int */
+
+@@ -45,14 +45,18 @@
+
+ #ifdef TIMES
+ struct tms time_info;
++#ifndef NO_PROTOTYPES
+ extern int times ();
+ /* see library function "times" */
++#endif
+ #define Too_Small_Time 120
+ /* Measurements should last at least about 2 seconds */
+ #endif
+ #ifdef TIME
++#ifndef NO_PROTOTYPES
+ extern long time();
+ /* see library function "time" */
++#endif
+ #define Too_Small_Time 2
+ /* Measurements should last at least 2 seconds */
+ #endif
+++ /dev/null
-Get HZ value from system rather than requiring via CPPFLAGS
-
-Patch by Robin Getz <rgetz@blackfin.uclinux.org>
-
---- a/dhry.h
-+++ b/dhry.h
-@@ -359,6 +359,10 @@
- /* for "times" */
- #endif
-
-+#ifndef HZ
-+#include <sys/param.h>
-+#endif
-+
- #define Mic_secs_Per_Second 1000000.0
- /* Berkeley UNIX C returns process times in seconds/HZ */
-
+++ /dev/null
-let people specify the number of runs on the command line
-
-Patch by Vivi Li <vivi.li@analog.com>
-
---- a/dhry_1.c
-+++ b/dhry_1.c
-@@ -66,7 +70,7 @@
- /* end of variables for time measurement */
-
-
--main ()
-+main(int argc, char *argv[])
- /*****/
-
- /* main program, corresponds to procedures */
-@@ -101,6 +105,13 @@
- /* Warning: With 16-Bit processors and Number_Of_Runs > 32000, */
- /* overflow may occur for this array element. */
-
-+ Number_Of_Runs = 0;
-+ if ( argc == 2 ) {
-+ if (atoi(argv[1]) > 0) {
-+ Number_Of_Runs = atoi(argv[1]);
-+ }
-+ }
-+
- printf ("\n");
- printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n");
- printf ("\n");
-@@ -114,13 +125,17 @@
- printf ("Program compiled without 'register' attribute\n");
- printf ("\n");
- }
-- printf ("Please give the number of runs through the benchmark: ");
-- {
-- int n;
-- scanf ("%d", &n);
-- Number_Of_Runs = n;
-+
-+ if (!Number_Of_Runs) {
-+ printf ("Please give the number of runs through the benchmark: ");
-+ fflush (stdout);
-+ {
-+ int n;
-+ scanf ("%d", &n);
-+ Number_Of_Runs = n;
-+ }
-+ printf ("\n");
- }
-- printf ("\n");
-
- printf ("Execution starts, %d runs through Dhrystone\n", Number_Of_Runs);
-
+++ /dev/null
-trust the exit status of the program
-
-Patch by Robin Getz <rgetz@blackfin.uclinux.org>
-
---- a/dhry_1.c
-+++ b/dhry_1.c
-@@ -274,6 +289,7 @@
- printf ("\n");
- }
-
-+ exit(0);
- }
-
-
+++ /dev/null
-get prototypes for malloc/exit/strcpy
-
-Patch by Mike Frysinger <vapier@gentoo.org>
-
---- a/dhry.h
-+++ b/dhry.h
-@@ -388,6 +388,8 @@
- /* General definitions: */
-
- #include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
- /* for strcpy, strcmp */
-
- #define Null 0
+++ /dev/null
-Avoid collision with C library using NO_PROTOTYPES found in code already
-
-Patch by Robin Getz <rgetz@blackfin.uclinux.org>
-
---- a/dhry_1.c
-+++ b/dhry_1.c
-@@ -28,7 +28,9 @@
- int Arr_1_Glob [50];
- int Arr_2_Glob [50] [50];
-
-+#ifndef NO_PROTOTYPES
- extern char *malloc ();
-+#endif
- Enumeration Func_1 ();
- /* forward declaration necessary since Enumeration may not simply be int */
-
-@@ -45,14 +45,18 @@
-
- #ifdef TIMES
- struct tms time_info;
-+#ifndef NO_PROTOTYPES
- extern int times ();
- /* see library function "times" */
-+#endif
- #define Too_Small_Time 120
- /* Measurements should last at least about 2 seconds */
- #endif
- #ifdef TIME
-+#ifndef NO_PROTOTYPES
- extern long time();
- /* see library function "time" */
-+#endif
- #define Too_Small_Time 2
- /* Measurements should last at least 2 seconds */
- #endif
--- /dev/null
+---
+ src/df_knuckles/matrix.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: directfb-examples-1.2.0/src/df_knuckles/matrix.c
+===================================================================
+--- directfb-examples-1.2.0.orig/src/df_knuckles/matrix.c
++++ directfb-examples-1.2.0/src/df_knuckles/matrix.c
+@@ -19,7 +19,7 @@
+ static float Cosine[3600];
+ static float Sine[3600];
+
+-#define M_CLEAR(m) bzero(m, MATRIX_SIZE)
++#define M_CLEAR(m) memset(m, 0, MATRIX_SIZE)
+ #define M_IDENTITY(m) memcpy(m, IdentityMatrix, MATRIX_SIZE)
+
+ static void MultiplyMatrix(float *A, float *B)
+++ /dev/null
----
- src/df_knuckles/matrix.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: directfb-examples-1.2.0/src/df_knuckles/matrix.c
-===================================================================
---- directfb-examples-1.2.0.orig/src/df_knuckles/matrix.c
-+++ directfb-examples-1.2.0/src/df_knuckles/matrix.c
-@@ -19,7 +19,7 @@
- static float Cosine[3600];
- static float Sine[3600];
-
--#define M_CLEAR(m) bzero(m, MATRIX_SIZE)
-+#define M_CLEAR(m) memset(m, 0, MATRIX_SIZE)
- #define M_IDENTITY(m) memcpy(m, IdentityMatrix, MATRIX_SIZE)
-
- static void MultiplyMatrix(float *A, float *B)
--- /dev/null
+The archive of directfb-1.6.3 is still missing some header files against
+the tagged git tree of directfb. The following files are missing.
+
+gfxdrivers/davinci/davinci_c64x.h
+gfxdrivers/davinci/davincifb.h
+gfxdrivers/davinci/davinci_gfxdriver.h
+tests/voodoo/voodoo_test.h
+
+The headers of course are needed to be able to build every module of
+directfb. The headers are taken from the git tree of directfb
+http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=38b784549bc59bb07c58bb29667cb658695d39a7,
+tag DIRECTFB_1_6_3, SHA1ID 38b784549bc59bb07c58bb29667cb658695d39a7.
+
+Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
+
+diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davinci_c64x.h directfb-1.6.3/gfxdrivers/davinci/davinci_c64x.h
+--- directfb-1.6.3-orig/gfxdrivers/davinci/davinci_c64x.h 1970-01-01 01:00:00.000000000 +0100
++++ directfb-1.6.3/gfxdrivers/davinci/davinci_c64x.h 2013-04-07 21:33:25.928530187 +0200
+@@ -0,0 +1,935 @@
++/*
++ TI Davinci driver - C64X+ DSP Library
++
++ (c) Copyright 2008 directfb.org
++ (c) Copyright 2007 Telio AG
++
++ Written by Denis Oliver Kropp <dok@directfb.org> and
++ Olaf Dreesen <olaf@directfb.org>.
++
++ All rights reserved.
++
++ This library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU General Public License
++ version 2 as published by the Free Software Foundation.
++
++ This library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ General Public License for more details.
++
++ You should have received a copy of the GNU General Public
++ License along with this library; if not, write to the
++ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++*/
++
++#ifndef __DAVINCI_C64X_H__
++#define __DAVINCI_C64X_H__
++
++#include <unistd.h>
++
++#include <directfb.h>
++
++#include <direct/messages.h>
++#include <direct/trace.h>
++
++#include <linux/c64x.h>
++
++#define mb() __asm__ __volatile__ ("" : : : "memory")
++
++/**********************************************************************************************************************/
++
++typedef struct {
++ int magic;
++
++ int fd;
++ c64xTaskControl *ctl;
++ void *mem;
++
++ c64xTask *QueueL;
++} DavinciC64x;
++
++typedef struct {
++ int magic;
++ unsigned int max_tasks;
++ unsigned int num_tasks;
++ c64xTask *tasks;
++} DavinciC64xTasks;
++
++typedef enum {
++ C64X_TEF_NONE = 0x0000,
++ C64X_TEF_RESET = 0x0001
++} DavinciC64xEmitFlags;
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_open ( DavinciC64x *c64x );
++
++DFBResult davinci_c64x_close ( DavinciC64x *c64x );
++
++DFBResult davinci_c64x_wait_low( DavinciC64x *c64x );
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_tasks_init ( DavinciC64xTasks *tasks,
++ unsigned int size );
++
++DFBResult davinci_c64x_tasks_destroy( DavinciC64xTasks *tasks );
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_emit_tasks( DavinciC64x *c64x,
++ DavinciC64xTasks *tasks,
++ DavinciC64xEmitFlags flags );
++
++/**********************************************************************************************************************/
++
++static const char *state_names[] = { "DONE", "ERROR", "TODO", "RUNNING" };
++
++static inline c64xTask *
++c64x_get_task( DavinciC64x *c64x )
++{
++ c64xTaskControl *ctl = c64x->ctl;
++ uint32_t idx = ctl->QL_arm;
++ uint32_t next = (idx + 1) & C64X_QUEUE_MASK;
++ c64xTask *task = &c64x->QueueL[idx];
++ int loops = 0;
++ uint32_t idle = 0;
++
++ /* Wait for the entry (and next) to be processed by the DSP (rare case). */
++ while (task->c64x_flags & C64X_FLAG_TODO || ctl->QL_dsp == next) {
++ if (loops > 666 || (idle && ctl->idlecounter - idle > 666)) {
++ c64xTask *dsp_task = &c64x->QueueL[ctl->QL_dsp];
++
++ D_PERROR( "Davinci/C64X+: Blocked! [DSP %d / %d (%s), ARM %d / %d (%s)]\n",
++ ctl->QL_dsp,
++ (dsp_task->c64x_function >> 2) & 0x3fff,
++ state_names[dsp_task->c64x_function & 3],
++ ctl->QL_arm,
++ (task->c64x_function >> 2) & 0x3fff,
++ state_names[task->c64x_function & 3] );
++
++ break;
++ }
++
++ idle = ctl->idlecounter;
++
++ /* Queue is full, waiting 10-20ms should not be too bad. */
++ if (loops++ > 10)
++ usleep( 5000 );
++ }
++
++ return task;
++}
++
++static inline void
++c64x_submit_task( DavinciC64x *c64x, c64xTask *task )
++{
++ c64xTaskControl *ctl = c64x->ctl;
++ uint32_t idx = ctl->QL_arm;
++ uint32_t next = (idx + 1) & C64X_QUEUE_MASK;
++
++ mb();
++
++ ctl->QL_arm = next;
++
++ mb();
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_wb_inv_range( DavinciC64x *c64x,
++ unsigned long start,
++ u32 length,
++ u32 func )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = start;
++ task->c64x_arg[1] = length;
++ task->c64x_arg[2] = func;
++
++ task->c64x_function = C64X_WB_INV_RANGE | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_write_back_all( DavinciC64x *c64x )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_function = C64X_WRITE_BACK_ALL | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_load_block__L( DavinciC64xTasks *tasks,
++ unsigned long words,
++ u32 num,
++ u32 flags )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = words;
++ task->c64x_arg[1] = num;
++ task->c64x_arg[2] = flags;
++
++ task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_load_block( DavinciC64x *c64x,
++ unsigned long words,
++ u32 num,
++ u32 flags )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = words;
++ task->c64x_arg[1] = num;
++ task->c64x_arg[2] = flags;
++
++ task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fetch_uyvy( DavinciC64x *c64x,
++ unsigned long dest,
++ unsigned long source,
++ u32 pitch,
++ u32 height,
++ u32 flags )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = source;
++ task->c64x_arg[2] = pitch;
++ task->c64x_arg[3] = height;
++ task->c64x_arg[4] = flags;
++
++ task->c64x_function = C64X_FETCH_UYVY | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_mc( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long source0,
++ unsigned long source1,
++ u32 spitch,
++ u32 height,
++ int func )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = dpitch;
++ task->c64x_arg[2] = source0;
++ task->c64x_arg[3] = source1;
++ task->c64x_arg[4] = spitch;
++ task->c64x_arg[5] = height;
++
++ task->c64x_function = func | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_idct_uyvy_16x16__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 pitch,
++ u32 flags )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = flags;
++
++ task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_idct_uyvy_16x16( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 pitch,
++ u32 flags )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = flags;
++
++ task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_mc_uyvy_16x16__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 pitch,
++ u32 flags )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = flags;
++
++ task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_mc_uyvy_16x16( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 pitch,
++ u32 flags )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = flags;
++
++ task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_sum_uyvy_16x16__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 pitch,
++ u32 flags )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = flags;
++
++ task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_sum_uyvy_16x16( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 pitch,
++ u32 flags )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = flags;
++
++ task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dva_begin_frame__L( DavinciC64xTasks *tasks,
++ u32 pitch,
++ unsigned long current,
++ unsigned long past,
++ unsigned long future,
++ u32 flags )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = pitch;
++ task->c64x_arg[1] = current;
++ task->c64x_arg[2] = past;
++ task->c64x_arg[3] = future;
++ task->c64x_arg[4] = flags;
++
++ task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dva_begin_frame( DavinciC64x *c64x,
++ u32 pitch,
++ unsigned long current,
++ unsigned long past,
++ unsigned long future,
++ u32 flags )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = pitch;
++ task->c64x_arg[1] = current;
++ task->c64x_arg[2] = past;
++ task->c64x_arg[3] = future;
++ task->c64x_arg[4] = flags;
++
++ task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dva_motion_block__L( DavinciC64xTasks *tasks,
++ unsigned long macroblock )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = macroblock;
++
++ task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dva_motion_block( DavinciC64x *c64x,
++ unsigned long macroblock )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = macroblock;
++
++ task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_dva_idct( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 pitch,
++ unsigned long source )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = source;
++
++ task->c64x_function = C64X_DVA_IDCT | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_put_uyvy_16x16( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 pitch,
++ unsigned long source,
++ u32 flags )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = source;
++ task->c64x_arg[3] = flags;
++
++ task->c64x_function = C64X_PUT_UYVY_16x16 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dither_argb__L( DavinciC64xTasks *tasks,
++ unsigned long dst_rgb,
++ unsigned long dst_alpha,
++ u32 dst_pitch,
++ unsigned long source,
++ u32 src_pitch,
++ u32 width,
++ u32 height )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dst_rgb;
++ task->c64x_arg[1] = dst_alpha;
++ task->c64x_arg[2] = dst_pitch;
++ task->c64x_arg[3] = source;
++ task->c64x_arg[4] = src_pitch;
++ task->c64x_arg[5] = width;
++ task->c64x_arg[6] = height;
++
++ task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dither_argb( DavinciC64x *c64x,
++ unsigned long dst_rgb,
++ unsigned long dst_alpha,
++ u32 dst_pitch,
++ unsigned long source,
++ u32 src_pitch,
++ u32 width,
++ u32 height )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dst_rgb;
++ task->c64x_arg[1] = dst_alpha;
++ task->c64x_arg[2] = dst_pitch;
++ task->c64x_arg[3] = source;
++ task->c64x_arg[4] = src_pitch;
++ task->c64x_arg[5] = width;
++ task->c64x_arg[6] = height;
++
++ task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fill_16__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 pitch,
++ u32 width,
++ u32 height,
++ u32 value )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = width;
++ task->c64x_arg[3] = height;
++ task->c64x_arg[4] = value;
++
++ task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_fill_16( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 pitch,
++ u32 width,
++ u32 height,
++ u32 value )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = width;
++ task->c64x_arg[3] = height;
++ task->c64x_arg[4] = value;
++
++ task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fill_32__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 pitch,
++ u32 width,
++ u32 height,
++ u32 value )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = width;
++ task->c64x_arg[3] = height;
++ task->c64x_arg[4] = value;
++
++ task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_fill_32( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 pitch,
++ u32 width,
++ u32 height,
++ u32 value )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = pitch;
++ task->c64x_arg[2] = width;
++ task->c64x_arg[3] = height;
++ task->c64x_arg[4] = value;
++
++ task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_16__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = dpitch;
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = spitch;
++ task->c64x_arg[4] = width;
++ task->c64x_arg[5] = height;
++
++ task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_16( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = dpitch;
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = spitch;
++ task->c64x_arg[4] = width;
++ task->c64x_arg[5] = height;
++
++ task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_32__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = dpitch;
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = spitch;
++ task->c64x_arg[4] = width;
++ task->c64x_arg[5] = height;
++
++ task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_32( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = dpitch;
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = spitch;
++ task->c64x_arg[4] = width;
++ task->c64x_arg[5] = height;
++
++ task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_stretch_32__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 dw,
++ u32 dh,
++ u32 sw,
++ u32 sh,
++ const DFBRegion *clip )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = src;
++ task->c64x_arg[2] = dpitch | (spitch << 16);
++ task->c64x_arg[3] = dh | (dw << 16);
++ task->c64x_arg[4] = sh | (sw << 16);
++ task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
++ task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
++
++ if (sw > dw && sh > dh)
++ task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
++ else
++ task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_stretch_32( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 dw,
++ u32 dh,
++ u32 sw,
++ u32 sh,
++ const DFBRegion *clip )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = src;
++ task->c64x_arg[2] = dpitch | (spitch << 16);
++ task->c64x_arg[3] = dh | (dw << 16);
++ task->c64x_arg[4] = sh | (sw << 16);
++ task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
++ task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
++
++ if (sw > dw && sh > dh)
++ task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
++ else
++ task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_blend_32__L( DavinciC64xTasks *tasks,
++ u32 sub_func,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height,
++ u32 argb,
++ u8 alpha )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = dpitch;
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = spitch;
++ task->c64x_arg[4] = width | (height << 16);
++ task->c64x_arg[5] = argb;
++ task->c64x_arg[6] = alpha;
++
++ task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_blend_32( DavinciC64x *c64x,
++ u32 sub_func,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height,
++ u32 argb,
++ u8 alpha )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = dpitch;
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = spitch;
++ task->c64x_arg[4] = width | (height << 16);
++ task->c64x_arg[5] = argb;
++ task->c64x_arg[6] = alpha;
++
++ task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_keyed_16__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height,
++ u32 key,
++ u32 mask )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = width;
++ task->c64x_arg[4] = height;
++ task->c64x_arg[5] = key;
++ task->c64x_arg[6] = mask;
++
++ task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_keyed_16( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height,
++ u32 key,
++ u32 mask )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = width;
++ task->c64x_arg[4] = height;
++ task->c64x_arg[5] = key;
++ task->c64x_arg[6] = mask;
++
++ task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_keyed_32__L( DavinciC64xTasks *tasks,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height,
++ u32 key,
++ u32 mask )
++{
++ c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = width;
++ task->c64x_arg[4] = height;
++ task->c64x_arg[5] = key;
++ task->c64x_arg[6] = mask;
++
++ task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
++
++ tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_keyed_32( DavinciC64x *c64x,
++ unsigned long dest,
++ u32 dpitch,
++ unsigned long src,
++ u32 spitch,
++ u32 width,
++ u32 height,
++ u32 key,
++ u32 mask )
++{
++ c64xTask *task = c64x_get_task( c64x );
++
++ task->c64x_arg[0] = dest;
++ task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++ task->c64x_arg[2] = src;
++ task->c64x_arg[3] = width;
++ task->c64x_arg[4] = height;
++ task->c64x_arg[5] = key;
++ task->c64x_arg[6] = mask;
++
++ task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
++
++ c64x_submit_task( c64x, task );
++}
++
++#endif
++
+diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davincifb.h directfb-1.6.3/gfxdrivers/davinci/davincifb.h
+--- directfb-1.6.3-orig/gfxdrivers/davinci/davincifb.h 1970-01-01 01:00:00.000000000 +0100
++++ directfb-1.6.3/gfxdrivers/davinci/davincifb.h 2013-04-07 21:33:21.488622184 +0200
+@@ -0,0 +1,581 @@
++/*
++ * Copyright (C) 2006 Texas Instruments Inc
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option)any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * File: davincifb.h
++ */
++
++#ifndef DAVINVI_VPBE_H
++#define DAVINVI_VPBE_H
++
++/* include Linux files */
++#include <linux/fb.h>
++
++/* define the custom FBIO_WAITFORVSYNC ioctl */
++#define FBIO_WAITFORVSYNC _IOW('F', 0x20, u_int32_t)
++#define FBIO_SETATTRIBUTE _IOW('F', 0x21, struct fb_fillrect)
++
++/* Backported IOCTLS. */
++#define FBIO_SETPOSX _IOW('F', 0x22, u_int32_t)
++#define FBIO_SETPOSY _IOW('F', 0x23, u_int32_t)
++#define FBIO_SETZOOM _IOW('F', 0x24, struct zoom_params)
++#define FBIO_GETSTD _IOR('F', 0x25, u_int32_t)
++#define FBIO_RESIZER _IOW('F', 0x26, struct vpfe_resizer_params)
++#define FBIO_SYNC _IOW('F', 0x27, u_int32_t)
++
++typedef struct zoom_params {
++ u_int32_t window_id;
++ u_int32_t zoom_h;
++ u_int32_t zoom_v;
++} zoom_params_t;
++
++typedef struct vpfe_resizer_params
++{
++ u_int32_t rsz_cnt; //busy-lock
++ u_int32_t out_size; //busy-lock
++ u_int32_t in_start; //busy-lock
++ u_int32_t in_size; //busy-lock
++ u_int32_t sdr_inadd; //shadowed
++ u_int32_t sdr_inoff; //shadowed
++ u_int32_t sdr_outadd; //shadowed
++ u_int32_t sdr_outoff; //shadowed
++ u_int32_t hfilt[16]; //busy-lock
++ u_int32_t vfilt[16]; //busy-lock
++ u_int32_t yenh; //busy-lock
++} vpfe_resizer_params_t;
++
++typedef struct fb_set_start {
++ int offset; /* offset from smem_start */
++ unsigned long physical; /* absolute physical address when offset < 0 */
++
++ u_int64_t sync; /* input: target sync counter for change or 0 for no sync at all,
++ output: sync counter of actual change or 0 if still pending */
++} fb_set_start_t;
++
++
++#ifdef _IOC_TYPECHECK
++#undef _IOC_TYPECHECK
++#define _IOC_TYPECHECK(x) (sizeof(x))
++#endif
++
++#define RAM_CLUT_SIZE 256*3
++#define FBIO_ENABLE_DISABLE_WIN \
++ _IOW('F', 0x30, unsigned char)
++#define FBIO_SET_BITMAP_BLEND_FACTOR \
++ _IOW('F', 0x31, vpbe_bitmap_blend_params_t)
++#define FBIO_SET_BITMAP_WIN_RAM_CLUT \
++ _IOW('F', 0x32, unsigned char)*RAM_CLUT_SIZE)
++#define FBIO_ENABLE_DISABLE_ATTRIBUTE_WIN \
++ _IOW('F', 0x33, unsigned int)
++#define FBIO_GET_BLINK_INTERVAL \
++ _IOR('F', 0x34, vpbe_blink_option_t)
++#define FBIO_SET_BLINK_INTERVAL \
++ _IOW('F', 0x35, vpbe_blink_option_t)
++#define FBIO_GET_VIDEO_CONFIG_PARAMS \
++ _IOR('F', 0x36, vpbe_video_config_params_t)
++#define FBIO_SET_VIDEO_CONFIG_PARAMS \
++ _IOW('F', 0x37, vpbe_video_config_params_t)
++#define FBIO_GET_BITMAP_CONFIG_PARAMS \
++ _IOR('F', 0x38, vpbe_bitmap_config_params_t)
++#define FBIO_SET_BITMAP_CONFIG_PARAMS \
++ _IOW('F', 0x39, vpbe_bitmap_config_params_t)
++#define FBIO_SET_DCLK \
++ _IOW('F', 0x40, vpbe_dclk_t)
++#define FBIO_SET_INTERFACE \
++ _IOW('F', 0x41, unsigned char)
++#define FBIO_GET_INTERFACE \
++ _IOR('F', 0x42, unsigned char)
++#define FBIO_QUERY_TIMING \
++ _IOWR('F', 0x43, struct vpbe_mode_info)
++#define FBIO_SET_TIMING \
++ _IOW('F', 0x44, struct vpbe_fb_videomode)
++#define FBIO_GET_TIMING \
++ _IOR('F', 0x45, struct vpbe_fb_videomode)
++#define FBIO_SET_VENC_CLK_SOURCE \
++ _IOW('F', 0x46, unsigned char)
++#define FBIO_SET_BACKG_COLOR \
++ _IOW('F', 0x47, vpbe_backg_color_t)
++#define FBIO_ENABLE_DISPLAY \
++ _IOW('F', 0x48, unsigned char)
++#define FBIO_SETPOS \
++ _IOW('F', 0x49, u_int32_t)
++#define FBIO_SET_CURSOR \
++ _IOW('F', 0x50, struct fb_cursor)
++#define FBIO_SET_START \
++ _IOW('F', 0x66, struct fb_set_start)
++
++/*
++ * Defines and Constants
++ */
++#ifdef __KERNEL__
++#define DAVINCIFB_DEVICE "davincifb"
++#define DAVINCIFB_DRIVER "davincifb"
++
++#define MULTIPLE_BUFFERING 1
++
++#ifdef MULTIPLE_BUFFERING
++#define DOUBLE_BUF 2
++#define TRIPLE_BUF 3
++#else
++#define DOUBLE_BUF 1
++#define TRIPLE_BUF 1
++#endif
++
++/* usage: if (is_win(info->fix.id, OSD0)) ... */
++#define is_win(name, x) ((strcmp(name, x ## _FBNAME) == 0) ? 1 : 0)
++
++/*
++ * display controller register I/O routines
++ */
++u32 dispc_reg_in(u32 offset);
++u32 dispc_reg_out(u32 offset, u32 val);
++u32 dispc_reg_merge(u32 offset, u32 val, u32 mask);
++
++#endif /*__KERNEL__*/
++
++/* Error return codes */
++#define VPBE_INVALID_PARA_VALUE 700
++#define VPBE_WRONG_WINDOW_ID 701
++#define VPBE_CURRENTLY_IN_REQUIRED_MODE 702
++#define VPBE_INSUFFICIENT_CLUT_VALUES 703
++#define VPBE_CLUT_WRITE_TIMEOUT 704
++#define VPBE_VID0_BUF_ADR_NULL 705
++#define VPBE_WINDOW_NOT_DISABLED 706
++#define VPBE_WINDOW_NOT_ENABLED 707
++
++#ifndef __KERNEL__
++/* Window ID definations */
++#define OSD0 0
++#define VID0 1
++#define OSD1 2
++#define VID1 3
++#endif
++
++/* There are 4 framebuffers, each represented by an fb_info and
++ * a dm_win_info structure */
++#define OSD0_FBNAME "dm_osd0_fb"
++#define OSD1_FBNAME "dm_osd1_fb"
++#define VID0_FBNAME "dm_vid0_fb"
++#define VID1_FBNAME "dm_vid1_fb"
++
++/* FIXME: Digital LCD RGB matrix coefficients */
++#define DLCD_DGY_VAL 0
++#define DLCD_DRV_VAL 0
++#define DLCD_DGU_VAL 0
++#define DLCD_DBU_VAL 0
++
++/* Defines for bitmap format */
++#define VPBE_BITMAP_BIT_1 1
++#define VPBE_BITMAP_BIT_2 2
++#define VPBE_BITMAP_BIT_4 4
++#define VPBE_BITMAP_BIT_8 8
++#define VPBE_BITMAP_RGB565 16
++#define VPBE_VIDEO_YUV422 16
++#define VPBE_VIDEO_RGB888 24
++
++/* Defines foe cursor parameter validation*/
++#define MAX_CURSOR_WIDTH 0x3FF
++#define MAX_CURSOR_HEIGHT 0x1FF
++#define MAX_CURSOR_LINEWIDTH 7
++
++#define BASEX 0x80
++#define BASEY 0x12
++#define BASEX_DLCD 0x59
++#define BASEY_DLCD 0x22
++
++/*
++ * Enumerations
++ */
++/* Enum for blending factor */
++typedef enum vpbe_blend_factor {
++ OSD_CONTRIBUTION_ZERO = 0,
++ OSD_CONTRIBUTION_1_BY_8 = 1,
++ OSD_CONTRIBUTION_2_BY_8 = 2,
++ OSD_CONTRIBUTION_3_BY_8 = 3,
++ OSD_CONTRIBUTION_4_BY_8 = 4,
++ OSD_CONTRIBUTION_5_BY_8 = 5,
++ OSD_CONTRIBUTION_6_BY_8 = 6,
++ OSD_CONTRIBUTION_ONE = 7
++} vpbe_blend_factor_t;
++
++/* Enum for Boolean variables */
++typedef enum {
++ SET_0 = 0,
++ SET_1 = 1
++} CB_CR_ORDER, ATTRIBUTE, ROM_RAM_CLUT;
++
++/* Defines for Display Interface */
++#define PRGB 0
++#define COMPOSITE 1
++#define SVIDEO 2
++#define COMPONENT 3
++#define RGB 4
++#define YCC16 5
++#define YCC8 6
++#define SRGB 7
++#define EPSON 8
++#define CASIO1G 9
++#define UDISP 10
++#define STN 11
++#define VPBE_MAX_INTERFACES 12
++
++/* Defines for Display Mode */
++#define LCD 0
++#define NTSC 1
++#define PAL 2
++#define P525 3
++#define P625 4
++
++#define DEFAULT_MODE 0
++#define P480 0
++#define P400 1
++#define P350 2
++#define NON_EXISTING_MODE 255
++/* Enable/Disable enum */
++typedef enum {
++ VPBE_DISABLE = 0,
++ VPBE_ENABLE = 1
++} ATTENUATION, TRANSPARENCY, EXPANSION, BLINKING;
++
++typedef enum clk_source {
++ CLK_SOURCE_CLK27 = 0,
++ CLK_SOURCE_CLK54 = 1,
++ CLK_SOURCE_VPBECLK = 2
++} CLK_SOURCE;
++
++/*
++ * Structures and Union Definitions
++ */
++
++/* Structure for transparency and the blending factor for the bitmap window */
++typedef struct vpbe_bitmap_blend_params {
++ unsigned int colorkey; /* color key to be blend */
++ unsigned int enable_colorkeying; /* enable color keying */
++ unsigned int bf; /* valid range from 0 to 7 only. */
++} vpbe_bitmap_blend_params_t;
++
++/* Structure for window expansion */
++typedef struct vpbe_win_expansion {
++ EXPANSION horizontal;
++ EXPANSION vertical; /* 1: Enable 0:disable */
++} vpbe_win_expansion_t;
++
++/* Structure for OSD window blinking options */
++typedef struct vpbe_blink_option {
++ BLINKING blinking; /* 1: Enable blinking 0: Disable */
++ unsigned int interval; /* Valid only if blinking is 1 */
++} vpbe_blink_option_t;
++
++/* Structure for DCLK parameters */
++typedef struct vpbe_dclk {
++ unsigned char dclk_pattern_width;
++ unsigned int dclk_pattern0;
++ unsigned int dclk_pattern1;
++ unsigned int dclk_pattern2;
++ unsigned int dclk_pattern3;
++} vpbe_dclk_t;
++
++/* Structure for display format */
++typedef struct vpbe_display_format {
++ unsigned char interface; /* Output interface type */
++ unsigned char mode; /* output mode */
++} vpbe_display_format_t;
++
++/* Structure for background color */
++typedef struct vpbe_backg_color {
++ unsigned char clut_select; /* 2: RAM CLUT 1:ROM1 CLUT 0:ROM0 CLUT */
++ unsigned char color_offset; /* index of color */
++} vpbe_backg_color_t;
++
++/* Structure for Video window configurable parameters */
++typedef struct vpbe_video_config_params {
++ CB_CR_ORDER cb_cr_order; /*Cb/Cr order in input data for a pixel. */
++ /* 0: cb cr 1: cr cb */
++ vpbe_win_expansion_t exp_info; /* HZ/VT Expansion enable disable */
++} vpbe_video_config_params_t;
++
++/*Union of structures giving the CLUT index for the 1, 2, 4 bit bitmap values.*/
++typedef union vpbe_clut_idx {
++ struct _for_4bit_bimap {
++ unsigned char bitmap_val_0;
++ unsigned char bitmap_val_1;
++ unsigned char bitmap_val_2;
++ unsigned char bitmap_val_3;
++ unsigned char bitmap_val_4;
++ unsigned char bitmap_val_5;
++ unsigned char bitmap_val_6;
++ unsigned char bitmap_val_7;
++ unsigned char bitmap_val_8;
++ unsigned char bitmap_val_9;
++ unsigned char bitmap_val_10;
++ unsigned char bitmap_val_11;
++ unsigned char bitmap_val_12;
++ unsigned char bitmap_val_13;
++ unsigned char bitmap_val_14;
++ unsigned char bitmap_val_15;
++ } for_4bit_bimap;
++ struct _for_2bit_bimap {
++ unsigned char bitmap_val_0;
++ unsigned char dummy0[4];
++ unsigned char bitmap_val_1;
++ unsigned char dummy1[4];
++ unsigned char bitmap_val_2;
++ unsigned char dummy2[4];
++ unsigned char bitmap_val_3;
++ } for_2bit_bimap;
++ struct _for_1bit_bimap {
++ unsigned char bitmap_val_0;
++ unsigned char dummy0[14];
++ unsigned char bitmap_val_1;
++ } for_1bit_bimap;
++} vpbe_clut_idx_t;
++
++/* Structure for bitmap window configurable parameters */
++typedef struct vpbe_bitmap_config_params {
++ /* Only for bitmap width = 1,2,4 bits */
++ vpbe_clut_idx_t clut_idx;
++ /* Attenuation value for YUV o/p for bitmap window */
++ unsigned char attenuation_enable;
++ /* 0: ROM DM270, 1:ROM DM320, 2:RAM CLUT */
++ unsigned char clut_select;
++} vpbe_bitmap_config_params_t;
++
++/* Unioun for video/OSD configuration parameters */
++typedef union vpbe_conf_params {
++
++ struct vpbe_video_params {
++ CB_CR_ORDER cb_cr_order;
++ /* HZ/VT Expansion enable disable */
++ vpbe_win_expansion_t exp_info;
++ } video_params;
++
++ struct vpbe_bitmap_params {
++ /* Attenuation value for YUV o/p */
++ ATTENUATION attenuation_enable;
++ /* 0: ROM DM270, 1: ROM DM320, 2:RAM CLUT */
++ unsigned char clut_select;
++ /* Only for bitmap width = 1,2,4 bits */
++ vpbe_clut_idx_t clut_idx;
++ /* 0: OSD window is bitmap window */
++ /* 1: OSD window is attribute window */
++ ATTRIBUTE enable_attribute;
++ /* To hold bps value.
++ Used to switch back from attribute to bitmap. */
++ unsigned int stored_bits_per_pixel;
++ /* Blending information */
++ vpbe_bitmap_blend_params_t blend_info;
++ /* OSD Blinking information */
++ vpbe_blink_option_t blink_info;
++ } bitmap_params;
++
++} vpbe_conf_params_t;
++
++typedef struct vpbe_video_params vpbe_video_params_t;
++typedef struct vpbe_bitmap_params vpbe_bitmap_params_t;
++
++/* Structure to hold window position */
++typedef struct vpbe_window_position {
++ unsigned int xpos; /* X position of the window */
++ unsigned int ypos; /* Y position of the window */
++} vpbe_window_position_t;
++
++#ifdef __KERNEL__
++/* Structure for each window */
++typedef struct vpbe_dm_win_info {
++ struct fb_info info;
++ vpbe_window_position_t win_pos; /* X,Y position of window */
++ /* Size of window is already there in var_info structure. */
++
++ dma_addr_t fb_base_phys; /*framebuffer area */
++ unsigned int fb_base; /*window memory pointer */
++ unsigned int fb_size; /*memory size */
++ unsigned int pseudo_palette[17];
++ int alloc_fb_mem;
++ /*flag to identify if framebuffer area is fixed or not */
++ unsigned long sdram_address;
++ struct vpbe_dm_info *dm;
++ unsigned char window_enable; /*Additions for all windows */
++ zoom_params_t zoom; /*Zooming parameters */
++ unsigned char field_frame_select; /*To select Field or frame */
++ unsigned char numbufs; /*Number of buffers valid 2 or 3 */
++ vpbe_conf_params_t conf_params;
++ /*window configuration parameter union pointer */
++} vpbe_dm_win_info_t;
++#endif /*__KERNEL__*/
++
++/*
++ * Videmode structure for display interface and mode settings
++ */
++typedef struct vpbe_fb_videomode {
++ unsigned char name[10]; /* Mode name ( NTSC , PAL) */
++ unsigned int vmode; /* FB_MODE_INTERLACED or FB_MODE_NON_INTERLACED */
++ unsigned int xres; /* X Resolution of the display */
++ unsigned int yres; /* Y Resolution of the display */
++ unsigned int fps; /* frames per second */
++ /* Timing Parameters applicable for std = 0 only */
++ unsigned int left_margin;
++ unsigned int right_margin;
++ unsigned int upper_margin;
++ unsigned int lower_margin;
++ unsigned int hsync_len;
++ unsigned int vsync_len;
++ unsigned int sync; /* 0: hsync -ve/vsync -ve */
++ /*1: hsync -ve/vsync +ve */
++ /*2: hsync +ve/vsync -ve */
++ /*3: hsync +ve/vsync +ve */
++ unsigned int basepx; /* Display x,y start position */
++ unsigned int basepy;
++/* 1= Mode s available in modelist 0=Mode is not available in modelist */
++ unsigned int std;
++} vpbe_fb_videomode_t;
++
++/* Structure to interface videomode to application*/
++typedef struct vpbe_mode_info {
++ vpbe_fb_videomode_t vid_mode;
++ unsigned char interface;
++ unsigned char mode_idx;
++} vpbe_mode_info_t;
++
++#ifdef __KERNEL__
++/*
++ * Structure for the driver holding information of windows,
++ * memory base addresses etc.
++ */
++typedef struct vpbe_dm_info {
++ vpbe_dm_win_info_t *osd0;
++ vpbe_dm_win_info_t *osd1;
++ vpbe_dm_win_info_t *vid0;
++ vpbe_dm_win_info_t *vid1;
++
++/* to map the registers */
++ dma_addr_t mmio_base_phys;
++ unsigned int mmio_base;
++ unsigned int mmio_size;
++
++ wait_queue_head_t vsync_wait;
++ unsigned int vsync_cnt;
++ int timeout;
++
++ /* this is the function that configures the output device (NTSC/PAL/LCD)
++ * for the required output format (composite/s-video/component/rgb)
++ */
++ void (*output_device_config) (void);
++
++ struct device *dev;
++
++ vpbe_backg_color_t backg; /* background color */
++ vpbe_dclk_t dclk; /*DCLK parameters */
++ vpbe_display_format_t display; /*Display interface and mode */
++ vpbe_fb_videomode_t videomode; /*Cuurent videomode */
++ char ram_clut[256][3]; /*RAM CLUT array */
++ struct fb_cursor cursor; /* cursor config params from fb.h */
++/*Flag that indicates whether any of the display is enabled or not*/
++ int display_enable;
++} vpbe_dm_info_t;
++
++/*
++ * Functions Definitions for 'davincifb' module
++ */
++int vpbe_mem_alloc_window_buf(vpbe_dm_win_info_t *);
++int vpbe_mem_release_window_buf(vpbe_dm_win_info_t *);
++void init_display_function(vpbe_display_format_t *);
++int vpbe_mem_alloc_struct(vpbe_dm_win_info_t **);
++void set_vid0_default_conf(void);
++void set_vid1_default_conf(void);
++void set_osd0_default_conf(void);
++void set_osd1_default_conf(void);
++void set_cursor_default_conf(void);
++void set_dm_default_conf(void);
++void set_win_enable(char *, unsigned int);
++int within_vid0_limits(u32, u32, u32, u32);
++void vpbe_set_display_default(void);
++#ifdef __KERNEL__
++void set_win_position(char *, u32, u32, u32, u32);
++void change_win_param(int);
++void set_interlaced(char *, unsigned int);
++#endif /* __KERNEL__ */
++
++/*
++ * Function definations for 'osd' module
++ */
++
++int vpbe_enable_window(vpbe_dm_win_info_t *);
++int vpbe_disable_window(vpbe_dm_win_info_t *);
++int vpbe_vid_osd_select_field_frame(u8 *, u8);
++int vpbe_bitmap_set_blend_factor(u8 *, vpbe_bitmap_blend_params_t *);
++int vpbe_bitmap_set_ram_clut(void);
++int vpbe_enable_disable_attribute_window(u32);
++int vpbe_get_blinking(u8 *, vpbe_blink_option_t *);
++int vpbe_set_blinking(u8 *, vpbe_blink_option_t *);
++int vpbe_set_vid_params(u8 *, vpbe_video_config_params_t *);
++int vpbe_get_vid_params(u8 *, vpbe_video_config_params_t *);
++int vpbe_bitmap_get_params(u8 *, vpbe_bitmap_config_params_t *);
++int vpbe_bitmap_set_params(u8 *, vpbe_bitmap_config_params_t *);
++int vpbe_set_cursor_params(struct fb_cursor *);
++int vpbe_set_vid_expansion(vpbe_win_expansion_t *);
++int vpbe_set_dclk(vpbe_dclk_t *);
++int vpbe_set_display_format(vpbe_display_format_t *);
++int vpbe_set_backg_color(vpbe_backg_color_t *);
++int vpbe_set_interface(u8);
++int vpbe_query_mode(vpbe_mode_info_t *);
++int vpbe_set_mode(struct vpbe_fb_videomode *);
++int vpbe_set_venc_clk_source(u8);
++void set_vid0_default_conf(void);
++void set_osd0_default_conf(void);
++void set_vid1_default_conf(void);
++void set_osd1_default_conf(void);
++void set_cursor_default_conf(void);
++void set_dm_default_conf(void);
++/*
++ * Function definations for 'venc' module
++ */
++
++void davincifb_ntsc_composite_config(void);
++void davincifb_ntsc_svideo_config(void);
++void davincifb_ntsc_component_config(void);
++void davincifb_pal_composite_config(void);
++void davincifb_pal_svideo_config(void);
++void davincifb_pal_component_config(void);
++
++void vpbe_davincifb_ntsc_rgb_config(void);
++void vpbe_davincifb_pal_rgb_config(void);
++void vpbe_davincifb_525p_component_config(void);
++void vpbe_davincifb_625p_component_config(void);
++
++void vpbe_enable_venc(int);
++void vpbe_enable_dacs(int);
++/*
++ * Function definations for 'dlcd' module
++ */
++void vpbe_davincifb_480p_prgb_config(void);
++void vpbe_davincifb_400p_prgb_config(void);
++void vpbe_davincifb_350p_prgb_config(void);
++void vpbe_set_display_timing(struct vpbe_fb_videomode *);
++
++void vpbe_enable_lcd(int);
++/*
++ * Following functions are not implemented
++ */
++void vpbe_davincifb_default_ycc16_config(void);
++void vpbe_davincifb_default_ycc8_config(void);
++void vpbe_davincifb_default_srgb_config(void);
++void vpbe_davincifb_default_epson_config(void);
++void vpbe_davincifb_default_casio_config(void);
++void vpbe_davincifb_default_UDISP_config(void);
++void vpbe_davincifb_default_STN_config(void);
++#endif /*__KERNEL__*/
++
++#endif /* End of #ifndef DAVINCI_VPBE_H */
+diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davinci_gfxdriver.h directfb-1.6.3/gfxdrivers/davinci/davinci_gfxdriver.h
+--- directfb-1.6.3-orig/gfxdrivers/davinci/davinci_gfxdriver.h 1970-01-01 01:00:00.000000000 +0100
++++ directfb-1.6.3/gfxdrivers/davinci/davinci_gfxdriver.h 2013-04-07 21:33:19.560662133 +0200
+@@ -0,0 +1,169 @@
++/*
++ TI Davinci driver - Graphics Driver
++
++ (c) Copyright 2007 Telio AG
++
++ Written by Denis Oliver Kropp <dok@directfb.org>
++
++ Code is derived from VMWare driver.
++
++ (c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org)
++ (c) Copyright 2000-2004 Convergence (integrated media) GmbH
++
++ All rights reserved.
++
++ This library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2 of the License, or (at your option) any later version.
++
++ This library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with this library; if not, write to the
++ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++*/
++
++#ifndef __DAVINCI_GFXDRIVER_H__
++#define __DAVINCI_GFXDRIVER_H__
++
++#include <sys/ioctl.h>
++#include <davincifb.h>
++
++#include <core/surface_buffer.h>
++
++#include "davincifb.h"
++
++#include "davinci_c64x.h"
++
++
++typedef struct {
++ /* validation flags */
++ int v_flags;
++
++ /* cached/computed values */
++ void *dst_addr;
++ unsigned long dst_phys;
++ unsigned int dst_size;
++ unsigned long dst_pitch;
++ DFBSurfacePixelFormat dst_format;
++ unsigned long dst_bpp;
++
++ void *src_addr;
++ unsigned long src_phys;
++ unsigned long src_pitch;
++ DFBSurfacePixelFormat src_format;
++ unsigned long src_bpp;
++
++ unsigned long source_mult;
++
++ unsigned long fillcolor;
++
++ int blit_blend_sub_function;
++ int draw_blend_sub_function;
++
++ DFBColor color;
++ unsigned long color_argb;
++ unsigned long colorkey;
++
++ DFBSurfaceBlittingFlags blitting_flags;
++
++ DFBRegion clip;
++
++ /** Add shared data here... **/
++ struct fb_fix_screeninfo fix[4];
++
++ CoreSurfacePool *osd_pool;
++ CoreSurfacePool *video_pool;
++
++ bool synced;
++} DavinciDeviceData;
++
++
++typedef struct {
++ int num;
++ int fd;
++ void *mem;
++ int size;
++} DavinciFB;
++
++typedef struct {
++ DavinciDeviceData *ddev;
++
++ CoreDFB *core;
++
++ CoreScreen *screen;
++ CoreLayer *osd;
++ CoreLayer *video;
++
++ DavinciFB fb[4];
++
++ DavinciC64x c64x;
++ bool c64x_present;
++
++ DavinciC64xTasks tasks;
++} DavinciDriverData;
++
++
++static inline DFBResult
++davincifb_pan_display( const DavinciFB *fb,
++ struct fb_var_screeninfo *var,
++ const CoreSurfaceBufferLock *lock,
++ DFBSurfaceFlipFlags flags,
++ int x,
++ int y )
++{
++ int ret;
++
++ if (lock) {
++#ifdef FBIO_SET_START
++ CoreSurfaceBuffer *buffer = lock->buffer;
++ struct fb_set_start set_start;
++
++ /* physical mode */
++ set_start.offset = -1;
++ set_start.sync = (flags & DSFLIP_ONSYNC) ? 1 : 0;
++
++ /* life's so easy */
++ set_start.physical = lock->phys + DFB_BYTES_PER_LINE( buffer->format, x ) + y * lock->pitch;
++
++ ret = ioctl( fb->fd, FBIO_SET_START, &set_start );
++ if (ret < 0)
++ D_DEBUG( "FBIO_SET_START (0x%08lx, sync %llu) failed!\n",
++ set_start.physical, set_start.sync );
++
++ if (ret == 0) {
++ if (flags & DSFLIP_WAIT)
++ ioctl( fb->fd, FBIO_WAITFORVSYNC );
++
++ return DFB_OK;
++ }
++
++ /* fallback */
++#endif
++ var->xoffset = x; /* poor version */
++ var->yoffset = y + lock->offset / lock->pitch;
++ }
++ else {
++ var->xoffset = x;
++ var->yoffset = y;
++ }
++
++ var->activate = /*(flags & DSFLIP_ONSYNC) ? FB_ACTIVATE_VBL :*/ FB_ACTIVATE_NOW;
++
++ ret = ioctl( fb->fd, FBIOPAN_DISPLAY, var );
++ if (ret)
++ D_PERROR( "Davinci/FB: FBIOPAN_DISPLAY (fb%d - %d,%d) failed!\n",
++ fb->num, var->xoffset, var->yoffset );
++
++ if (flags & DSFLIP_WAIT)
++ ioctl( fb->fd, FBIO_WAITFORVSYNC );
++
++ return DFB_OK;
++}
++
++#endif
+diff -puNr -Naur directfb-1.6.3-orig/tests/voodoo/voodoo_test.h directfb-1.6.3/tests/voodoo/voodoo_test.h
+--- directfb-1.6.3-orig/tests/voodoo/voodoo_test.h 1970-01-01 01:00:00.000000000 +0100
++++ directfb-1.6.3/tests/voodoo/voodoo_test.h 2013-04-07 21:33:31.824408024 +0200
+@@ -0,0 +1,10 @@
++#ifndef __VOODOO_TEST_H__
++#define __VOODOO_TEST_H__
++
++typedef enum {
++ VOODOO_TEST_INCREASE,
++ VOODOO_TEST_QUERY
++} VoodooTestCall;
++
++#endif
++
--- /dev/null
+Call the imlib2-conf variable that are set by ac_cv_path_IMLIB2_CONFIG
+with the absolute path because the imlib2-config file is not covered
+by the PATH variable.
+This is important for cross compiler that need to get the staging settings
+instead of the host settings.
+
+Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
+
+--- directfb-1.6.3/configure.orig 2013-03-31 13:18:22.837560379 +0200
++++ directfb-1.6.3/configure 2013-03-31 13:23:40.177541099 +0200
+@@ -19816,8 +19816,8 @@ fi
+ $as_echo "$as_me: WARNING: *** Imlib2 library not found, building without Imlib2 support ***" >&2;}
+ imlib2="no"
+ else
+- IMLIB2_CFLAGS=`imlib2-config --cflags`
+- IMLIB2_LIBS=`imlib2-config --libs`
++ IMLIB2_CFLAGS=`$IMLIB2_CONFIG --cflags`
++ IMLIB2_LIBS=`$IMLIB2_CONFIG --libs`
+ imlib2="yes"
+ fi
+ fi
--- /dev/null
+Remove definition to fix qt5 build.
+
+Fetch from: http://git.directfb.org/?p=core/DirectFB.git;a=patch;h=203f78a4193a8ff110dec3c860e0928af1a0a72f
+
+From 203f78a4193a8ff110dec3c860e0928af1a0a72f Mon Sep 17 00:00:00 2001
+From: Denis Oliver Kropp <dok@directfb.org>
+Date: Wed, 31 Jul 2013 21:56:05 +0200
+Subject: [PATCH] libdirect: Remove redefinition of __typeof__!!!
+
+---
+ lib/direct/os/linux/glibc/types.h | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/lib/direct/os/linux/glibc/types.h b/lib/direct/os/linux/glibc/types.h
+index 08e94b2..80cb350 100644
+--- a/lib/direct/os/linux/glibc/types.h
++++ b/lib/direct/os/linux/glibc/types.h
+@@ -81,7 +81,6 @@ typedef int64_t s64;
+ #define __dfb_no_instrument_function__ __attribute__((no_instrument_function))
+ #define __constructor__ __attribute__((constructor))
+ #define __destructor__ __attribute__((destructor))
+-#define __typeof__(x) __typeof__(x)
+
+ #ifndef __func__
+ #define __func__ __FUNCTION__
+--
+1.7.9.5
+
--- /dev/null
+This patch fixes builderrors while using '--with-gfxdrivers' and
+'--with-inputdrivers' with the current DirectFB version 1.6.3.
+
+Patch is taken from
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/DirectFB/files/DirectFB-1.6.3-setregion.patch
+
+Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
+
+--- directfb-1.6.3/gfxdrivers/cyber5k/cyber5k.c
++++ directfb-1.6.3/gfxdrivers/cyber5k/cyber5k.c
+@@ -636,7 +636,8 @@ osdSetRegion( CoreLayer
+ CoreLayerRegionConfigFlags updated,
+ CoreSurface *surface,
+ CorePalette *palette,
+- CoreSurfaceBufferLock *lock )
++ CoreSurfaceBufferLock *left_lock,
++ CoreSurfaceBufferLock *right_lock )
+ {
+ DFBResult ret;
+
+@@ -644,7 +645,7 @@ osdSetRegion( CoreLayer
+ ret = oldPrimaryFuncs.SetRegion( layer, oldPrimaryDriverData,
+ layer_data, region_data,
+ config, updated, surface,
+- palette, lock );
++ palette, left_lock, right_lock );
+ if (ret)
+ return ret;
+
+--- directfb-1.6.3/gfxdrivers/radeon/radeon_crtc1.c
++++ directfb-1.6.3/gfxdrivers/radeon/radeon_crtc1.c
+@@ -147,14 +147,15 @@ crtc1SetRegion( CoreLayer
+ CoreLayerRegionConfigFlags updated,
+ CoreSurface *surface,
+ CorePalette *palette,
+- CoreSurfaceBufferLock *lock )
++ CoreSurfaceBufferLock *left_lock,
++ CoreSurfaceBufferLock *right_lock )
+ {
+
+ if (updated & ~CLRCF_OPTIONS) {
+ return OldPrimaryLayerFuncs.SetRegion( layer,
+ OldPrimaryLayerDriverData,
+ layer_data, region_data,
+- config, updated, surface, palette, lock );
++ config, updated, surface, palette, left_lock, right_lock );
+ }
+
+ return DFB_OK;
+--- directfb-1.6.3/gfxdrivers/cle266/uc_primary.c
++++ directfb-1.6.3/gfxdrivers/cle266/uc_primary.c
+@@ -138,7 +138,8 @@ osdSetRegion( CoreLayer
+ CoreLayerRegionConfigFlags updated,
+ CoreSurface *surface,
+ CorePalette *palette,
+- CoreSurfaceBufferLock *lock )
++ CoreSurfaceBufferLock *left_lock,
++ CoreSurfaceBufferLock *right_lock )
+ {
+ DFBResult ret;
+ UcDriverData *ucdrv = (UcDriverData*) driver_data;
+@@ -147,7 +148,7 @@ osdSetRegion( CoreLayer
+ ret = ucOldPrimaryFuncs.SetRegion( layer, ucOldPrimaryDriverData,
+ layer_data, region_data,
+ config, updated, surface,
+- palette, lock );
++ palette, left_lock, right_lock );
+ if (ret)
+ return ret;
+
+--- directfb-1.6.3/gfxdrivers/unichrome/uc_primary.c
++++ directfb-1.6.3/gfxdrivers/unichrome/uc_primary.c
+@@ -135,7 +135,8 @@ osdSetRegion( CoreLayer
+ CoreLayerRegionConfigFlags updated,
+ CoreSurface *surface,
+ CorePalette *palette,
+- CoreSurfaceBufferLock *lock )
++ CoreSurfaceBufferLock *left_lock,
++ CoreSurfaceBufferLock *right_lock )
+ {
+ DFBResult ret;
+ UcDriverData *ucdrv = (UcDriverData*) driver_data;
+@@ -144,7 +145,7 @@ osdSetRegion( CoreLayer
+ ret = ucOldPrimaryFuncs.SetRegion( layer, ucOldPrimaryDriverData,
+ layer_data, region_data,
+ config, updated, surface,
+- palette, lock );
++ palette, left_lock, right_lock );
+ if (ret)
+ return ret;
+
+
--- /dev/null
+Add patch to use 'gcc' instead of 'ld' for linking
+
+The patch has been sent upstream but it has not been merged yet
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+From 176ce06b40897a357fe76a558af517197325f188 Mon Sep 17 00:00:00 2001
+From: Markos Chandras <markos.chandras@imgtec.com>
+Date: Wed, 28 Aug 2013 10:56:32 +0100
+Subject: [PATCH] rules/libobject.make: Use gcc for linking
+
+Invoking 'ld' directly may miss some necessary linker flags which
+are usually passed by gcc. Therefore, use gcc for linking.
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+---
+ rules/libobject.make | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rules/libobject.make b/rules/libobject.make
+index bc670da..2cba658 100644
+--- a/rules/libobject.make
++++ b/rules/libobject.make
+@@ -3,7 +3,7 @@
+ if test -d $<.tmp; then rmdir $<.tmp; fi
+ mkdir $<.tmp
+ (cd $<.tmp && $(AR) x ../../$<)
+- $(LD) -o $@ -r $<.tmp/*.o
++ $(CC) -nostdlib -o $@ -r $<.tmp/*.o
+ rm -f $<.tmp/*.o && rmdir $<.tmp
+
+ .PHONY: $(LTLIBRARIES:%.la=.libs/%.a)
+--
+1.8.3.2
+
+++ /dev/null
-The archive of directfb-1.6.3 is still missing some header files against
-the tagged git tree of directfb. The following files are missing.
-
-gfxdrivers/davinci/davinci_c64x.h
-gfxdrivers/davinci/davincifb.h
-gfxdrivers/davinci/davinci_gfxdriver.h
-tests/voodoo/voodoo_test.h
-
-The headers of course are needed to be able to build every module of
-directfb. The headers are taken from the git tree of directfb
-http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=38b784549bc59bb07c58bb29667cb658695d39a7,
-tag DIRECTFB_1_6_3, SHA1ID 38b784549bc59bb07c58bb29667cb658695d39a7.
-
-Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
-
-diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davinci_c64x.h directfb-1.6.3/gfxdrivers/davinci/davinci_c64x.h
---- directfb-1.6.3-orig/gfxdrivers/davinci/davinci_c64x.h 1970-01-01 01:00:00.000000000 +0100
-+++ directfb-1.6.3/gfxdrivers/davinci/davinci_c64x.h 2013-04-07 21:33:25.928530187 +0200
-@@ -0,0 +1,935 @@
-+/*
-+ TI Davinci driver - C64X+ DSP Library
-+
-+ (c) Copyright 2008 directfb.org
-+ (c) Copyright 2007 Telio AG
-+
-+ Written by Denis Oliver Kropp <dok@directfb.org> and
-+ Olaf Dreesen <olaf@directfb.org>.
-+
-+ All rights reserved.
-+
-+ This library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU General Public License
-+ version 2 as published by the Free Software Foundation.
-+
-+ This library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public
-+ License along with this library; if not, write to the
-+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA.
-+*/
-+
-+#ifndef __DAVINCI_C64X_H__
-+#define __DAVINCI_C64X_H__
-+
-+#include <unistd.h>
-+
-+#include <directfb.h>
-+
-+#include <direct/messages.h>
-+#include <direct/trace.h>
-+
-+#include <linux/c64x.h>
-+
-+#define mb() __asm__ __volatile__ ("" : : : "memory")
-+
-+/**********************************************************************************************************************/
-+
-+typedef struct {
-+ int magic;
-+
-+ int fd;
-+ c64xTaskControl *ctl;
-+ void *mem;
-+
-+ c64xTask *QueueL;
-+} DavinciC64x;
-+
-+typedef struct {
-+ int magic;
-+ unsigned int max_tasks;
-+ unsigned int num_tasks;
-+ c64xTask *tasks;
-+} DavinciC64xTasks;
-+
-+typedef enum {
-+ C64X_TEF_NONE = 0x0000,
-+ C64X_TEF_RESET = 0x0001
-+} DavinciC64xEmitFlags;
-+
-+/**********************************************************************************************************************/
-+
-+DFBResult davinci_c64x_open ( DavinciC64x *c64x );
-+
-+DFBResult davinci_c64x_close ( DavinciC64x *c64x );
-+
-+DFBResult davinci_c64x_wait_low( DavinciC64x *c64x );
-+
-+/**********************************************************************************************************************/
-+
-+DFBResult davinci_c64x_tasks_init ( DavinciC64xTasks *tasks,
-+ unsigned int size );
-+
-+DFBResult davinci_c64x_tasks_destroy( DavinciC64xTasks *tasks );
-+
-+/**********************************************************************************************************************/
-+
-+DFBResult davinci_c64x_emit_tasks( DavinciC64x *c64x,
-+ DavinciC64xTasks *tasks,
-+ DavinciC64xEmitFlags flags );
-+
-+/**********************************************************************************************************************/
-+
-+static const char *state_names[] = { "DONE", "ERROR", "TODO", "RUNNING" };
-+
-+static inline c64xTask *
-+c64x_get_task( DavinciC64x *c64x )
-+{
-+ c64xTaskControl *ctl = c64x->ctl;
-+ uint32_t idx = ctl->QL_arm;
-+ uint32_t next = (idx + 1) & C64X_QUEUE_MASK;
-+ c64xTask *task = &c64x->QueueL[idx];
-+ int loops = 0;
-+ uint32_t idle = 0;
-+
-+ /* Wait for the entry (and next) to be processed by the DSP (rare case). */
-+ while (task->c64x_flags & C64X_FLAG_TODO || ctl->QL_dsp == next) {
-+ if (loops > 666 || (idle && ctl->idlecounter - idle > 666)) {
-+ c64xTask *dsp_task = &c64x->QueueL[ctl->QL_dsp];
-+
-+ D_PERROR( "Davinci/C64X+: Blocked! [DSP %d / %d (%s), ARM %d / %d (%s)]\n",
-+ ctl->QL_dsp,
-+ (dsp_task->c64x_function >> 2) & 0x3fff,
-+ state_names[dsp_task->c64x_function & 3],
-+ ctl->QL_arm,
-+ (task->c64x_function >> 2) & 0x3fff,
-+ state_names[task->c64x_function & 3] );
-+
-+ break;
-+ }
-+
-+ idle = ctl->idlecounter;
-+
-+ /* Queue is full, waiting 10-20ms should not be too bad. */
-+ if (loops++ > 10)
-+ usleep( 5000 );
-+ }
-+
-+ return task;
-+}
-+
-+static inline void
-+c64x_submit_task( DavinciC64x *c64x, c64xTask *task )
-+{
-+ c64xTaskControl *ctl = c64x->ctl;
-+ uint32_t idx = ctl->QL_arm;
-+ uint32_t next = (idx + 1) & C64X_QUEUE_MASK;
-+
-+ mb();
-+
-+ ctl->QL_arm = next;
-+
-+ mb();
-+}
-+
-+/**********************************************************************************************************************/
-+
-+static inline void
-+davinci_c64x_wb_inv_range( DavinciC64x *c64x,
-+ unsigned long start,
-+ u32 length,
-+ u32 func )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = start;
-+ task->c64x_arg[1] = length;
-+ task->c64x_arg[2] = func;
-+
-+ task->c64x_function = C64X_WB_INV_RANGE | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_write_back_all( DavinciC64x *c64x )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_function = C64X_WRITE_BACK_ALL | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+/**********************************************************************************************************************/
-+
-+static inline void
-+davinci_c64x_load_block__L( DavinciC64xTasks *tasks,
-+ unsigned long words,
-+ u32 num,
-+ u32 flags )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = words;
-+ task->c64x_arg[1] = num;
-+ task->c64x_arg[2] = flags;
-+
-+ task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_load_block( DavinciC64x *c64x,
-+ unsigned long words,
-+ u32 num,
-+ u32 flags )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = words;
-+ task->c64x_arg[1] = num;
-+ task->c64x_arg[2] = flags;
-+
-+ task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_fetch_uyvy( DavinciC64x *c64x,
-+ unsigned long dest,
-+ unsigned long source,
-+ u32 pitch,
-+ u32 height,
-+ u32 flags )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = source;
-+ task->c64x_arg[2] = pitch;
-+ task->c64x_arg[3] = height;
-+ task->c64x_arg[4] = flags;
-+
-+ task->c64x_function = C64X_FETCH_UYVY | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_mc( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long source0,
-+ unsigned long source1,
-+ u32 spitch,
-+ u32 height,
-+ int func )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = dpitch;
-+ task->c64x_arg[2] = source0;
-+ task->c64x_arg[3] = source1;
-+ task->c64x_arg[4] = spitch;
-+ task->c64x_arg[5] = height;
-+
-+ task->c64x_function = func | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_put_idct_uyvy_16x16__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 flags )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = flags;
-+
-+ task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_put_idct_uyvy_16x16( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 flags )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = flags;
-+
-+ task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_put_mc_uyvy_16x16__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 flags )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = flags;
-+
-+ task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_put_mc_uyvy_16x16( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 flags )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = flags;
-+
-+ task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_put_sum_uyvy_16x16__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 flags )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = flags;
-+
-+ task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_put_sum_uyvy_16x16( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 flags )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = flags;
-+
-+ task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_dva_begin_frame__L( DavinciC64xTasks *tasks,
-+ u32 pitch,
-+ unsigned long current,
-+ unsigned long past,
-+ unsigned long future,
-+ u32 flags )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = pitch;
-+ task->c64x_arg[1] = current;
-+ task->c64x_arg[2] = past;
-+ task->c64x_arg[3] = future;
-+ task->c64x_arg[4] = flags;
-+
-+ task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_dva_begin_frame( DavinciC64x *c64x,
-+ u32 pitch,
-+ unsigned long current,
-+ unsigned long past,
-+ unsigned long future,
-+ u32 flags )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = pitch;
-+ task->c64x_arg[1] = current;
-+ task->c64x_arg[2] = past;
-+ task->c64x_arg[3] = future;
-+ task->c64x_arg[4] = flags;
-+
-+ task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_dva_motion_block__L( DavinciC64xTasks *tasks,
-+ unsigned long macroblock )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = macroblock;
-+
-+ task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_dva_motion_block( DavinciC64x *c64x,
-+ unsigned long macroblock )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = macroblock;
-+
-+ task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+/**********************************************************************************************************************/
-+
-+static inline void
-+davinci_c64x_dva_idct( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 pitch,
-+ unsigned long source )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = source;
-+
-+ task->c64x_function = C64X_DVA_IDCT | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+/**********************************************************************************************************************/
-+
-+static inline void
-+davinci_c64x_put_uyvy_16x16( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 pitch,
-+ unsigned long source,
-+ u32 flags )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = source;
-+ task->c64x_arg[3] = flags;
-+
-+ task->c64x_function = C64X_PUT_UYVY_16x16 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_dither_argb__L( DavinciC64xTasks *tasks,
-+ unsigned long dst_rgb,
-+ unsigned long dst_alpha,
-+ u32 dst_pitch,
-+ unsigned long source,
-+ u32 src_pitch,
-+ u32 width,
-+ u32 height )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dst_rgb;
-+ task->c64x_arg[1] = dst_alpha;
-+ task->c64x_arg[2] = dst_pitch;
-+ task->c64x_arg[3] = source;
-+ task->c64x_arg[4] = src_pitch;
-+ task->c64x_arg[5] = width;
-+ task->c64x_arg[6] = height;
-+
-+ task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_dither_argb( DavinciC64x *c64x,
-+ unsigned long dst_rgb,
-+ unsigned long dst_alpha,
-+ u32 dst_pitch,
-+ unsigned long source,
-+ u32 src_pitch,
-+ u32 width,
-+ u32 height )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dst_rgb;
-+ task->c64x_arg[1] = dst_alpha;
-+ task->c64x_arg[2] = dst_pitch;
-+ task->c64x_arg[3] = source;
-+ task->c64x_arg[4] = src_pitch;
-+ task->c64x_arg[5] = width;
-+ task->c64x_arg[6] = height;
-+
-+ task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_fill_16__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 width,
-+ u32 height,
-+ u32 value )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = width;
-+ task->c64x_arg[3] = height;
-+ task->c64x_arg[4] = value;
-+
-+ task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_fill_16( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 width,
-+ u32 height,
-+ u32 value )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = width;
-+ task->c64x_arg[3] = height;
-+ task->c64x_arg[4] = value;
-+
-+ task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_fill_32__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 width,
-+ u32 height,
-+ u32 value )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = width;
-+ task->c64x_arg[3] = height;
-+ task->c64x_arg[4] = value;
-+
-+ task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_fill_32( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 pitch,
-+ u32 width,
-+ u32 height,
-+ u32 value )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = pitch;
-+ task->c64x_arg[2] = width;
-+ task->c64x_arg[3] = height;
-+ task->c64x_arg[4] = value;
-+
-+ task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_16__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = dpitch;
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = spitch;
-+ task->c64x_arg[4] = width;
-+ task->c64x_arg[5] = height;
-+
-+ task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_16( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = dpitch;
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = spitch;
-+ task->c64x_arg[4] = width;
-+ task->c64x_arg[5] = height;
-+
-+ task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_32__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = dpitch;
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = spitch;
-+ task->c64x_arg[4] = width;
-+ task->c64x_arg[5] = height;
-+
-+ task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_32( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = dpitch;
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = spitch;
-+ task->c64x_arg[4] = width;
-+ task->c64x_arg[5] = height;
-+
-+ task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_stretch_32__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 dw,
-+ u32 dh,
-+ u32 sw,
-+ u32 sh,
-+ const DFBRegion *clip )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = src;
-+ task->c64x_arg[2] = dpitch | (spitch << 16);
-+ task->c64x_arg[3] = dh | (dw << 16);
-+ task->c64x_arg[4] = sh | (sw << 16);
-+ task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
-+ task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
-+
-+ if (sw > dw && sh > dh)
-+ task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
-+ else
-+ task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_stretch_32( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 dw,
-+ u32 dh,
-+ u32 sw,
-+ u32 sh,
-+ const DFBRegion *clip )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = src;
-+ task->c64x_arg[2] = dpitch | (spitch << 16);
-+ task->c64x_arg[3] = dh | (dw << 16);
-+ task->c64x_arg[4] = sh | (sw << 16);
-+ task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
-+ task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
-+
-+ if (sw > dw && sh > dh)
-+ task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
-+ else
-+ task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_blend_32__L( DavinciC64xTasks *tasks,
-+ u32 sub_func,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height,
-+ u32 argb,
-+ u8 alpha )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = dpitch;
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = spitch;
-+ task->c64x_arg[4] = width | (height << 16);
-+ task->c64x_arg[5] = argb;
-+ task->c64x_arg[6] = alpha;
-+
-+ task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_blend_32( DavinciC64x *c64x,
-+ u32 sub_func,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height,
-+ u32 argb,
-+ u8 alpha )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = dpitch;
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = spitch;
-+ task->c64x_arg[4] = width | (height << 16);
-+ task->c64x_arg[5] = argb;
-+ task->c64x_arg[6] = alpha;
-+
-+ task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_keyed_16__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height,
-+ u32 key,
-+ u32 mask )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = width;
-+ task->c64x_arg[4] = height;
-+ task->c64x_arg[5] = key;
-+ task->c64x_arg[6] = mask;
-+
-+ task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_keyed_16( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height,
-+ u32 key,
-+ u32 mask )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = width;
-+ task->c64x_arg[4] = height;
-+ task->c64x_arg[5] = key;
-+ task->c64x_arg[6] = mask;
-+
-+ task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+static inline void
-+davinci_c64x_blit_keyed_32__L( DavinciC64xTasks *tasks,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height,
-+ u32 key,
-+ u32 mask )
-+{
-+ c64xTask *task = &tasks->tasks[tasks->num_tasks];
-+
-+ D_ASSERT( tasks->num_tasks < tasks->max_tasks );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = width;
-+ task->c64x_arg[4] = height;
-+ task->c64x_arg[5] = key;
-+ task->c64x_arg[6] = mask;
-+
-+ task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
-+
-+ tasks->num_tasks++;
-+}
-+
-+static inline void
-+davinci_c64x_blit_keyed_32( DavinciC64x *c64x,
-+ unsigned long dest,
-+ u32 dpitch,
-+ unsigned long src,
-+ u32 spitch,
-+ u32 width,
-+ u32 height,
-+ u32 key,
-+ u32 mask )
-+{
-+ c64xTask *task = c64x_get_task( c64x );
-+
-+ task->c64x_arg[0] = dest;
-+ task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
-+ task->c64x_arg[2] = src;
-+ task->c64x_arg[3] = width;
-+ task->c64x_arg[4] = height;
-+ task->c64x_arg[5] = key;
-+ task->c64x_arg[6] = mask;
-+
-+ task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
-+
-+ c64x_submit_task( c64x, task );
-+}
-+
-+#endif
-+
-diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davincifb.h directfb-1.6.3/gfxdrivers/davinci/davincifb.h
---- directfb-1.6.3-orig/gfxdrivers/davinci/davincifb.h 1970-01-01 01:00:00.000000000 +0100
-+++ directfb-1.6.3/gfxdrivers/davinci/davincifb.h 2013-04-07 21:33:21.488622184 +0200
-@@ -0,0 +1,581 @@
-+/*
-+ * Copyright (C) 2006 Texas Instruments Inc
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option)any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ * File: davincifb.h
-+ */
-+
-+#ifndef DAVINVI_VPBE_H
-+#define DAVINVI_VPBE_H
-+
-+/* include Linux files */
-+#include <linux/fb.h>
-+
-+/* define the custom FBIO_WAITFORVSYNC ioctl */
-+#define FBIO_WAITFORVSYNC _IOW('F', 0x20, u_int32_t)
-+#define FBIO_SETATTRIBUTE _IOW('F', 0x21, struct fb_fillrect)
-+
-+/* Backported IOCTLS. */
-+#define FBIO_SETPOSX _IOW('F', 0x22, u_int32_t)
-+#define FBIO_SETPOSY _IOW('F', 0x23, u_int32_t)
-+#define FBIO_SETZOOM _IOW('F', 0x24, struct zoom_params)
-+#define FBIO_GETSTD _IOR('F', 0x25, u_int32_t)
-+#define FBIO_RESIZER _IOW('F', 0x26, struct vpfe_resizer_params)
-+#define FBIO_SYNC _IOW('F', 0x27, u_int32_t)
-+
-+typedef struct zoom_params {
-+ u_int32_t window_id;
-+ u_int32_t zoom_h;
-+ u_int32_t zoom_v;
-+} zoom_params_t;
-+
-+typedef struct vpfe_resizer_params
-+{
-+ u_int32_t rsz_cnt; //busy-lock
-+ u_int32_t out_size; //busy-lock
-+ u_int32_t in_start; //busy-lock
-+ u_int32_t in_size; //busy-lock
-+ u_int32_t sdr_inadd; //shadowed
-+ u_int32_t sdr_inoff; //shadowed
-+ u_int32_t sdr_outadd; //shadowed
-+ u_int32_t sdr_outoff; //shadowed
-+ u_int32_t hfilt[16]; //busy-lock
-+ u_int32_t vfilt[16]; //busy-lock
-+ u_int32_t yenh; //busy-lock
-+} vpfe_resizer_params_t;
-+
-+typedef struct fb_set_start {
-+ int offset; /* offset from smem_start */
-+ unsigned long physical; /* absolute physical address when offset < 0 */
-+
-+ u_int64_t sync; /* input: target sync counter for change or 0 for no sync at all,
-+ output: sync counter of actual change or 0 if still pending */
-+} fb_set_start_t;
-+
-+
-+#ifdef _IOC_TYPECHECK
-+#undef _IOC_TYPECHECK
-+#define _IOC_TYPECHECK(x) (sizeof(x))
-+#endif
-+
-+#define RAM_CLUT_SIZE 256*3
-+#define FBIO_ENABLE_DISABLE_WIN \
-+ _IOW('F', 0x30, unsigned char)
-+#define FBIO_SET_BITMAP_BLEND_FACTOR \
-+ _IOW('F', 0x31, vpbe_bitmap_blend_params_t)
-+#define FBIO_SET_BITMAP_WIN_RAM_CLUT \
-+ _IOW('F', 0x32, unsigned char)*RAM_CLUT_SIZE)
-+#define FBIO_ENABLE_DISABLE_ATTRIBUTE_WIN \
-+ _IOW('F', 0x33, unsigned int)
-+#define FBIO_GET_BLINK_INTERVAL \
-+ _IOR('F', 0x34, vpbe_blink_option_t)
-+#define FBIO_SET_BLINK_INTERVAL \
-+ _IOW('F', 0x35, vpbe_blink_option_t)
-+#define FBIO_GET_VIDEO_CONFIG_PARAMS \
-+ _IOR('F', 0x36, vpbe_video_config_params_t)
-+#define FBIO_SET_VIDEO_CONFIG_PARAMS \
-+ _IOW('F', 0x37, vpbe_video_config_params_t)
-+#define FBIO_GET_BITMAP_CONFIG_PARAMS \
-+ _IOR('F', 0x38, vpbe_bitmap_config_params_t)
-+#define FBIO_SET_BITMAP_CONFIG_PARAMS \
-+ _IOW('F', 0x39, vpbe_bitmap_config_params_t)
-+#define FBIO_SET_DCLK \
-+ _IOW('F', 0x40, vpbe_dclk_t)
-+#define FBIO_SET_INTERFACE \
-+ _IOW('F', 0x41, unsigned char)
-+#define FBIO_GET_INTERFACE \
-+ _IOR('F', 0x42, unsigned char)
-+#define FBIO_QUERY_TIMING \
-+ _IOWR('F', 0x43, struct vpbe_mode_info)
-+#define FBIO_SET_TIMING \
-+ _IOW('F', 0x44, struct vpbe_fb_videomode)
-+#define FBIO_GET_TIMING \
-+ _IOR('F', 0x45, struct vpbe_fb_videomode)
-+#define FBIO_SET_VENC_CLK_SOURCE \
-+ _IOW('F', 0x46, unsigned char)
-+#define FBIO_SET_BACKG_COLOR \
-+ _IOW('F', 0x47, vpbe_backg_color_t)
-+#define FBIO_ENABLE_DISPLAY \
-+ _IOW('F', 0x48, unsigned char)
-+#define FBIO_SETPOS \
-+ _IOW('F', 0x49, u_int32_t)
-+#define FBIO_SET_CURSOR \
-+ _IOW('F', 0x50, struct fb_cursor)
-+#define FBIO_SET_START \
-+ _IOW('F', 0x66, struct fb_set_start)
-+
-+/*
-+ * Defines and Constants
-+ */
-+#ifdef __KERNEL__
-+#define DAVINCIFB_DEVICE "davincifb"
-+#define DAVINCIFB_DRIVER "davincifb"
-+
-+#define MULTIPLE_BUFFERING 1
-+
-+#ifdef MULTIPLE_BUFFERING
-+#define DOUBLE_BUF 2
-+#define TRIPLE_BUF 3
-+#else
-+#define DOUBLE_BUF 1
-+#define TRIPLE_BUF 1
-+#endif
-+
-+/* usage: if (is_win(info->fix.id, OSD0)) ... */
-+#define is_win(name, x) ((strcmp(name, x ## _FBNAME) == 0) ? 1 : 0)
-+
-+/*
-+ * display controller register I/O routines
-+ */
-+u32 dispc_reg_in(u32 offset);
-+u32 dispc_reg_out(u32 offset, u32 val);
-+u32 dispc_reg_merge(u32 offset, u32 val, u32 mask);
-+
-+#endif /*__KERNEL__*/
-+
-+/* Error return codes */
-+#define VPBE_INVALID_PARA_VALUE 700
-+#define VPBE_WRONG_WINDOW_ID 701
-+#define VPBE_CURRENTLY_IN_REQUIRED_MODE 702
-+#define VPBE_INSUFFICIENT_CLUT_VALUES 703
-+#define VPBE_CLUT_WRITE_TIMEOUT 704
-+#define VPBE_VID0_BUF_ADR_NULL 705
-+#define VPBE_WINDOW_NOT_DISABLED 706
-+#define VPBE_WINDOW_NOT_ENABLED 707
-+
-+#ifndef __KERNEL__
-+/* Window ID definations */
-+#define OSD0 0
-+#define VID0 1
-+#define OSD1 2
-+#define VID1 3
-+#endif
-+
-+/* There are 4 framebuffers, each represented by an fb_info and
-+ * a dm_win_info structure */
-+#define OSD0_FBNAME "dm_osd0_fb"
-+#define OSD1_FBNAME "dm_osd1_fb"
-+#define VID0_FBNAME "dm_vid0_fb"
-+#define VID1_FBNAME "dm_vid1_fb"
-+
-+/* FIXME: Digital LCD RGB matrix coefficients */
-+#define DLCD_DGY_VAL 0
-+#define DLCD_DRV_VAL 0
-+#define DLCD_DGU_VAL 0
-+#define DLCD_DBU_VAL 0
-+
-+/* Defines for bitmap format */
-+#define VPBE_BITMAP_BIT_1 1
-+#define VPBE_BITMAP_BIT_2 2
-+#define VPBE_BITMAP_BIT_4 4
-+#define VPBE_BITMAP_BIT_8 8
-+#define VPBE_BITMAP_RGB565 16
-+#define VPBE_VIDEO_YUV422 16
-+#define VPBE_VIDEO_RGB888 24
-+
-+/* Defines foe cursor parameter validation*/
-+#define MAX_CURSOR_WIDTH 0x3FF
-+#define MAX_CURSOR_HEIGHT 0x1FF
-+#define MAX_CURSOR_LINEWIDTH 7
-+
-+#define BASEX 0x80
-+#define BASEY 0x12
-+#define BASEX_DLCD 0x59
-+#define BASEY_DLCD 0x22
-+
-+/*
-+ * Enumerations
-+ */
-+/* Enum for blending factor */
-+typedef enum vpbe_blend_factor {
-+ OSD_CONTRIBUTION_ZERO = 0,
-+ OSD_CONTRIBUTION_1_BY_8 = 1,
-+ OSD_CONTRIBUTION_2_BY_8 = 2,
-+ OSD_CONTRIBUTION_3_BY_8 = 3,
-+ OSD_CONTRIBUTION_4_BY_8 = 4,
-+ OSD_CONTRIBUTION_5_BY_8 = 5,
-+ OSD_CONTRIBUTION_6_BY_8 = 6,
-+ OSD_CONTRIBUTION_ONE = 7
-+} vpbe_blend_factor_t;
-+
-+/* Enum for Boolean variables */
-+typedef enum {
-+ SET_0 = 0,
-+ SET_1 = 1
-+} CB_CR_ORDER, ATTRIBUTE, ROM_RAM_CLUT;
-+
-+/* Defines for Display Interface */
-+#define PRGB 0
-+#define COMPOSITE 1
-+#define SVIDEO 2
-+#define COMPONENT 3
-+#define RGB 4
-+#define YCC16 5
-+#define YCC8 6
-+#define SRGB 7
-+#define EPSON 8
-+#define CASIO1G 9
-+#define UDISP 10
-+#define STN 11
-+#define VPBE_MAX_INTERFACES 12
-+
-+/* Defines for Display Mode */
-+#define LCD 0
-+#define NTSC 1
-+#define PAL 2
-+#define P525 3
-+#define P625 4
-+
-+#define DEFAULT_MODE 0
-+#define P480 0
-+#define P400 1
-+#define P350 2
-+#define NON_EXISTING_MODE 255
-+/* Enable/Disable enum */
-+typedef enum {
-+ VPBE_DISABLE = 0,
-+ VPBE_ENABLE = 1
-+} ATTENUATION, TRANSPARENCY, EXPANSION, BLINKING;
-+
-+typedef enum clk_source {
-+ CLK_SOURCE_CLK27 = 0,
-+ CLK_SOURCE_CLK54 = 1,
-+ CLK_SOURCE_VPBECLK = 2
-+} CLK_SOURCE;
-+
-+/*
-+ * Structures and Union Definitions
-+ */
-+
-+/* Structure for transparency and the blending factor for the bitmap window */
-+typedef struct vpbe_bitmap_blend_params {
-+ unsigned int colorkey; /* color key to be blend */
-+ unsigned int enable_colorkeying; /* enable color keying */
-+ unsigned int bf; /* valid range from 0 to 7 only. */
-+} vpbe_bitmap_blend_params_t;
-+
-+/* Structure for window expansion */
-+typedef struct vpbe_win_expansion {
-+ EXPANSION horizontal;
-+ EXPANSION vertical; /* 1: Enable 0:disable */
-+} vpbe_win_expansion_t;
-+
-+/* Structure for OSD window blinking options */
-+typedef struct vpbe_blink_option {
-+ BLINKING blinking; /* 1: Enable blinking 0: Disable */
-+ unsigned int interval; /* Valid only if blinking is 1 */
-+} vpbe_blink_option_t;
-+
-+/* Structure for DCLK parameters */
-+typedef struct vpbe_dclk {
-+ unsigned char dclk_pattern_width;
-+ unsigned int dclk_pattern0;
-+ unsigned int dclk_pattern1;
-+ unsigned int dclk_pattern2;
-+ unsigned int dclk_pattern3;
-+} vpbe_dclk_t;
-+
-+/* Structure for display format */
-+typedef struct vpbe_display_format {
-+ unsigned char interface; /* Output interface type */
-+ unsigned char mode; /* output mode */
-+} vpbe_display_format_t;
-+
-+/* Structure for background color */
-+typedef struct vpbe_backg_color {
-+ unsigned char clut_select; /* 2: RAM CLUT 1:ROM1 CLUT 0:ROM0 CLUT */
-+ unsigned char color_offset; /* index of color */
-+} vpbe_backg_color_t;
-+
-+/* Structure for Video window configurable parameters */
-+typedef struct vpbe_video_config_params {
-+ CB_CR_ORDER cb_cr_order; /*Cb/Cr order in input data for a pixel. */
-+ /* 0: cb cr 1: cr cb */
-+ vpbe_win_expansion_t exp_info; /* HZ/VT Expansion enable disable */
-+} vpbe_video_config_params_t;
-+
-+/*Union of structures giving the CLUT index for the 1, 2, 4 bit bitmap values.*/
-+typedef union vpbe_clut_idx {
-+ struct _for_4bit_bimap {
-+ unsigned char bitmap_val_0;
-+ unsigned char bitmap_val_1;
-+ unsigned char bitmap_val_2;
-+ unsigned char bitmap_val_3;
-+ unsigned char bitmap_val_4;
-+ unsigned char bitmap_val_5;
-+ unsigned char bitmap_val_6;
-+ unsigned char bitmap_val_7;
-+ unsigned char bitmap_val_8;
-+ unsigned char bitmap_val_9;
-+ unsigned char bitmap_val_10;
-+ unsigned char bitmap_val_11;
-+ unsigned char bitmap_val_12;
-+ unsigned char bitmap_val_13;
-+ unsigned char bitmap_val_14;
-+ unsigned char bitmap_val_15;
-+ } for_4bit_bimap;
-+ struct _for_2bit_bimap {
-+ unsigned char bitmap_val_0;
-+ unsigned char dummy0[4];
-+ unsigned char bitmap_val_1;
-+ unsigned char dummy1[4];
-+ unsigned char bitmap_val_2;
-+ unsigned char dummy2[4];
-+ unsigned char bitmap_val_3;
-+ } for_2bit_bimap;
-+ struct _for_1bit_bimap {
-+ unsigned char bitmap_val_0;
-+ unsigned char dummy0[14];
-+ unsigned char bitmap_val_1;
-+ } for_1bit_bimap;
-+} vpbe_clut_idx_t;
-+
-+/* Structure for bitmap window configurable parameters */
-+typedef struct vpbe_bitmap_config_params {
-+ /* Only for bitmap width = 1,2,4 bits */
-+ vpbe_clut_idx_t clut_idx;
-+ /* Attenuation value for YUV o/p for bitmap window */
-+ unsigned char attenuation_enable;
-+ /* 0: ROM DM270, 1:ROM DM320, 2:RAM CLUT */
-+ unsigned char clut_select;
-+} vpbe_bitmap_config_params_t;
-+
-+/* Unioun for video/OSD configuration parameters */
-+typedef union vpbe_conf_params {
-+
-+ struct vpbe_video_params {
-+ CB_CR_ORDER cb_cr_order;
-+ /* HZ/VT Expansion enable disable */
-+ vpbe_win_expansion_t exp_info;
-+ } video_params;
-+
-+ struct vpbe_bitmap_params {
-+ /* Attenuation value for YUV o/p */
-+ ATTENUATION attenuation_enable;
-+ /* 0: ROM DM270, 1: ROM DM320, 2:RAM CLUT */
-+ unsigned char clut_select;
-+ /* Only for bitmap width = 1,2,4 bits */
-+ vpbe_clut_idx_t clut_idx;
-+ /* 0: OSD window is bitmap window */
-+ /* 1: OSD window is attribute window */
-+ ATTRIBUTE enable_attribute;
-+ /* To hold bps value.
-+ Used to switch back from attribute to bitmap. */
-+ unsigned int stored_bits_per_pixel;
-+ /* Blending information */
-+ vpbe_bitmap_blend_params_t blend_info;
-+ /* OSD Blinking information */
-+ vpbe_blink_option_t blink_info;
-+ } bitmap_params;
-+
-+} vpbe_conf_params_t;
-+
-+typedef struct vpbe_video_params vpbe_video_params_t;
-+typedef struct vpbe_bitmap_params vpbe_bitmap_params_t;
-+
-+/* Structure to hold window position */
-+typedef struct vpbe_window_position {
-+ unsigned int xpos; /* X position of the window */
-+ unsigned int ypos; /* Y position of the window */
-+} vpbe_window_position_t;
-+
-+#ifdef __KERNEL__
-+/* Structure for each window */
-+typedef struct vpbe_dm_win_info {
-+ struct fb_info info;
-+ vpbe_window_position_t win_pos; /* X,Y position of window */
-+ /* Size of window is already there in var_info structure. */
-+
-+ dma_addr_t fb_base_phys; /*framebuffer area */
-+ unsigned int fb_base; /*window memory pointer */
-+ unsigned int fb_size; /*memory size */
-+ unsigned int pseudo_palette[17];
-+ int alloc_fb_mem;
-+ /*flag to identify if framebuffer area is fixed or not */
-+ unsigned long sdram_address;
-+ struct vpbe_dm_info *dm;
-+ unsigned char window_enable; /*Additions for all windows */
-+ zoom_params_t zoom; /*Zooming parameters */
-+ unsigned char field_frame_select; /*To select Field or frame */
-+ unsigned char numbufs; /*Number of buffers valid 2 or 3 */
-+ vpbe_conf_params_t conf_params;
-+ /*window configuration parameter union pointer */
-+} vpbe_dm_win_info_t;
-+#endif /*__KERNEL__*/
-+
-+/*
-+ * Videmode structure for display interface and mode settings
-+ */
-+typedef struct vpbe_fb_videomode {
-+ unsigned char name[10]; /* Mode name ( NTSC , PAL) */
-+ unsigned int vmode; /* FB_MODE_INTERLACED or FB_MODE_NON_INTERLACED */
-+ unsigned int xres; /* X Resolution of the display */
-+ unsigned int yres; /* Y Resolution of the display */
-+ unsigned int fps; /* frames per second */
-+ /* Timing Parameters applicable for std = 0 only */
-+ unsigned int left_margin;
-+ unsigned int right_margin;
-+ unsigned int upper_margin;
-+ unsigned int lower_margin;
-+ unsigned int hsync_len;
-+ unsigned int vsync_len;
-+ unsigned int sync; /* 0: hsync -ve/vsync -ve */
-+ /*1: hsync -ve/vsync +ve */
-+ /*2: hsync +ve/vsync -ve */
-+ /*3: hsync +ve/vsync +ve */
-+ unsigned int basepx; /* Display x,y start position */
-+ unsigned int basepy;
-+/* 1= Mode s available in modelist 0=Mode is not available in modelist */
-+ unsigned int std;
-+} vpbe_fb_videomode_t;
-+
-+/* Structure to interface videomode to application*/
-+typedef struct vpbe_mode_info {
-+ vpbe_fb_videomode_t vid_mode;
-+ unsigned char interface;
-+ unsigned char mode_idx;
-+} vpbe_mode_info_t;
-+
-+#ifdef __KERNEL__
-+/*
-+ * Structure for the driver holding information of windows,
-+ * memory base addresses etc.
-+ */
-+typedef struct vpbe_dm_info {
-+ vpbe_dm_win_info_t *osd0;
-+ vpbe_dm_win_info_t *osd1;
-+ vpbe_dm_win_info_t *vid0;
-+ vpbe_dm_win_info_t *vid1;
-+
-+/* to map the registers */
-+ dma_addr_t mmio_base_phys;
-+ unsigned int mmio_base;
-+ unsigned int mmio_size;
-+
-+ wait_queue_head_t vsync_wait;
-+ unsigned int vsync_cnt;
-+ int timeout;
-+
-+ /* this is the function that configures the output device (NTSC/PAL/LCD)
-+ * for the required output format (composite/s-video/component/rgb)
-+ */
-+ void (*output_device_config) (void);
-+
-+ struct device *dev;
-+
-+ vpbe_backg_color_t backg; /* background color */
-+ vpbe_dclk_t dclk; /*DCLK parameters */
-+ vpbe_display_format_t display; /*Display interface and mode */
-+ vpbe_fb_videomode_t videomode; /*Cuurent videomode */
-+ char ram_clut[256][3]; /*RAM CLUT array */
-+ struct fb_cursor cursor; /* cursor config params from fb.h */
-+/*Flag that indicates whether any of the display is enabled or not*/
-+ int display_enable;
-+} vpbe_dm_info_t;
-+
-+/*
-+ * Functions Definitions for 'davincifb' module
-+ */
-+int vpbe_mem_alloc_window_buf(vpbe_dm_win_info_t *);
-+int vpbe_mem_release_window_buf(vpbe_dm_win_info_t *);
-+void init_display_function(vpbe_display_format_t *);
-+int vpbe_mem_alloc_struct(vpbe_dm_win_info_t **);
-+void set_vid0_default_conf(void);
-+void set_vid1_default_conf(void);
-+void set_osd0_default_conf(void);
-+void set_osd1_default_conf(void);
-+void set_cursor_default_conf(void);
-+void set_dm_default_conf(void);
-+void set_win_enable(char *, unsigned int);
-+int within_vid0_limits(u32, u32, u32, u32);
-+void vpbe_set_display_default(void);
-+#ifdef __KERNEL__
-+void set_win_position(char *, u32, u32, u32, u32);
-+void change_win_param(int);
-+void set_interlaced(char *, unsigned int);
-+#endif /* __KERNEL__ */
-+
-+/*
-+ * Function definations for 'osd' module
-+ */
-+
-+int vpbe_enable_window(vpbe_dm_win_info_t *);
-+int vpbe_disable_window(vpbe_dm_win_info_t *);
-+int vpbe_vid_osd_select_field_frame(u8 *, u8);
-+int vpbe_bitmap_set_blend_factor(u8 *, vpbe_bitmap_blend_params_t *);
-+int vpbe_bitmap_set_ram_clut(void);
-+int vpbe_enable_disable_attribute_window(u32);
-+int vpbe_get_blinking(u8 *, vpbe_blink_option_t *);
-+int vpbe_set_blinking(u8 *, vpbe_blink_option_t *);
-+int vpbe_set_vid_params(u8 *, vpbe_video_config_params_t *);
-+int vpbe_get_vid_params(u8 *, vpbe_video_config_params_t *);
-+int vpbe_bitmap_get_params(u8 *, vpbe_bitmap_config_params_t *);
-+int vpbe_bitmap_set_params(u8 *, vpbe_bitmap_config_params_t *);
-+int vpbe_set_cursor_params(struct fb_cursor *);
-+int vpbe_set_vid_expansion(vpbe_win_expansion_t *);
-+int vpbe_set_dclk(vpbe_dclk_t *);
-+int vpbe_set_display_format(vpbe_display_format_t *);
-+int vpbe_set_backg_color(vpbe_backg_color_t *);
-+int vpbe_set_interface(u8);
-+int vpbe_query_mode(vpbe_mode_info_t *);
-+int vpbe_set_mode(struct vpbe_fb_videomode *);
-+int vpbe_set_venc_clk_source(u8);
-+void set_vid0_default_conf(void);
-+void set_osd0_default_conf(void);
-+void set_vid1_default_conf(void);
-+void set_osd1_default_conf(void);
-+void set_cursor_default_conf(void);
-+void set_dm_default_conf(void);
-+/*
-+ * Function definations for 'venc' module
-+ */
-+
-+void davincifb_ntsc_composite_config(void);
-+void davincifb_ntsc_svideo_config(void);
-+void davincifb_ntsc_component_config(void);
-+void davincifb_pal_composite_config(void);
-+void davincifb_pal_svideo_config(void);
-+void davincifb_pal_component_config(void);
-+
-+void vpbe_davincifb_ntsc_rgb_config(void);
-+void vpbe_davincifb_pal_rgb_config(void);
-+void vpbe_davincifb_525p_component_config(void);
-+void vpbe_davincifb_625p_component_config(void);
-+
-+void vpbe_enable_venc(int);
-+void vpbe_enable_dacs(int);
-+/*
-+ * Function definations for 'dlcd' module
-+ */
-+void vpbe_davincifb_480p_prgb_config(void);
-+void vpbe_davincifb_400p_prgb_config(void);
-+void vpbe_davincifb_350p_prgb_config(void);
-+void vpbe_set_display_timing(struct vpbe_fb_videomode *);
-+
-+void vpbe_enable_lcd(int);
-+/*
-+ * Following functions are not implemented
-+ */
-+void vpbe_davincifb_default_ycc16_config(void);
-+void vpbe_davincifb_default_ycc8_config(void);
-+void vpbe_davincifb_default_srgb_config(void);
-+void vpbe_davincifb_default_epson_config(void);
-+void vpbe_davincifb_default_casio_config(void);
-+void vpbe_davincifb_default_UDISP_config(void);
-+void vpbe_davincifb_default_STN_config(void);
-+#endif /*__KERNEL__*/
-+
-+#endif /* End of #ifndef DAVINCI_VPBE_H */
-diff -puNr -Naur directfb-1.6.3-orig/gfxdrivers/davinci/davinci_gfxdriver.h directfb-1.6.3/gfxdrivers/davinci/davinci_gfxdriver.h
---- directfb-1.6.3-orig/gfxdrivers/davinci/davinci_gfxdriver.h 1970-01-01 01:00:00.000000000 +0100
-+++ directfb-1.6.3/gfxdrivers/davinci/davinci_gfxdriver.h 2013-04-07 21:33:19.560662133 +0200
-@@ -0,0 +1,169 @@
-+/*
-+ TI Davinci driver - Graphics Driver
-+
-+ (c) Copyright 2007 Telio AG
-+
-+ Written by Denis Oliver Kropp <dok@directfb.org>
-+
-+ Code is derived from VMWare driver.
-+
-+ (c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org)
-+ (c) Copyright 2000-2004 Convergence (integrated media) GmbH
-+
-+ All rights reserved.
-+
-+ This library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2 of the License, or (at your option) any later version.
-+
-+ This library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with this library; if not, write to the
-+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ Boston, MA 02111-1307, USA.
-+*/
-+
-+#ifndef __DAVINCI_GFXDRIVER_H__
-+#define __DAVINCI_GFXDRIVER_H__
-+
-+#include <sys/ioctl.h>
-+#include <davincifb.h>
-+
-+#include <core/surface_buffer.h>
-+
-+#include "davincifb.h"
-+
-+#include "davinci_c64x.h"
-+
-+
-+typedef struct {
-+ /* validation flags */
-+ int v_flags;
-+
-+ /* cached/computed values */
-+ void *dst_addr;
-+ unsigned long dst_phys;
-+ unsigned int dst_size;
-+ unsigned long dst_pitch;
-+ DFBSurfacePixelFormat dst_format;
-+ unsigned long dst_bpp;
-+
-+ void *src_addr;
-+ unsigned long src_phys;
-+ unsigned long src_pitch;
-+ DFBSurfacePixelFormat src_format;
-+ unsigned long src_bpp;
-+
-+ unsigned long source_mult;
-+
-+ unsigned long fillcolor;
-+
-+ int blit_blend_sub_function;
-+ int draw_blend_sub_function;
-+
-+ DFBColor color;
-+ unsigned long color_argb;
-+ unsigned long colorkey;
-+
-+ DFBSurfaceBlittingFlags blitting_flags;
-+
-+ DFBRegion clip;
-+
-+ /** Add shared data here... **/
-+ struct fb_fix_screeninfo fix[4];
-+
-+ CoreSurfacePool *osd_pool;
-+ CoreSurfacePool *video_pool;
-+
-+ bool synced;
-+} DavinciDeviceData;
-+
-+
-+typedef struct {
-+ int num;
-+ int fd;
-+ void *mem;
-+ int size;
-+} DavinciFB;
-+
-+typedef struct {
-+ DavinciDeviceData *ddev;
-+
-+ CoreDFB *core;
-+
-+ CoreScreen *screen;
-+ CoreLayer *osd;
-+ CoreLayer *video;
-+
-+ DavinciFB fb[4];
-+
-+ DavinciC64x c64x;
-+ bool c64x_present;
-+
-+ DavinciC64xTasks tasks;
-+} DavinciDriverData;
-+
-+
-+static inline DFBResult
-+davincifb_pan_display( const DavinciFB *fb,
-+ struct fb_var_screeninfo *var,
-+ const CoreSurfaceBufferLock *lock,
-+ DFBSurfaceFlipFlags flags,
-+ int x,
-+ int y )
-+{
-+ int ret;
-+
-+ if (lock) {
-+#ifdef FBIO_SET_START
-+ CoreSurfaceBuffer *buffer = lock->buffer;
-+ struct fb_set_start set_start;
-+
-+ /* physical mode */
-+ set_start.offset = -1;
-+ set_start.sync = (flags & DSFLIP_ONSYNC) ? 1 : 0;
-+
-+ /* life's so easy */
-+ set_start.physical = lock->phys + DFB_BYTES_PER_LINE( buffer->format, x ) + y * lock->pitch;
-+
-+ ret = ioctl( fb->fd, FBIO_SET_START, &set_start );
-+ if (ret < 0)
-+ D_DEBUG( "FBIO_SET_START (0x%08lx, sync %llu) failed!\n",
-+ set_start.physical, set_start.sync );
-+
-+ if (ret == 0) {
-+ if (flags & DSFLIP_WAIT)
-+ ioctl( fb->fd, FBIO_WAITFORVSYNC );
-+
-+ return DFB_OK;
-+ }
-+
-+ /* fallback */
-+#endif
-+ var->xoffset = x; /* poor version */
-+ var->yoffset = y + lock->offset / lock->pitch;
-+ }
-+ else {
-+ var->xoffset = x;
-+ var->yoffset = y;
-+ }
-+
-+ var->activate = /*(flags & DSFLIP_ONSYNC) ? FB_ACTIVATE_VBL :*/ FB_ACTIVATE_NOW;
-+
-+ ret = ioctl( fb->fd, FBIOPAN_DISPLAY, var );
-+ if (ret)
-+ D_PERROR( "Davinci/FB: FBIOPAN_DISPLAY (fb%d - %d,%d) failed!\n",
-+ fb->num, var->xoffset, var->yoffset );
-+
-+ if (flags & DSFLIP_WAIT)
-+ ioctl( fb->fd, FBIO_WAITFORVSYNC );
-+
-+ return DFB_OK;
-+}
-+
-+#endif
-diff -puNr -Naur directfb-1.6.3-orig/tests/voodoo/voodoo_test.h directfb-1.6.3/tests/voodoo/voodoo_test.h
---- directfb-1.6.3-orig/tests/voodoo/voodoo_test.h 1970-01-01 01:00:00.000000000 +0100
-+++ directfb-1.6.3/tests/voodoo/voodoo_test.h 2013-04-07 21:33:31.824408024 +0200
-@@ -0,0 +1,10 @@
-+#ifndef __VOODOO_TEST_H__
-+#define __VOODOO_TEST_H__
-+
-+typedef enum {
-+ VOODOO_TEST_INCREASE,
-+ VOODOO_TEST_QUERY
-+} VoodooTestCall;
-+
-+#endif
-+
+++ /dev/null
-Call the imlib2-conf variable that are set by ac_cv_path_IMLIB2_CONFIG
-with the absolute path because the imlib2-config file is not covered
-by the PATH variable.
-This is important for cross compiler that need to get the staging settings
-instead of the host settings.
-
-Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
-
---- directfb-1.6.3/configure.orig 2013-03-31 13:18:22.837560379 +0200
-+++ directfb-1.6.3/configure 2013-03-31 13:23:40.177541099 +0200
-@@ -19816,8 +19816,8 @@ fi
- $as_echo "$as_me: WARNING: *** Imlib2 library not found, building without Imlib2 support ***" >&2;}
- imlib2="no"
- else
-- IMLIB2_CFLAGS=`imlib2-config --cflags`
-- IMLIB2_LIBS=`imlib2-config --libs`
-+ IMLIB2_CFLAGS=`$IMLIB2_CONFIG --cflags`
-+ IMLIB2_LIBS=`$IMLIB2_CONFIG --libs`
- imlib2="yes"
- fi
- fi
+++ /dev/null
-Remove definition to fix qt5 build.
-
-Fetch from: http://git.directfb.org/?p=core/DirectFB.git;a=patch;h=203f78a4193a8ff110dec3c860e0928af1a0a72f
-
-From 203f78a4193a8ff110dec3c860e0928af1a0a72f Mon Sep 17 00:00:00 2001
-From: Denis Oliver Kropp <dok@directfb.org>
-Date: Wed, 31 Jul 2013 21:56:05 +0200
-Subject: [PATCH] libdirect: Remove redefinition of __typeof__!!!
-
----
- lib/direct/os/linux/glibc/types.h | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/lib/direct/os/linux/glibc/types.h b/lib/direct/os/linux/glibc/types.h
-index 08e94b2..80cb350 100644
---- a/lib/direct/os/linux/glibc/types.h
-+++ b/lib/direct/os/linux/glibc/types.h
-@@ -81,7 +81,6 @@ typedef int64_t s64;
- #define __dfb_no_instrument_function__ __attribute__((no_instrument_function))
- #define __constructor__ __attribute__((constructor))
- #define __destructor__ __attribute__((destructor))
--#define __typeof__(x) __typeof__(x)
-
- #ifndef __func__
- #define __func__ __FUNCTION__
---
-1.7.9.5
-
+++ /dev/null
-This patch fixes builderrors while using '--with-gfxdrivers' and
-'--with-inputdrivers' with the current DirectFB version 1.6.3.
-
-Patch is taken from
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/DirectFB/files/DirectFB-1.6.3-setregion.patch
-
-Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
-
---- directfb-1.6.3/gfxdrivers/cyber5k/cyber5k.c
-+++ directfb-1.6.3/gfxdrivers/cyber5k/cyber5k.c
-@@ -636,7 +636,8 @@ osdSetRegion( CoreLayer
- CoreLayerRegionConfigFlags updated,
- CoreSurface *surface,
- CorePalette *palette,
-- CoreSurfaceBufferLock *lock )
-+ CoreSurfaceBufferLock *left_lock,
-+ CoreSurfaceBufferLock *right_lock )
- {
- DFBResult ret;
-
-@@ -644,7 +645,7 @@ osdSetRegion( CoreLayer
- ret = oldPrimaryFuncs.SetRegion( layer, oldPrimaryDriverData,
- layer_data, region_data,
- config, updated, surface,
-- palette, lock );
-+ palette, left_lock, right_lock );
- if (ret)
- return ret;
-
---- directfb-1.6.3/gfxdrivers/radeon/radeon_crtc1.c
-+++ directfb-1.6.3/gfxdrivers/radeon/radeon_crtc1.c
-@@ -147,14 +147,15 @@ crtc1SetRegion( CoreLayer
- CoreLayerRegionConfigFlags updated,
- CoreSurface *surface,
- CorePalette *palette,
-- CoreSurfaceBufferLock *lock )
-+ CoreSurfaceBufferLock *left_lock,
-+ CoreSurfaceBufferLock *right_lock )
- {
-
- if (updated & ~CLRCF_OPTIONS) {
- return OldPrimaryLayerFuncs.SetRegion( layer,
- OldPrimaryLayerDriverData,
- layer_data, region_data,
-- config, updated, surface, palette, lock );
-+ config, updated, surface, palette, left_lock, right_lock );
- }
-
- return DFB_OK;
---- directfb-1.6.3/gfxdrivers/cle266/uc_primary.c
-+++ directfb-1.6.3/gfxdrivers/cle266/uc_primary.c
-@@ -138,7 +138,8 @@ osdSetRegion( CoreLayer
- CoreLayerRegionConfigFlags updated,
- CoreSurface *surface,
- CorePalette *palette,
-- CoreSurfaceBufferLock *lock )
-+ CoreSurfaceBufferLock *left_lock,
-+ CoreSurfaceBufferLock *right_lock )
- {
- DFBResult ret;
- UcDriverData *ucdrv = (UcDriverData*) driver_data;
-@@ -147,7 +148,7 @@ osdSetRegion( CoreLayer
- ret = ucOldPrimaryFuncs.SetRegion( layer, ucOldPrimaryDriverData,
- layer_data, region_data,
- config, updated, surface,
-- palette, lock );
-+ palette, left_lock, right_lock );
- if (ret)
- return ret;
-
---- directfb-1.6.3/gfxdrivers/unichrome/uc_primary.c
-+++ directfb-1.6.3/gfxdrivers/unichrome/uc_primary.c
-@@ -135,7 +135,8 @@ osdSetRegion( CoreLayer
- CoreLayerRegionConfigFlags updated,
- CoreSurface *surface,
- CorePalette *palette,
-- CoreSurfaceBufferLock *lock )
-+ CoreSurfaceBufferLock *left_lock,
-+ CoreSurfaceBufferLock *right_lock )
- {
- DFBResult ret;
- UcDriverData *ucdrv = (UcDriverData*) driver_data;
-@@ -144,7 +145,7 @@ osdSetRegion( CoreLayer
- ret = ucOldPrimaryFuncs.SetRegion( layer, ucOldPrimaryDriverData,
- layer_data, region_data,
- config, updated, surface,
-- palette, lock );
-+ palette, left_lock, right_lock );
- if (ret)
- return ret;
-
-
+++ /dev/null
-Add patch to use 'gcc' instead of 'ld' for linking
-
-The patch has been sent upstream but it has not been merged yet
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From 176ce06b40897a357fe76a558af517197325f188 Mon Sep 17 00:00:00 2001
-From: Markos Chandras <markos.chandras@imgtec.com>
-Date: Wed, 28 Aug 2013 10:56:32 +0100
-Subject: [PATCH] rules/libobject.make: Use gcc for linking
-
-Invoking 'ld' directly may miss some necessary linker flags which
-are usually passed by gcc. Therefore, use gcc for linking.
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
----
- rules/libobject.make | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/rules/libobject.make b/rules/libobject.make
-index bc670da..2cba658 100644
---- a/rules/libobject.make
-+++ b/rules/libobject.make
-@@ -3,7 +3,7 @@
- if test -d $<.tmp; then rmdir $<.tmp; fi
- mkdir $<.tmp
- (cd $<.tmp && $(AR) x ../../$<)
-- $(LD) -o $@ -r $<.tmp/*.o
-+ $(CC) -nostdlib -o $@ -r $<.tmp/*.o
- rm -f $<.tmp/*.o && rmdir $<.tmp
-
- .PHONY: $(LTLIBRARIES:%.la=.libs/%.a)
---
-1.8.3.2
-
--- /dev/null
+Minor build system fixes
+
+Usual build system fixes to allow CC/CFLAGS/LDFLAGS to be overriden
+from the command line, and completed by additional flags from the
+Makefile.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -12,9 +12,10 @@
+ # (at your option) any later version.
+ #
+
+-CC = gcc
+-CFLAGS = -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \
+- -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef
++CC ?= gcc
++override CFLAGS += \
++ -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \
++ -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef
+ #CFLAGS += -DBIGENDIAN
+ #CFLAGS += -DALIGNMENT_WORKAROUND
+
+@@ -23,7 +24,7 @@
+ #CFLAGS += -g
+
+ # Pass linker flags here
+-LDFLAGS =
++override LDFLAGS +=
+
+ DESTDIR =
+ prefix = /usr/local
+++ /dev/null
-Minor build system fixes
-
-Usual build system fixes to allow CC/CFLAGS/LDFLAGS to be overriden
-from the command line, and completed by additional flags from the
-Makefile.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -12,9 +12,10 @@
- # (at your option) any later version.
- #
-
--CC = gcc
--CFLAGS = -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \
-- -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef
-+CC ?= gcc
-+override CFLAGS += \
-+ -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \
-+ -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef
- #CFLAGS += -DBIGENDIAN
- #CFLAGS += -DALIGNMENT_WORKAROUND
-
-@@ -23,7 +24,7 @@
- #CFLAGS += -g
-
- # Pass linker flags here
--LDFLAGS =
-+override LDFLAGS +=
-
- DESTDIR =
- prefix = /usr/local
--- /dev/null
+From 03bab84ca3f102274837e83ee6da4c997a9da018 Mon Sep 17 00:00:00 2001
+From: Tzu-Jung Lee <tjlee@ambarella.com>
+Date: Fri, 12 Jul 2013 20:00:57 +0800
+Subject: [PATCH] build: modify hardcoded gcc to support buildroot
+
+Signed-off-by: Tzu-Jung Lee <tjlee@ambarella.com>
+
+diff --git a/src/Makefile b/src/Makefile
+index 026b6ba..b87ae9f 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -5,10 +5,10 @@ OBJFILES := main.o lookup.o\
+ lookup_bfd.o lookup_kas.o
+
+ dropwatch: $(OBJFILES)
+- gcc -g -o dropwatch $(OBJFILES) $(LDFLAGS)
++ $(CC) -g -o dropwatch $(OBJFILES) $(LDFLAGS)
+
+ %.o: %.c
+- gcc $(CFLAGS) $<
++ $(CC) $(CFLAGS) $<
+ clean:
+ rm -f dropwatch *.o
+
+--
+1.8.3.2
+
--- /dev/null
+libbfd from binutils 2.23.1+ requires PACKAGE* definitions from autoconf.
+Patch from https://fedorahosted.org/dropwatch/ticket/5
+Upstream status: new.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -aurd src.orig/lookup.c src/lookup.c
+--- a/src/lookup.c 2011-10-03 22:51:38.000000000 +0400
++++ b/src/lookup.c 2013-02-18 09:13:56.683214438 +0400
+@@ -27,13 +27,13 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <sys/utsname.h>
+-#include <bfd.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+
+ #include "lookup.h"
++#include <bfd.h>
+
+ extern struct lookup_methods bfd_methods;
+ extern struct lookup_methods kallsym_methods;
+diff -aurd src.orig/lookup.h src/lookup.h
+--- a/src/lookup.h 2011-10-03 22:51:38.000000000 +0400
++++ b/src/lookup.h 2013-02-18 09:11:00.506895026 +0400
+@@ -28,6 +28,9 @@
+ #include <stdlib.h>
+ #include <asm/types.h>
+
++// satisfy PR 14072 in bfd.h
++#define PACKAGE 1
++#define PACKAGE_VERSION 1
+
+ /*
+ * Initalization routine
+diff -aurd src.orig/lookup_bfd.c src/lookup_bfd.c
+--- a/src/lookup_bfd.c 2012-01-16 22:34:11.000000000 +0400
++++ b/src/lookup_bfd.c 2013-02-18 09:14:02.472984310 +0400
+@@ -25,13 +25,13 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <sys/utsname.h>
+-#include <bfd.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+
+ #include "lookup.h"
++#include <bfd.h>
+
+
+ static int lookup_bfd_init(void)
+diff -aurd src.orig/lookup_kas.c src/lookup_kas.c
+--- a/src/lookup_kas.c 2012-05-31 02:43:23.000000000 +0400
++++ b/src/lookup_kas.c 2013-02-18 09:14:07.906101713 +0400
+@@ -25,7 +25,6 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <sys/utsname.h>
+-#include <bfd.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+@@ -33,6 +32,7 @@
+ #include <sys/queue.h>
+
+ #include "lookup.h"
++#include <bfd.h>
+
+ struct symbol_entry {
+ char *sym_name;
--- /dev/null
+-Werror shouldn't be used in released code since it can
+cause random build failures on moderate warnings. It also
+depends on the used toolchain since different toolchains may
+or may not print the same warnings.
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+Index: dropwatch-1.4/src/Makefile
+===================================================================
+--- dropwatch-1.4.orig/src/Makefile
++++ dropwatch-1.4/src/Makefile
+@@ -1,5 +1,5 @@
+ all: dropwatch
+-CFLAGS+=-c -g -D_GNU_SOURCE -Wall -Werror `pkg-config --cflags libnl-3.0`
++CFLAGS+=-c -g -D_GNU_SOURCE -Wall `pkg-config --cflags libnl-3.0`
+ LDFLAGS=-lbfd -lreadline -lnl-3 -lnl-genl-3
+ OBJFILES := main.o lookup.o\
+ lookup_bfd.o lookup_kas.o
+++ /dev/null
-From 03bab84ca3f102274837e83ee6da4c997a9da018 Mon Sep 17 00:00:00 2001
-From: Tzu-Jung Lee <tjlee@ambarella.com>
-Date: Fri, 12 Jul 2013 20:00:57 +0800
-Subject: [PATCH] build: modify hardcoded gcc to support buildroot
-
-Signed-off-by: Tzu-Jung Lee <tjlee@ambarella.com>
-
-diff --git a/src/Makefile b/src/Makefile
-index 026b6ba..b87ae9f 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -5,10 +5,10 @@ OBJFILES := main.o lookup.o\
- lookup_bfd.o lookup_kas.o
-
- dropwatch: $(OBJFILES)
-- gcc -g -o dropwatch $(OBJFILES) $(LDFLAGS)
-+ $(CC) -g -o dropwatch $(OBJFILES) $(LDFLAGS)
-
- %.o: %.c
-- gcc $(CFLAGS) $<
-+ $(CC) $(CFLAGS) $<
- clean:
- rm -f dropwatch *.o
-
---
-1.8.3.2
-
+++ /dev/null
-libbfd from binutils 2.23.1+ requires PACKAGE* definitions from autoconf.
-Patch from https://fedorahosted.org/dropwatch/ticket/5
-Upstream status: new.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -aurd src.orig/lookup.c src/lookup.c
---- a/src/lookup.c 2011-10-03 22:51:38.000000000 +0400
-+++ b/src/lookup.c 2013-02-18 09:13:56.683214438 +0400
-@@ -27,13 +27,13 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <sys/utsname.h>
--#include <bfd.h>
- #include <string.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-
- #include "lookup.h"
-+#include <bfd.h>
-
- extern struct lookup_methods bfd_methods;
- extern struct lookup_methods kallsym_methods;
-diff -aurd src.orig/lookup.h src/lookup.h
---- a/src/lookup.h 2011-10-03 22:51:38.000000000 +0400
-+++ b/src/lookup.h 2013-02-18 09:11:00.506895026 +0400
-@@ -28,6 +28,9 @@
- #include <stdlib.h>
- #include <asm/types.h>
-
-+// satisfy PR 14072 in bfd.h
-+#define PACKAGE 1
-+#define PACKAGE_VERSION 1
-
- /*
- * Initalization routine
-diff -aurd src.orig/lookup_bfd.c src/lookup_bfd.c
---- a/src/lookup_bfd.c 2012-01-16 22:34:11.000000000 +0400
-+++ b/src/lookup_bfd.c 2013-02-18 09:14:02.472984310 +0400
-@@ -25,13 +25,13 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <sys/utsname.h>
--#include <bfd.h>
- #include <string.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-
- #include "lookup.h"
-+#include <bfd.h>
-
-
- static int lookup_bfd_init(void)
-diff -aurd src.orig/lookup_kas.c src/lookup_kas.c
---- a/src/lookup_kas.c 2012-05-31 02:43:23.000000000 +0400
-+++ b/src/lookup_kas.c 2013-02-18 09:14:07.906101713 +0400
-@@ -25,7 +25,6 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <sys/utsname.h>
--#include <bfd.h>
- #include <string.h>
- #include <unistd.h>
- #include <sys/types.h>
-@@ -33,6 +32,7 @@
- #include <sys/queue.h>
-
- #include "lookup.h"
-+#include <bfd.h>
-
- struct symbol_entry {
- char *sym_name;
+++ /dev/null
--Werror shouldn't be used in released code since it can
-cause random build failures on moderate warnings. It also
-depends on the used toolchain since different toolchains may
-or may not print the same warnings.
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: dropwatch-1.4/src/Makefile
-===================================================================
---- dropwatch-1.4.orig/src/Makefile
-+++ dropwatch-1.4/src/Makefile
-@@ -1,5 +1,5 @@
- all: dropwatch
--CFLAGS+=-c -g -D_GNU_SOURCE -Wall -Werror `pkg-config --cflags libnl-3.0`
-+CFLAGS+=-c -g -D_GNU_SOURCE -Wall `pkg-config --cflags libnl-3.0`
- LDFLAGS=-lbfd -lreadline -lnl-3 -lnl-genl-3
- OBJFILES := main.o lookup.o\
- lookup_bfd.o lookup_kas.o
--- /dev/null
+--- e2fsprogs-1.41.9/MCONFIG.in.orig 2009-10-07 20:25:07.000000000 +0800
++++ e2fsprogs-1.41.9/MCONFIG.in 2009-10-07 20:21:41.000000000 +0800
+@@ -85,7 +85,7 @@
+ #
+ LIB = $(top_builddir)/lib
+ LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@
+-LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
++LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @SEM_INIT_LIB@
+ LIBE2P = $(LIB)/libe2p@LIB_EXT@
+ LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
+ LIBUUID = @LIBUUID@ @SOCKET_LIB@
+++ /dev/null
---- e2fsprogs-1.41.9/MCONFIG.in.orig 2009-10-07 20:25:07.000000000 +0800
-+++ e2fsprogs-1.41.9/MCONFIG.in 2009-10-07 20:21:41.000000000 +0800
-@@ -85,7 +85,7 @@
- #
- LIB = $(top_builddir)/lib
- LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@
--LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
-+LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @SEM_INIT_LIB@
- LIBE2P = $(LIB)/libe2p@LIB_EXT@
- LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
- LIBUUID = @LIBUUID@ @SOCKET_LIB@
--- /dev/null
+This patch uses system include files instead of a hard coded system path to fixe
+potential compilation failure on systems that do not populate system header
+files in /usr/include/..
+
+Signed-off-by: Eric Jarrige <eric.jarrige@armadeus.org>
+---
+Index: host-elftosb-10.12.01/common/stdafx.h
+===================================================================
+--- host-elftosb-10.12.01.orig/common/stdafx.h 2012-01-30 12:43:35.000000000 +0100
++++ host-elftosb-10.12.01/common/stdafx.h 2012-01-30 12:43:54.000000000 +0100
+@@ -27,7 +27,7 @@
+ // For Linux systems only, types.h only defines the signed
+ // integer types. This is not professional code.
+ // Update: They are defined in the header files in the more recent version of redhat enterprise gcc.
+-#include "/usr/include/sys/types.h"
++#include <sys/types.h>
+ #include <stdint.h>
+ //typedef unsigned long uint32_t;
+ //typedef unsigned short uint16_t;
--- /dev/null
+Subject: [PATCH 1/1] elftosb: force host C++ compiler
+
+Because Freescale provides *.cpp sources and elftosb links again libstdc++,
+force to use the host c++ compiler.
+
+This patch avoids the following error occurs:
+
+gcc AESKey.o Blob.o crc.o DataSource.o DataTarget.o ELFSourceFile.o EncoreBootImage.o EvalContext.o GHSSecInfo.o GlobMatcher.o HexValues.o Logging.o Operation.o OptionDictionary.o options.o OutputSection.o Random.o RijndaelCBCMAC.o rijndael.o SHA1.o SourceFile.o SRecordSourceFile.o stdafx.o StELFFile.o StExecutableImage.o StSRecordFile.o Value.o Version.o format_string.o ExcludesListMatcher.o SearchPath.o DataSourceImager.o IVTDataSource.o BootImageGenerator.o ConversionController.o ElftosbAST.o elftosb.o elftosb_lexer.o ElftosbLexer.o elftosb_parser.tab.o EncoreBootImageGenerator.o -lstdc++ -o elftosb
+/usr/bin/ld: ElftosbAST.o: undefined reference to symbol 'powf@@GLIBC_2.2.5'
+/usr/bin/ld: note: 'powf@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line
+/lib64/libm.so.6: could not read symbols: Invalid operation
+collect2: error: ld returned 1 exit status
+
+When compiling with gcc and linking against libstdc++, ld uses libc instead of
+libstdc++.
+However, libc does not provide all functions libstdc++ does.
+Indeed, maths functions are provided by libm, not libc.
+Thus, elftosb should either:
+- use gcc and link against libc and libm;
+- or use g++ and link against libstdc++.
+
+Because elftosb is written in C++, this patch implement the sencond option, using
+g++ and linking against libstdc++.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+Index: host-elftosb-10.12.01/makefile.rules
+===================================================================
+--- host-elftosb-10.12.01.orig/makefile.rules 2012-06-09 21:12:23.557526100 +0200
++++ host-elftosb-10.12.01/makefile.rules 2012-06-09 21:15:21.659894571 +0200
+@@ -15,6 +15,8 @@
+ # UNAMES is going to be set to either "Linux" or "CYGWIN_NT-5.1"
+ UNAMES = $(shell uname -s)
+
++CXX ?= g++
++
+ #*******************************************************************************
+ # Directories
+
+@@ -37,9 +39,9 @@
+ #*******************************************************************************
+ # Build flags
+-# gcc Compiler flags
++# Compiler flags
+ # -g : Produce debugging information.
+
+-CFLAGS = -g $(INC_PATH) -D${UNAMES}
++CXXFLAGS = -g $(INC_PATH) -D${UNAMES}
+
+ #*******************************************************************************
+ # File lists
+@@ -137,13 +139,13 @@ clean:
+ ${EXEC_FILE_ELFTOSB2} ${EXEC_FILE_SBTOOL} ${EXEC_FILE_KEYGEN}
+
+ elftosb: ${OBJ_FILES_ELFTOSB2}
+- gcc ${OBJ_FILES_ELFTOSB2} ${LIBS} -o ${EXEC_FILE_ELFTOSB2}
++ $(CXX) ${OBJ_FILES_ELFTOSB2} ${LIBS} -o ${EXEC_FILE_ELFTOSB2}
+
+ sbtool: ${OBJ_FILES_SBTOOL}
+- gcc ${OBJ_FILES_SBTOOL} ${LIBS} -o ${EXEC_FILE_SBTOOL}
++ $(CXX) ${OBJ_FILES_SBTOOL} ${LIBS} -o ${EXEC_FILE_SBTOOL}
+
+ keygen: ${OBJ_FILES_KEYGEN}
+- gcc ${OBJ_FILES_KEYGEN} ${LIBS} -o ${EXEC_FILE_KEYGEN}
++ $(CXX) ${OBJ_FILES_KEYGEN} ${LIBS} -o ${EXEC_FILE_KEYGEN}
+
+
+ #ifeq ("${UNAMES}", "Linux")
+@@ -153,10 +155,10 @@ keygen: ${OBJ_FILES_KEYGEN}
+ .SUFFIXES : .c .cpp
+
+ .c.o :
+- gcc ${CFLAGS} -c $<
++ $(CC) ${CXXFLAGS} -c $<
+
+ .cpp.o :
+- gcc ${CFLAGS} -c $<
++ $(CXX) ${CXXFLAGS} -c $<
+
+ #endif
+
+@@ -165,13 +167,13 @@ keygen: ${OBJ_FILES_KEYGEN}
+
+ %.d: %.c
+ @set -e; \
+- $(CC) -MM $(CFLAGS) $< | \
++ $(CC) -MM $(CXXFLAGS) $< | \
+ sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
+ [ -s $@ ] || rm -f $@
+
+ %.d: %.cpp
+ @set -e; \
+- $(CC) -MM $(CFLAGS) $< | \
++ $(CXX) -MM $(CXXFLAGS) $< | \
+ sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
+ [ -s $@ ] || rm -f $@
+
+++ /dev/null
-This patch uses system include files instead of a hard coded system path to fixe
-potential compilation failure on systems that do not populate system header
-files in /usr/include/..
-
-Signed-off-by: Eric Jarrige <eric.jarrige@armadeus.org>
----
-Index: host-elftosb-10.12.01/common/stdafx.h
-===================================================================
---- host-elftosb-10.12.01.orig/common/stdafx.h 2012-01-30 12:43:35.000000000 +0100
-+++ host-elftosb-10.12.01/common/stdafx.h 2012-01-30 12:43:54.000000000 +0100
-@@ -27,7 +27,7 @@
- // For Linux systems only, types.h only defines the signed
- // integer types. This is not professional code.
- // Update: They are defined in the header files in the more recent version of redhat enterprise gcc.
--#include "/usr/include/sys/types.h"
-+#include <sys/types.h>
- #include <stdint.h>
- //typedef unsigned long uint32_t;
- //typedef unsigned short uint16_t;
+++ /dev/null
-Subject: [PATCH 1/1] elftosb: force host C++ compiler
-
-Because Freescale provides *.cpp sources and elftosb links again libstdc++,
-force to use the host c++ compiler.
-
-This patch avoids the following error occurs:
-
-gcc AESKey.o Blob.o crc.o DataSource.o DataTarget.o ELFSourceFile.o EncoreBootImage.o EvalContext.o GHSSecInfo.o GlobMatcher.o HexValues.o Logging.o Operation.o OptionDictionary.o options.o OutputSection.o Random.o RijndaelCBCMAC.o rijndael.o SHA1.o SourceFile.o SRecordSourceFile.o stdafx.o StELFFile.o StExecutableImage.o StSRecordFile.o Value.o Version.o format_string.o ExcludesListMatcher.o SearchPath.o DataSourceImager.o IVTDataSource.o BootImageGenerator.o ConversionController.o ElftosbAST.o elftosb.o elftosb_lexer.o ElftosbLexer.o elftosb_parser.tab.o EncoreBootImageGenerator.o -lstdc++ -o elftosb
-/usr/bin/ld: ElftosbAST.o: undefined reference to symbol 'powf@@GLIBC_2.2.5'
-/usr/bin/ld: note: 'powf@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line
-/lib64/libm.so.6: could not read symbols: Invalid operation
-collect2: error: ld returned 1 exit status
-
-When compiling with gcc and linking against libstdc++, ld uses libc instead of
-libstdc++.
-However, libc does not provide all functions libstdc++ does.
-Indeed, maths functions are provided by libm, not libc.
-Thus, elftosb should either:
-- use gcc and link against libc and libm;
-- or use g++ and link against libstdc++.
-
-Because elftosb is written in C++, this patch implement the sencond option, using
-g++ and linking against libstdc++.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
-Index: host-elftosb-10.12.01/makefile.rules
-===================================================================
---- host-elftosb-10.12.01.orig/makefile.rules 2012-06-09 21:12:23.557526100 +0200
-+++ host-elftosb-10.12.01/makefile.rules 2012-06-09 21:15:21.659894571 +0200
-@@ -15,6 +15,8 @@
- # UNAMES is going to be set to either "Linux" or "CYGWIN_NT-5.1"
- UNAMES = $(shell uname -s)
-
-+CXX ?= g++
-+
- #*******************************************************************************
- # Directories
-
-@@ -37,9 +39,9 @@
- #*******************************************************************************
- # Build flags
--# gcc Compiler flags
-+# Compiler flags
- # -g : Produce debugging information.
-
--CFLAGS = -g $(INC_PATH) -D${UNAMES}
-+CXXFLAGS = -g $(INC_PATH) -D${UNAMES}
-
- #*******************************************************************************
- # File lists
-@@ -137,13 +139,13 @@ clean:
- ${EXEC_FILE_ELFTOSB2} ${EXEC_FILE_SBTOOL} ${EXEC_FILE_KEYGEN}
-
- elftosb: ${OBJ_FILES_ELFTOSB2}
-- gcc ${OBJ_FILES_ELFTOSB2} ${LIBS} -o ${EXEC_FILE_ELFTOSB2}
-+ $(CXX) ${OBJ_FILES_ELFTOSB2} ${LIBS} -o ${EXEC_FILE_ELFTOSB2}
-
- sbtool: ${OBJ_FILES_SBTOOL}
-- gcc ${OBJ_FILES_SBTOOL} ${LIBS} -o ${EXEC_FILE_SBTOOL}
-+ $(CXX) ${OBJ_FILES_SBTOOL} ${LIBS} -o ${EXEC_FILE_SBTOOL}
-
- keygen: ${OBJ_FILES_KEYGEN}
-- gcc ${OBJ_FILES_KEYGEN} ${LIBS} -o ${EXEC_FILE_KEYGEN}
-+ $(CXX) ${OBJ_FILES_KEYGEN} ${LIBS} -o ${EXEC_FILE_KEYGEN}
-
-
- #ifeq ("${UNAMES}", "Linux")
-@@ -153,10 +155,10 @@ keygen: ${OBJ_FILES_KEYGEN}
- .SUFFIXES : .c .cpp
-
- .c.o :
-- gcc ${CFLAGS} -c $<
-+ $(CC) ${CXXFLAGS} -c $<
-
- .cpp.o :
-- gcc ${CFLAGS} -c $<
-+ $(CXX) ${CXXFLAGS} -c $<
-
- #endif
-
-@@ -165,13 +167,13 @@ keygen: ${OBJ_FILES_KEYGEN}
-
- %.d: %.c
- @set -e; \
-- $(CC) -MM $(CFLAGS) $< | \
-+ $(CC) -MM $(CXXFLAGS) $< | \
- sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
- [ -s $@ ] || rm -f $@
-
- %.d: %.cpp
- @set -e; \
-- $(CC) -MM $(CFLAGS) $< | \
-+ $(CXX) -MM $(CXXFLAGS) $< | \
- sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
- [ -s $@ ] || rm -f $@
-
--- /dev/null
+downloaded from
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-misc/empty/files/empty-respect-LDFLAGS.patch?view=markup
+
+Reported on the Gentoo bug tracker
+https://bugs.gentoo.org/show_bug.cgi?id=429664
+
+and reported upstream
+https://sourceforge.net/tracker/?func=detail&aid=3554236&group_id=136798&atid=736886
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+--- empty-0.6.18b/Makefile
++++ empty-0.6.18b/Makefile
+@@ -16,7 +16,7 @@
+ PREFIX = /usr/local
+
+ all:
+- ${CC} ${CFLAGS} -Wall ${LIBS} -o empty empty.c
++ ${CC} ${CFLAGS} ${LDFLAGS} empty.c ${LIBS} -o empty
+
+ FreeBSD: all
+ NetBSD: all
+++ /dev/null
-downloaded from
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-misc/empty/files/empty-respect-LDFLAGS.patch?view=markup
-
-Reported on the Gentoo bug tracker
-https://bugs.gentoo.org/show_bug.cgi?id=429664
-
-and reported upstream
-https://sourceforge.net/tracker/?func=detail&aid=3554236&group_id=136798&atid=736886
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
---- empty-0.6.18b/Makefile
-+++ empty-0.6.18b/Makefile
-@@ -16,7 +16,7 @@
- PREFIX = /usr/local
-
- all:
-- ${CC} ${CFLAGS} -Wall ${LIBS} -o empty empty.c
-+ ${CC} ${CFLAGS} ${LDFLAGS} empty.c ${LIBS} -o empty
-
- FreeBSD: all
- NetBSD: all
--- /dev/null
+Description: correct include
+ This part of the code was moved into it's own project and was packaged
+ separately by me. To make the build process work, this small fix is
+ necessary.
+Author: Philipp Huebner <debalance@debian.org>
+
+Index: erlang-p1-sip/src/esip_socket.erl
+===================================================================
+--- erlang-p1-sip.orig/src/esip_socket.erl
++++ erlang-p1-sip/src/esip_socket.erl
+@@ -22,7 +22,7 @@
+
+ -include("esip.hrl").
+ -include("esip_lib.hrl").
+--include("stun.hrl").
++-include_lib("p1_stun/include/stun.hrl").
+
+ -define(TCP_SEND_TIMEOUT, 15000).
+ -define(CONNECT_TIMEOUT, 20000).
+++ /dev/null
-Description: correct include
- This part of the code was moved into it's own project and was packaged
- separately by me. To make the build process work, this small fix is
- necessary.
-Author: Philipp Huebner <debalance@debian.org>
-
-Index: erlang-p1-sip/src/esip_socket.erl
-===================================================================
---- erlang-p1-sip.orig/src/esip_socket.erl
-+++ erlang-p1-sip/src/esip_socket.erl
-@@ -22,7 +22,7 @@
-
- -include("esip.hrl").
- -include("esip_lib.hrl").
---include("stun.hrl").
-+-include_lib("p1_stun/include/stun.hrl").
-
- -define(TCP_SEND_TIMEOUT, 15000).
- -define(CONNECT_TIMEOUT, 20000).
--- /dev/null
+buildconfig is meant to be executed on the host, so it has to be compiled
+using $(HOSTCC), not $(CC).
+
+Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
+---
+ OS/Makefile-Base | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/OS/Makefile-Base b/OS/Makefile-Base
+index 29a6ad3..420ba60 100644
+--- a/OS/Makefile-Base
++++ b/OS/Makefile-Base
+@@ -114,8 +114,8 @@ allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \
+
+ # Targets for special-purpose configuration header builders
+ buildconfig: buildconfig.c
+- @echo "$(CC) buildconfig.c"
+- $(FE)$(CC) $(CFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS)
++ @echo "$(HOSTCC) buildconfig.c"
++ $(FE)$(HOSTCC) $(HOSTCFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS)
+
+
+ # Target for the exicyclog utility script
--- /dev/null
+If exim had already been installed, the install script makes backup
+copies of the pre-existing executables with a ".0" suffix.
+
+This leads to useless duplicated files on the target, so disable this
+piece of code.
+
+Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
+---
+ scripts/exim_install | 18 +++++++++---------
+ 1 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/scripts/exim_install b/scripts/exim_install
+index 616ab3c..e68e7d5 100755
+--- a/scripts/exim_install
++++ b/scripts/exim_install
+@@ -344,15 +344,15 @@ while [ $# -gt 0 ]; do
+
+ else
+ if ../scripts/newer ${name} ${BIN_DIRECTORY}/${name}; then
+- if [ -f ${BIN_DIRECTORY}/${name} ]; then
+- echo ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
+- ${real} ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
+- if [ $? -ne 0 ]; then
+- echo $com ""
+- echo $com "*** Exim installation ${ver}failed ***"
+- exit 1
+- fi
+- fi
++# if [ -f ${BIN_DIRECTORY}/${name} ]; then
++# echo ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
++# ${real} ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
++# if [ $? -ne 0 ]; then
++# echo $com ""
++# echo $com "*** Exim installation ${ver}failed ***"
++# exit 1
++# fi
++# fi
+ echo ${CP} ${name} ${BIN_DIRECTORY}
+ ${real} ${CP} ${name} ${BIN_DIRECTORY}
+ if [ $? -ne 0 ]; then
--- /dev/null
+The exim install script installs a binary named exim-<version>, plus a symlink
+to it named exim.
+In order to achieve this "feature" (of dubious usefulness) it runs the
+executable (on the host) and then filters its output to grab the version number.
+This clearly cannot work if the executable is cross-compiled, so get rid of all
+of it and just install an executable file called exim.
+
+Inspired by:
+http://patch-tracker.debian.org/patch/series/view/exim4/4.76-2/35_install.dpatch
+
+Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
+---
+ scripts/exim_install | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/exim_install b/scripts/exim_install
+index e68e7d5..487a4e1 100755
+--- a/scripts/exim_install
++++ b/scripts/exim_install
+@@ -59,6 +59,8 @@ while [ $# -gt 0 ] ; do
+ shift
+ done
+
++do_symlink=no
++
+ # Get the values of BIN_DIRECTORY, CONFIGURE_FILE, INFO_DIRECTORY, NO_SYMLINK,
+ # SYSTEM_ALIASES_FILE, and EXE from the global Makefile (in the build
+ # directory). EXE is empty except in the Cygwin environment. In each case, keep
+@@ -218,8 +220,9 @@ while [ $# -gt 0 ]; do
+ # The exim binary is handled specially
+
+ if [ $name = exim${EXE} ]; then
+- version=exim-`./exim -bV -C /dev/null | \
+- awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
++ version=exim
++# version=exim-`./exim -bV -C /dev/null | \
++# awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
+
+ if [ "${version}" = "exim-${EXE}" ]; then
+ echo $com ""
+++ /dev/null
-buildconfig is meant to be executed on the host, so it has to be compiled
-using $(HOSTCC), not $(CC).
-
-Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
----
- OS/Makefile-Base | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/OS/Makefile-Base b/OS/Makefile-Base
-index 29a6ad3..420ba60 100644
---- a/OS/Makefile-Base
-+++ b/OS/Makefile-Base
-@@ -114,8 +114,8 @@ allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \
-
- # Targets for special-purpose configuration header builders
- buildconfig: buildconfig.c
-- @echo "$(CC) buildconfig.c"
-- $(FE)$(CC) $(CFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS)
-+ @echo "$(HOSTCC) buildconfig.c"
-+ $(FE)$(HOSTCC) $(HOSTCFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS)
-
-
- # Target for the exicyclog utility script
+++ /dev/null
-If exim had already been installed, the install script makes backup
-copies of the pre-existing executables with a ".0" suffix.
-
-This leads to useless duplicated files on the target, so disable this
-piece of code.
-
-Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
----
- scripts/exim_install | 18 +++++++++---------
- 1 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/scripts/exim_install b/scripts/exim_install
-index 616ab3c..e68e7d5 100755
---- a/scripts/exim_install
-+++ b/scripts/exim_install
-@@ -344,15 +344,15 @@ while [ $# -gt 0 ]; do
-
- else
- if ../scripts/newer ${name} ${BIN_DIRECTORY}/${name}; then
-- if [ -f ${BIN_DIRECTORY}/${name} ]; then
-- echo ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
-- ${real} ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
-- if [ $? -ne 0 ]; then
-- echo $com ""
-- echo $com "*** Exim installation ${ver}failed ***"
-- exit 1
-- fi
-- fi
-+# if [ -f ${BIN_DIRECTORY}/${name} ]; then
-+# echo ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
-+# ${real} ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
-+# if [ $? -ne 0 ]; then
-+# echo $com ""
-+# echo $com "*** Exim installation ${ver}failed ***"
-+# exit 1
-+# fi
-+# fi
- echo ${CP} ${name} ${BIN_DIRECTORY}
- ${real} ${CP} ${name} ${BIN_DIRECTORY}
- if [ $? -ne 0 ]; then
+++ /dev/null
-The exim install script installs a binary named exim-<version>, plus a symlink
-to it named exim.
-In order to achieve this "feature" (of dubious usefulness) it runs the
-executable (on the host) and then filters its output to grab the version number.
-This clearly cannot work if the executable is cross-compiled, so get rid of all
-of it and just install an executable file called exim.
-
-Inspired by:
-http://patch-tracker.debian.org/patch/series/view/exim4/4.76-2/35_install.dpatch
-
-Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
----
- scripts/exim_install | 7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/scripts/exim_install b/scripts/exim_install
-index e68e7d5..487a4e1 100755
---- a/scripts/exim_install
-+++ b/scripts/exim_install
-@@ -59,6 +59,8 @@ while [ $# -gt 0 ] ; do
- shift
- done
-
-+do_symlink=no
-+
- # Get the values of BIN_DIRECTORY, CONFIGURE_FILE, INFO_DIRECTORY, NO_SYMLINK,
- # SYSTEM_ALIASES_FILE, and EXE from the global Makefile (in the build
- # directory). EXE is empty except in the Cygwin environment. In each case, keep
-@@ -218,8 +220,9 @@ while [ $# -gt 0 ]; do
- # The exim binary is handled specially
-
- if [ $name = exim${EXE} ]; then
-- version=exim-`./exim -bV -C /dev/null | \
-- awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
-+ version=exim
-+# version=exim-`./exim -bV -C /dev/null | \
-+# awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
-
- if [ "${version}" = "exim-${EXE}" ]; then
- echo $com ""
--- /dev/null
+version.cpp: remove useless header inclusion
+
+The inclusion of link.h header is not required and can create build
+error with some toolchains.
+The patch is pushed on the upstream for the next release.
+http://dev.exiv2.org/issues/1007
+
+Signed-off-by: Nicolas Serafini <nicolas.serafini@sensefly.com>
+
+--- exiv2-0.24.orig/src/version.cpp 2013-12-01 13:13:42.000000000 +0100
++++ exiv2-0.24/src/version.cpp 2014-12-04 09:30:39.667234130 +0100
+@@ -116,7 +116,6 @@ typedef string_v::iterator string_i;
+ #elif defined(__linux__)
+ # include <unistd.h>
+ // http://syprog.blogspot.com/2011/12/listing-loaded-shared-objects-in-linux.html
+-# include "link.h"
+ # include <dlfcn.h>
+ struct something
+ {
+++ /dev/null
-version.cpp: remove useless header inclusion
-
-The inclusion of link.h header is not required and can create build
-error with some toolchains.
-The patch is pushed on the upstream for the next release.
-http://dev.exiv2.org/issues/1007
-
-Signed-off-by: Nicolas Serafini <nicolas.serafini@sensefly.com>
-
---- exiv2-0.24.orig/src/version.cpp 2013-12-01 13:13:42.000000000 +0100
-+++ exiv2-0.24/src/version.cpp 2014-12-04 09:30:39.667234130 +0100
-@@ -116,7 +116,6 @@ typedef string_v::iterator string_i;
- #elif defined(__linux__)
- # include <unistd.h>
- // http://syprog.blogspot.com/2011/12/listing-loaded-shared-objects-in-linux.html
--# include "link.h"
- # include <dlfcn.h>
- struct something
- {
--- /dev/null
+From: Andrew Ruder <andrew.ruder@elecsyscorp.com>
+Subject: [PATCH] enable cross compilation for expect
+
+This patch was created by running ./configure on a modern Linux machine
+and inserting the results into the cross compilation section of
+each AC_MSG_CHECKING that bombed out with an error.
+
+Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
+---
+
+Index: expect-5.45/configure.in
+===================================================================
+--- expect-5.45.orig/configure.in 2013-11-14 07:59:58.732100595 -0600
++++ expect-5.45/configure.in 2013-11-14 07:59:58.732100595 -0600
+@@ -481,7 +481,7 @@
+ ,
+ AC_MSG_RESULT(no)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_MSG_RESULT(no)
+ )
+
+ AC_MSG_CHECKING([if any value exists for WNOHANG])
+@@ -506,7 +506,8 @@
+ AC_MSG_RESULT(no)
+ AC_DEFINE(WNOHANG_BACKUP_VALUE, 1)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_MSG_RESULT(yes)
++ AC_DEFINE(WNOHANG_BACKUP_VALUE, 1)
+ )
+
+ #
+@@ -574,7 +575,7 @@
+ AC_DEFINE(REARM_SIG)
+ ,
+ AC_MSG_RESULT(no)
+-, AC_MSG_WARN([Expect can't be cross compiled])
++, AC_MSG_RESULT(no)
+ )
+
+ # HPUX7 has trouble with the big cat so split it
+@@ -725,7 +726,7 @@
+ ,
+ AC_MSG_RESULT(no)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_MSG_RESULT(no)
+ )
+
+ # mach systems have include files for unimplemented features
+@@ -749,7 +750,9 @@
+ ,
+ AC_MSG_RESULT(no)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_DEFINE(HAVE_TERMIO)
++ PTY_TYPE=termios
++ AC_MSG_RESULT(yes)
+ )
+
+ # now check for the new style ttys (not yet posix)
+@@ -771,7 +774,9 @@
+ ,
+ AC_MSG_RESULT(no)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_DEFINE(HAVE_TERMIOS)
++ PTY_TYPE=termios
++ AC_MSG_RESULT(yes)
+ )
+ fi
+
+@@ -794,7 +799,7 @@
+ ,
+ AC_MSG_RESULT(no)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_MSG_RESULT(no)
+ )
+
+ AC_MSG_CHECKING([if TIOCGWINSZ in termios.h])
+@@ -816,7 +821,7 @@
+ ,
+ AC_MSG_RESULT(no)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_MSG_RESULT(no)
+ )
+
+ # finally check for Cray style ttys
+@@ -837,7 +842,7 @@
+ ,
+ AC_MSG_RESULT(no)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_MSG_RESULT(no)
+ )
+
+ #
+@@ -869,7 +874,9 @@
+ AC_HAVE_FUNCS(getpty)
+
+ # following test sets SETPGRP_VOID if setpgrp takes 0 args, else takes 2
+-AC_FUNC_SETPGRP
++cat >>expect_cf.h <<\_ACEOF
++#define SETPGRP_VOID 1
++_ACEOF
+
+ #
+ # check for timezones
+@@ -889,7 +896,7 @@
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no)
+ ,
+- AC_MSG_ERROR([Expect can't be cross compiled])
++ AC_MSG_RESULT(yes)
+ )
+
+
--- /dev/null
+From: Andrew Ruder <andrew.ruder@elecsyscorp.com>
+Subject: [PATCH] Allow tcl build directory for linking
+
+Some small changes to use TCL_BUILD_LIB_SPEC instead of TCL_LIB_SPEC for
+linking against tcl directly out of its build directory.
+
+Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
+---
+
+Index: expect-5.45/Makefile.in
+===================================================================
+--- expect-5.45.orig/Makefile.in 2013-11-14 07:59:58.732100595 -0600
++++ expect-5.45/Makefile.in 2013-11-14 07:59:58.732100595 -0600
+@@ -393,7 +393,7 @@
+ @LDFLAGS_DEFAULT@ \
+ -o expect exp_main_exp.o \
+ @EXP_BUILD_LIB_SPEC@ \
+- @TCL_LIB_SPEC@ \
++ @TCL_BUILD_LIB_SPEC@ \
+ @TCL_DL_LIBS@ @PKG_LIBS@ @MATH_LIBS@ \
+ @TCL_CC_SEARCH_FLAGS@ \
+ @EXP_CC_SEARCH_FLAGS@
+Index: expect-5.45/tclconfig/tcl.m4
+===================================================================
+--- expect-5.45.orig/tclconfig/tcl.m4 2010-11-09 13:42:10.000000000 -0600
++++ expect-5.45/tclconfig/tcl.m4 2013-11-14 08:02:08.424100580 -0600
+@@ -412,6 +412,7 @@
+ AC_SUBST(TCL_LIB_FILE)
+ AC_SUBST(TCL_LIB_FLAG)
+ AC_SUBST(TCL_LIB_SPEC)
++ AC_SUBST(TCL_BUILD_LIB_SPEC)
+
+ AC_SUBST(TCL_STUB_LIB_FILE)
+ AC_SUBST(TCL_STUB_LIB_FLAG)
+++ /dev/null
-From: Andrew Ruder <andrew.ruder@elecsyscorp.com>
-Subject: [PATCH] enable cross compilation for expect
-
-This patch was created by running ./configure on a modern Linux machine
-and inserting the results into the cross compilation section of
-each AC_MSG_CHECKING that bombed out with an error.
-
-Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
----
-
-Index: expect-5.45/configure.in
-===================================================================
---- expect-5.45.orig/configure.in 2013-11-14 07:59:58.732100595 -0600
-+++ expect-5.45/configure.in 2013-11-14 07:59:58.732100595 -0600
-@@ -481,7 +481,7 @@
- ,
- AC_MSG_RESULT(no)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_MSG_RESULT(no)
- )
-
- AC_MSG_CHECKING([if any value exists for WNOHANG])
-@@ -506,7 +506,8 @@
- AC_MSG_RESULT(no)
- AC_DEFINE(WNOHANG_BACKUP_VALUE, 1)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_MSG_RESULT(yes)
-+ AC_DEFINE(WNOHANG_BACKUP_VALUE, 1)
- )
-
- #
-@@ -574,7 +575,7 @@
- AC_DEFINE(REARM_SIG)
- ,
- AC_MSG_RESULT(no)
--, AC_MSG_WARN([Expect can't be cross compiled])
-+, AC_MSG_RESULT(no)
- )
-
- # HPUX7 has trouble with the big cat so split it
-@@ -725,7 +726,7 @@
- ,
- AC_MSG_RESULT(no)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_MSG_RESULT(no)
- )
-
- # mach systems have include files for unimplemented features
-@@ -749,7 +750,9 @@
- ,
- AC_MSG_RESULT(no)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_DEFINE(HAVE_TERMIO)
-+ PTY_TYPE=termios
-+ AC_MSG_RESULT(yes)
- )
-
- # now check for the new style ttys (not yet posix)
-@@ -771,7 +774,9 @@
- ,
- AC_MSG_RESULT(no)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_DEFINE(HAVE_TERMIOS)
-+ PTY_TYPE=termios
-+ AC_MSG_RESULT(yes)
- )
- fi
-
-@@ -794,7 +799,7 @@
- ,
- AC_MSG_RESULT(no)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_MSG_RESULT(no)
- )
-
- AC_MSG_CHECKING([if TIOCGWINSZ in termios.h])
-@@ -816,7 +821,7 @@
- ,
- AC_MSG_RESULT(no)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_MSG_RESULT(no)
- )
-
- # finally check for Cray style ttys
-@@ -837,7 +842,7 @@
- ,
- AC_MSG_RESULT(no)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_MSG_RESULT(no)
- )
-
- #
-@@ -869,7 +874,9 @@
- AC_HAVE_FUNCS(getpty)
-
- # following test sets SETPGRP_VOID if setpgrp takes 0 args, else takes 2
--AC_FUNC_SETPGRP
-+cat >>expect_cf.h <<\_ACEOF
-+#define SETPGRP_VOID 1
-+_ACEOF
-
- #
- # check for timezones
-@@ -889,7 +896,7 @@
- AC_MSG_RESULT(yes),
- AC_MSG_RESULT(no)
- ,
-- AC_MSG_ERROR([Expect can't be cross compiled])
-+ AC_MSG_RESULT(yes)
- )
-
-
+++ /dev/null
-From: Andrew Ruder <andrew.ruder@elecsyscorp.com>
-Subject: [PATCH] Allow tcl build directory for linking
-
-Some small changes to use TCL_BUILD_LIB_SPEC instead of TCL_LIB_SPEC for
-linking against tcl directly out of its build directory.
-
-Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
----
-
-Index: expect-5.45/Makefile.in
-===================================================================
---- expect-5.45.orig/Makefile.in 2013-11-14 07:59:58.732100595 -0600
-+++ expect-5.45/Makefile.in 2013-11-14 07:59:58.732100595 -0600
-@@ -393,7 +393,7 @@
- @LDFLAGS_DEFAULT@ \
- -o expect exp_main_exp.o \
- @EXP_BUILD_LIB_SPEC@ \
-- @TCL_LIB_SPEC@ \
-+ @TCL_BUILD_LIB_SPEC@ \
- @TCL_DL_LIBS@ @PKG_LIBS@ @MATH_LIBS@ \
- @TCL_CC_SEARCH_FLAGS@ \
- @EXP_CC_SEARCH_FLAGS@
-Index: expect-5.45/tclconfig/tcl.m4
-===================================================================
---- expect-5.45.orig/tclconfig/tcl.m4 2010-11-09 13:42:10.000000000 -0600
-+++ expect-5.45/tclconfig/tcl.m4 2013-11-14 08:02:08.424100580 -0600
-@@ -412,6 +412,7 @@
- AC_SUBST(TCL_LIB_FILE)
- AC_SUBST(TCL_LIB_FLAG)
- AC_SUBST(TCL_LIB_SPEC)
-+ AC_SUBST(TCL_BUILD_LIB_SPEC)
-
- AC_SUBST(TCL_STUB_LIB_FILE)
- AC_SUBST(TCL_STUB_LIB_FLAG)
--- /dev/null
+diff -urpN ezxml/GNUmakefile ezxml.patched/GNUmakefile
+--- ezxml/GNUmakefile 2006-03-25 18:44:04.000000000 +0100
++++ ezxml.patched/GNUmakefile 2008-02-24 13:57:37.000000000 +0100
+@@ -21,10 +21,10 @@
+ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-CC = gcc
+-AR = ar
++CC ?= gcc
++AR ?= ar
+ RM = rm -f
+-CFLAGS = -Wall -O2
++CFLAGS ?= -Wall -O2
+ DEBUG_CFLAGS = -O0 -g
+ OBJS = ezxml.o
+ LIB = libezxml.a
+++ /dev/null
-diff -urpN ezxml/GNUmakefile ezxml.patched/GNUmakefile
---- ezxml/GNUmakefile 2006-03-25 18:44:04.000000000 +0100
-+++ ezxml.patched/GNUmakefile 2008-02-24 13:57:37.000000000 +0100
-@@ -21,10 +21,10 @@
- # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--CC = gcc
--AR = ar
-+CC ?= gcc
-+AR ?= ar
- RM = rm -f
--CFLAGS = -Wall -O2
-+CFLAGS ?= -Wall -O2
- DEBUG_CFLAGS = -O0 -g
- OBJS = ezxml.o
- LIB = libezxml.a
--- /dev/null
+Fix static build
+
+fbgrab links against libpng, which depends on libm. For shared library
+builds, there is nothing special to do about this, but for static
+library builds, it is necessary to pass -lm when linking fbgrab.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -12,7 +12,7 @@
+ all: fbgrab fbgrab.1.gz
+
+ fbgrab: fbgrab.c
+- $(CC) -g -Wall $(CFLAGS) $(LDFLAGS) $< -lpng -lz -o $@
++ $(CC) -g -Wall $(CFLAGS) $(LDFLAGS) $< -lpng -lz -lm -o $@
+
+ fbgrab.1.gz: fbgrab.1.man
+ $(GZIP) $(GZIPFLAGS) $< > $@
+++ /dev/null
-Fix static build
-
-fbgrab links against libpng, which depends on libm. For shared library
-builds, there is nothing special to do about this, but for static
-library builds, it is necessary to pass -lm when linking fbgrab.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -12,7 +12,7 @@
- all: fbgrab fbgrab.1.gz
-
- fbgrab: fbgrab.c
-- $(CC) -g -Wall $(CFLAGS) $(LDFLAGS) $< -lpng -lz -o $@
-+ $(CC) -g -Wall $(CFLAGS) $(LDFLAGS) $< -lpng -lz -lm -o $@
-
- fbgrab.1.gz: fbgrab.1.man
- $(GZIP) $(GZIPFLAGS) $< > $@
--- /dev/null
+diff -ur fbv-1.0b/fb_display.c fbv-1.0b-avr32/fb_display.c
+--- fbv-1.0b/fb_display.c 2004-09-07 14:09:43.000000000 +0200
++++ fbv-1.0b-avr32/fb_display.c 2006-05-04 13:30:25.000000000 +0200
+@@ -276,9 +276,6 @@
+ for(i = 0; i < yc; i++, fbptr += scr_xs * cpp, imptr += pic_xs * cpp)
+ memcpy(fbptr, imptr, xc * cpp);
+
+- if(cpp == 1)
+- set8map(fh, &map_back);
+-
+ munmap(fb, scr_xs * scr_ys * cpp);
+ }
+
+@@ -293,17 +290,17 @@
+ inline static unsigned short make15color(unsigned char r, unsigned char g, unsigned char b)
+ {
+ return (
+- (((r >> 3) & 31) << 10) |
++ (((r >> 3) & 31)) |
+ (((g >> 3) & 31) << 5) |
+- ((b >> 3) & 31) );
++ ((b >> 3) & 31) << 10);
+ }
+
+ inline static unsigned short make16color(unsigned char r, unsigned char g, unsigned char b)
+ {
+ return (
+- (((r >> 3) & 31) << 11) |
+- (((g >> 2) & 63) << 5) |
+- ((b >> 3) & 31) );
++ (((r >> 3) & 31)) |
++ (((g >> 3) & 31) << 5) |
++ ((b >> 3) & 31) << 10);
+ }
+
+ void* convertRGB2FB(int fh, unsigned char *rgbbuff, unsigned long count, int bpp, int *cpp)
+@@ -342,9 +339,9 @@
+ *cpp = 4;
+ i_fbbuff = (unsigned int *) malloc(count * sizeof(unsigned int));
+ for(i = 0; i < count ; i++)
+- i_fbbuff[i] = ((rgbbuff[i*3] << 16) & 0xFF0000) |
++ i_fbbuff[i] = ((rgbbuff[i*3+2] << 16) & 0xFF0000) |
+ ((rgbbuff[i*3+1] << 8) & 0xFF00) |
+- (rgbbuff[i*3+2] & 0xFF);
++ (rgbbuff[i*3] & 0xFF);
+ fbbuff = (void *) i_fbbuff;
+ break;
+ default:
--- /dev/null
+diff -urpN fbv-1.0b.orig/configure fbv-1.0b/configure
+--- fbv-1.0b.orig/configure 2004-09-07 13:29:27.000000000 +0200
++++ fbv-1.0b/configure 2008-04-24 10:52:37.000000000 +0200
+@@ -80,6 +80,7 @@ while true ; do
+ esac
+ done
+
++[ -z "$CC" ] && CC=cc
+ [ -z "$prefix" ] && prefix="/usr/local"
+ [ -z "$bindir" ] && bindir="${prefix}/bin"
+ [ -z "$mandir" ] && mandir="${prefix}/man"
+@@ -106,12 +107,12 @@ xdir="/usr/X11R6"
+ ungif="no"
+ echo "libungif check" >>./config.log
+ echo " 1st:" >>./config.log
+-cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs
++$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs
+ if [ -e \$\$~test ]; then
+ libs="-lungif $libs" ; ungif="yes"
+ else
+ echo " 2nd: -lX11 -L$xdir/lib" >>./config.log
+- cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs
++ $CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs
+ if [ -e \$\$~test ]; then
+ libs="-lungif -lX11 -L$xdir/lib $libs" ; ungif="yes"
+ fi
+@@ -124,7 +125,7 @@ echo "libungif: $ungif" >> ./config.log
+ echo -n "checking for libjpeg presence... "
+ if [ "$jpeg" != "disabled" ]; then
+ jpeg="no"
+-cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -ljpeg $libs
++$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -ljpeg $libs
+ if [ -e \$\$~test ]; then
+ libs="-ljpeg $libs" ; jpeg="yes"
+ fi
+@@ -135,7 +136,7 @@ echo "libjpeg: $jpeg" >> ./config.log
+ echo -n "checking for libpng presence... "
+ if [ "$png" != "disabled" ]; then
+ png="no"
+-cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lpng $libs
++$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lpng $libs
+ if [ -e \$\$~test ]; then
+ libs="-lpng $libs" ; png="yes"
+ fi
--- /dev/null
+diff -upr a/fb_display.c b/fb_display.c
+--- a/fb_display.c 2007-06-01 16:52:45.000000000 +0200
++++ b/fb_display.c 2007-06-01 16:51:43.000000000 +0200
+@@ -307,7 +307,7 @@ void* convertRGB2FB(int fh, unsigned cha
+ {
+ unsigned long i;
+ void *fbbuff = NULL;
+- u_int8_t *c_fbbuff;
++ u_int8_t *c_fbbuff;
+ u_int16_t *s_fbbuff;
+ u_int32_t *i_fbbuff;
+
+@@ -335,6 +335,16 @@ void* convertRGB2FB(int fh, unsigned cha
+ fbbuff = (void *) s_fbbuff;
+ break;
+ case 24:
++ *cpp = 3;
++ c_fbbuff = (unsigned char *) malloc(count * 3 * sizeof(unsigned char));
++ for(i = 0; i < (3 * count); i += 3) {
++ /* Big endian framebuffer. */
++ c_fbbuff[i] = rgbbuff[i+2];
++ c_fbbuff[i+1] = rgbbuff[i+1];
++ c_fbbuff[i+2] = rgbbuff[i];
++ }
++ fbbuff = (void *) c_fbbuff;
++ break;
+ case 32:
+ *cpp = 4;
+ i_fbbuff = (unsigned int *) malloc(count * sizeof(unsigned int));
+Only in build_avr32/fbv-1.0b-modified: .fb_display.c.swp
+Binary files build_avr32/fbv-1.0b/fb_display.o and build_avr32/fbv-1.0b-modified/fb_display.o differ
+Binary files build_avr32/fbv-1.0b/fbv and build_avr32/fbv-1.0b-modified/fbv differ
--- /dev/null
+[PATCH] fbv: support bgr555 format
+
+Signed-off-by: Josh.Wu <josh.wu@atmel.com>
+diff -Naur fbv-1.0b-ori/fb_display.c fbv-1.0b/fb_display.c
+--- fbv-1.0b-ori/fb_display.c 2010-04-02 09:38:15.000000000 +0800
++++ fbv-1.0b/fb_display.c 2010-04-01 18:54:15.000000000 +0800
+@@ -297,6 +297,14 @@
+ ((b >> 3) & 31) );
+ }
+
++inline static unsigned short make15color_bgr(unsigned char r, unsigned char g, unsigned char b)
++{
++ return (
++ (((b >> 3) & 31) << 10) |
++ (((g >> 3) & 31) << 5) |
++ ((r >> 3) & 31) );
++}
++
+ inline static unsigned short make16color(unsigned char r, unsigned char g, unsigned char b)
+ {
+ return (
+@@ -313,6 +321,14 @@
+ u_int16_t *s_fbbuff;
+ u_int32_t *i_fbbuff;
+
++ int is_bgr555 = 0;
++ struct fb_var_screeninfo var;
++ getVarScreenInfo(fh, &var);
++ if(var.red.offset == 0 &&
++ var.green.offset == 5 &&
++ var.blue.offset == 10)
++ is_bgr555 = 1;
++
+ switch(bpp)
+ {
+ case 8:
+@@ -325,15 +341,23 @@
+ case 15:
+ *cpp = 2;
+ s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short));
+- for(i = 0; i < count ; i++)
+- s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
++ if(is_bgr555)
++ for(i = 0; i < count ; i++)
++ s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
++ else
++ for(i = 0; i < count ; i++)
++ s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
+ fbbuff = (void *) s_fbbuff;
+ break;
+ case 16:
+ *cpp = 2;
+ s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short));
+- for(i = 0; i < count ; i++)
+- s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
++ if(is_bgr555)
++ for(i = 0; i < count ; i++)
++ s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
++ else
++ for(i = 0; i < count ; i++)
++ s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
+ fbbuff = (void *) s_fbbuff;
+ break;
+ case 24:
--- /dev/null
+Adjust source code to work with giflib 5.1x
+
+Downloaded patch for gif.c from
+https://projects.archlinux.org/svntogit/community.git/plain/trunk/giflib-5.1.patch?h=packages/fbv
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -wbBur fbv-1.0b/gif.c fbv-1.0b.my/gif.c
+--- fbv-1.0b/gif.c 2003-08-25 00:23:02.000000000 +0400
++++ fbv-1.0b.my/gif.c 2014-05-29 18:39:41.337332872 +0400
+@@ -31,10 +31,10 @@
+ #include <string.h>
+ #define min(a,b) ((a) < (b) ? (a) : (b))
+ #define gflush return(FH_ERROR_FILE);
+-#define grflush { DGifCloseFile(gft); return(FH_ERROR_FORMAT); }
+-#define mgrflush { free(lb); free(slb); DGifCloseFile(gft); return(FH_ERROR_FORMAT); }
++#define grflush { DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); }
++#define mgrflush { free(lb); free(slb); DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); }
+ #define agflush return(FH_ERROR_FORMAT);
+-#define agrflush { DGifCloseFile(gft); return(FH_ERROR_FORMAT); }
++#define agrflush { DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); }
+
+
+ int fh_gif_id(char *name)
+@@ -81,7 +81,7 @@
+ ColorMapObject *cmap;
+ int cmaps;
+
+- gft=DGifOpenFileName(name);
++ gft=DGifOpenFileName(name, NULL);
+ if(gft==NULL){printf("err5\n"); gflush;} //////////
+ do
+ {
+@@ -170,7 +170,7 @@
+ }
+ }
+ while( rt!= TERMINATE_RECORD_TYPE );
+- DGifCloseFile(gft);
++ DGifCloseFile(gft, NULL);
+ return(FH_ERROR_OK);
+ }
+
+@@ -184,7 +184,7 @@
+ int extcode;
+ GifRecordType rt;
+
+- gft=DGifOpenFileName(name);
++ gft=DGifOpenFileName(name, NULL);
+ if(gft==NULL) gflush;
+ do
+ {
+@@ -197,7 +197,7 @@
+ px=gft->Image.Width;
+ py=gft->Image.Height;
+ *x=px; *y=py;
+- DGifCloseFile(gft);
++ DGifCloseFile(gft, NULL);
+ return(FH_ERROR_OK);
+ break;
+ case EXTENSION_RECORD_TYPE:
+@@ -210,7 +210,7 @@
+ }
+ }
+ while( rt!= TERMINATE_RECORD_TYPE );
+- DGifCloseFile(gft);
++ DGifCloseFile(gft, NULL);
+ return(FH_ERROR_FORMAT);
+ }
+ #endif
+diff -uNr fbv-1.0b.org/configure fbv-1.0b/configure
+--- fbv-1.0b.org/configure 2004-09-07 13:29:27.000000000 +0200
++++ fbv-1.0b/configure 2015-01-29 19:58:30.374599874 +0100
+@@ -106,9 +106,9 @@
+ ungif="no"
+ echo "libungif check" >>./config.log
+ echo " 1st:" >>./config.log
+-$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs
++$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lgif $libs
+ if [ -e \$\$~test ]; then
+- libs="-lungif $libs" ; ungif="yes"
++ libs="-lgif $libs" ; ungif="yes"
+ else
+ echo " 2nd: -lX11 -L$xdir/lib" >>./config.log
+ $CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs
--- /dev/null
+diff -urpN fbv-1.0b.orig/fb_display.c fbv-1.0b/fb_display.c
+--- fbv-1.0b.orig/fb_display.c 2004-09-07 14:09:43.000000000 +0200
++++ fbv-1.0b/fb_display.c 2008-04-24 10:48:29.000000000 +0200
+@@ -18,8 +18,6 @@
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+-#include <linux/fb.h>
+-
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <sys/types.h>
+@@ -31,6 +29,7 @@
+ #include <asm/types.h>
+ #include <string.h>
+ #include <errno.h>
++#include <linux/fb.h>
+ #include "config.h"
+ /* Public Use Functions:
+ *
--- /dev/null
+Support for libpng 1.5+ shamelessly taken from Gentoo.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+--- a/png.c
++++ b/png.c
+@@ -69,7 +69,7 @@
+ fclose(fh); return(FH_ERROR_FORMAT);
+ }
+ rp=0;
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
+ if(rp) free(rp);
+@@ -161,7 +161,7 @@
+ fclose(fh); return(FH_ERROR_FORMAT);
+ }
+ rp=0;
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
+ if(rp) free(rp);
+++ /dev/null
-diff -ur fbv-1.0b/fb_display.c fbv-1.0b-avr32/fb_display.c
---- fbv-1.0b/fb_display.c 2004-09-07 14:09:43.000000000 +0200
-+++ fbv-1.0b-avr32/fb_display.c 2006-05-04 13:30:25.000000000 +0200
-@@ -276,9 +276,6 @@
- for(i = 0; i < yc; i++, fbptr += scr_xs * cpp, imptr += pic_xs * cpp)
- memcpy(fbptr, imptr, xc * cpp);
-
-- if(cpp == 1)
-- set8map(fh, &map_back);
--
- munmap(fb, scr_xs * scr_ys * cpp);
- }
-
-@@ -293,17 +290,17 @@
- inline static unsigned short make15color(unsigned char r, unsigned char g, unsigned char b)
- {
- return (
-- (((r >> 3) & 31) << 10) |
-+ (((r >> 3) & 31)) |
- (((g >> 3) & 31) << 5) |
-- ((b >> 3) & 31) );
-+ ((b >> 3) & 31) << 10);
- }
-
- inline static unsigned short make16color(unsigned char r, unsigned char g, unsigned char b)
- {
- return (
-- (((r >> 3) & 31) << 11) |
-- (((g >> 2) & 63) << 5) |
-- ((b >> 3) & 31) );
-+ (((r >> 3) & 31)) |
-+ (((g >> 3) & 31) << 5) |
-+ ((b >> 3) & 31) << 10);
- }
-
- void* convertRGB2FB(int fh, unsigned char *rgbbuff, unsigned long count, int bpp, int *cpp)
-@@ -342,9 +339,9 @@
- *cpp = 4;
- i_fbbuff = (unsigned int *) malloc(count * sizeof(unsigned int));
- for(i = 0; i < count ; i++)
-- i_fbbuff[i] = ((rgbbuff[i*3] << 16) & 0xFF0000) |
-+ i_fbbuff[i] = ((rgbbuff[i*3+2] << 16) & 0xFF0000) |
- ((rgbbuff[i*3+1] << 8) & 0xFF00) |
-- (rgbbuff[i*3+2] & 0xFF);
-+ (rgbbuff[i*3] & 0xFF);
- fbbuff = (void *) i_fbbuff;
- break;
- default:
+++ /dev/null
-diff -urpN fbv-1.0b.orig/configure fbv-1.0b/configure
---- fbv-1.0b.orig/configure 2004-09-07 13:29:27.000000000 +0200
-+++ fbv-1.0b/configure 2008-04-24 10:52:37.000000000 +0200
-@@ -80,6 +80,7 @@ while true ; do
- esac
- done
-
-+[ -z "$CC" ] && CC=cc
- [ -z "$prefix" ] && prefix="/usr/local"
- [ -z "$bindir" ] && bindir="${prefix}/bin"
- [ -z "$mandir" ] && mandir="${prefix}/man"
-@@ -106,12 +107,12 @@ xdir="/usr/X11R6"
- ungif="no"
- echo "libungif check" >>./config.log
- echo " 1st:" >>./config.log
--cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs
-+$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs
- if [ -e \$\$~test ]; then
- libs="-lungif $libs" ; ungif="yes"
- else
- echo " 2nd: -lX11 -L$xdir/lib" >>./config.log
-- cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs
-+ $CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs
- if [ -e \$\$~test ]; then
- libs="-lungif -lX11 -L$xdir/lib $libs" ; ungif="yes"
- fi
-@@ -124,7 +125,7 @@ echo "libungif: $ungif" >> ./config.log
- echo -n "checking for libjpeg presence... "
- if [ "$jpeg" != "disabled" ]; then
- jpeg="no"
--cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -ljpeg $libs
-+$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -ljpeg $libs
- if [ -e \$\$~test ]; then
- libs="-ljpeg $libs" ; jpeg="yes"
- fi
-@@ -135,7 +136,7 @@ echo "libjpeg: $jpeg" >> ./config.log
- echo -n "checking for libpng presence... "
- if [ "$png" != "disabled" ]; then
- png="no"
--cc 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lpng $libs
-+$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lpng $libs
- if [ -e \$\$~test ]; then
- libs="-lpng $libs" ; png="yes"
- fi
+++ /dev/null
-diff -upr a/fb_display.c b/fb_display.c
---- a/fb_display.c 2007-06-01 16:52:45.000000000 +0200
-+++ b/fb_display.c 2007-06-01 16:51:43.000000000 +0200
-@@ -307,7 +307,7 @@ void* convertRGB2FB(int fh, unsigned cha
- {
- unsigned long i;
- void *fbbuff = NULL;
-- u_int8_t *c_fbbuff;
-+ u_int8_t *c_fbbuff;
- u_int16_t *s_fbbuff;
- u_int32_t *i_fbbuff;
-
-@@ -335,6 +335,16 @@ void* convertRGB2FB(int fh, unsigned cha
- fbbuff = (void *) s_fbbuff;
- break;
- case 24:
-+ *cpp = 3;
-+ c_fbbuff = (unsigned char *) malloc(count * 3 * sizeof(unsigned char));
-+ for(i = 0; i < (3 * count); i += 3) {
-+ /* Big endian framebuffer. */
-+ c_fbbuff[i] = rgbbuff[i+2];
-+ c_fbbuff[i+1] = rgbbuff[i+1];
-+ c_fbbuff[i+2] = rgbbuff[i];
-+ }
-+ fbbuff = (void *) c_fbbuff;
-+ break;
- case 32:
- *cpp = 4;
- i_fbbuff = (unsigned int *) malloc(count * sizeof(unsigned int));
-Only in build_avr32/fbv-1.0b-modified: .fb_display.c.swp
-Binary files build_avr32/fbv-1.0b/fb_display.o and build_avr32/fbv-1.0b-modified/fb_display.o differ
-Binary files build_avr32/fbv-1.0b/fbv and build_avr32/fbv-1.0b-modified/fbv differ
+++ /dev/null
-[PATCH] fbv: support bgr555 format
-
-Signed-off-by: Josh.Wu <josh.wu@atmel.com>
-diff -Naur fbv-1.0b-ori/fb_display.c fbv-1.0b/fb_display.c
---- fbv-1.0b-ori/fb_display.c 2010-04-02 09:38:15.000000000 +0800
-+++ fbv-1.0b/fb_display.c 2010-04-01 18:54:15.000000000 +0800
-@@ -297,6 +297,14 @@
- ((b >> 3) & 31) );
- }
-
-+inline static unsigned short make15color_bgr(unsigned char r, unsigned char g, unsigned char b)
-+{
-+ return (
-+ (((b >> 3) & 31) << 10) |
-+ (((g >> 3) & 31) << 5) |
-+ ((r >> 3) & 31) );
-+}
-+
- inline static unsigned short make16color(unsigned char r, unsigned char g, unsigned char b)
- {
- return (
-@@ -313,6 +321,14 @@
- u_int16_t *s_fbbuff;
- u_int32_t *i_fbbuff;
-
-+ int is_bgr555 = 0;
-+ struct fb_var_screeninfo var;
-+ getVarScreenInfo(fh, &var);
-+ if(var.red.offset == 0 &&
-+ var.green.offset == 5 &&
-+ var.blue.offset == 10)
-+ is_bgr555 = 1;
-+
- switch(bpp)
- {
- case 8:
-@@ -325,15 +341,23 @@
- case 15:
- *cpp = 2;
- s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short));
-- for(i = 0; i < count ; i++)
-- s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
-+ if(is_bgr555)
-+ for(i = 0; i < count ; i++)
-+ s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
-+ else
-+ for(i = 0; i < count ; i++)
-+ s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
- fbbuff = (void *) s_fbbuff;
- break;
- case 16:
- *cpp = 2;
- s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short));
-- for(i = 0; i < count ; i++)
-- s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
-+ if(is_bgr555)
-+ for(i = 0; i < count ; i++)
-+ s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
-+ else
-+ for(i = 0; i < count ; i++)
-+ s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
- fbbuff = (void *) s_fbbuff;
- break;
- case 24:
+++ /dev/null
-Adjust source code to work with giflib 5.1x
-
-Downloaded patch for gif.c from
-https://projects.archlinux.org/svntogit/community.git/plain/trunk/giflib-5.1.patch?h=packages/fbv
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -wbBur fbv-1.0b/gif.c fbv-1.0b.my/gif.c
---- fbv-1.0b/gif.c 2003-08-25 00:23:02.000000000 +0400
-+++ fbv-1.0b.my/gif.c 2014-05-29 18:39:41.337332872 +0400
-@@ -31,10 +31,10 @@
- #include <string.h>
- #define min(a,b) ((a) < (b) ? (a) : (b))
- #define gflush return(FH_ERROR_FILE);
--#define grflush { DGifCloseFile(gft); return(FH_ERROR_FORMAT); }
--#define mgrflush { free(lb); free(slb); DGifCloseFile(gft); return(FH_ERROR_FORMAT); }
-+#define grflush { DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); }
-+#define mgrflush { free(lb); free(slb); DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); }
- #define agflush return(FH_ERROR_FORMAT);
--#define agrflush { DGifCloseFile(gft); return(FH_ERROR_FORMAT); }
-+#define agrflush { DGifCloseFile(gft, NULL); return(FH_ERROR_FORMAT); }
-
-
- int fh_gif_id(char *name)
-@@ -81,7 +81,7 @@
- ColorMapObject *cmap;
- int cmaps;
-
-- gft=DGifOpenFileName(name);
-+ gft=DGifOpenFileName(name, NULL);
- if(gft==NULL){printf("err5\n"); gflush;} //////////
- do
- {
-@@ -170,7 +170,7 @@
- }
- }
- while( rt!= TERMINATE_RECORD_TYPE );
-- DGifCloseFile(gft);
-+ DGifCloseFile(gft, NULL);
- return(FH_ERROR_OK);
- }
-
-@@ -184,7 +184,7 @@
- int extcode;
- GifRecordType rt;
-
-- gft=DGifOpenFileName(name);
-+ gft=DGifOpenFileName(name, NULL);
- if(gft==NULL) gflush;
- do
- {
-@@ -197,7 +197,7 @@
- px=gft->Image.Width;
- py=gft->Image.Height;
- *x=px; *y=py;
-- DGifCloseFile(gft);
-+ DGifCloseFile(gft, NULL);
- return(FH_ERROR_OK);
- break;
- case EXTENSION_RECORD_TYPE:
-@@ -210,7 +210,7 @@
- }
- }
- while( rt!= TERMINATE_RECORD_TYPE );
-- DGifCloseFile(gft);
-+ DGifCloseFile(gft, NULL);
- return(FH_ERROR_FORMAT);
- }
- #endif
-diff -uNr fbv-1.0b.org/configure fbv-1.0b/configure
---- fbv-1.0b.org/configure 2004-09-07 13:29:27.000000000 +0200
-+++ fbv-1.0b/configure 2015-01-29 19:58:30.374599874 +0100
-@@ -106,9 +106,9 @@
- ungif="no"
- echo "libungif check" >>./config.log
- echo " 1st:" >>./config.log
--$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif $libs
-+$CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lgif $libs
- if [ -e \$\$~test ]; then
-- libs="-lungif $libs" ; ungif="yes"
-+ libs="-lgif $libs" ; ungif="yes"
- else
- echo " 2nd: -lX11 -L$xdir/lib" >>./config.log
- $CC 2>>./config.log >>./config.log -o \$\$~test \$\$~test.c -lungif -lX11 -L$xdir/lib $libs
+++ /dev/null
-diff -urpN fbv-1.0b.orig/fb_display.c fbv-1.0b/fb_display.c
---- fbv-1.0b.orig/fb_display.c 2004-09-07 14:09:43.000000000 +0200
-+++ fbv-1.0b/fb_display.c 2008-04-24 10:48:29.000000000 +0200
-@@ -18,8 +18,6 @@
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
--#include <linux/fb.h>
--
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
-@@ -31,6 +29,7 @@
- #include <asm/types.h>
- #include <string.h>
- #include <errno.h>
-+#include <linux/fb.h>
- #include "config.h"
- /* Public Use Functions:
- *
+++ /dev/null
-Support for libpng 1.5+ shamelessly taken from Gentoo.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
---- a/png.c
-+++ b/png.c
-@@ -69,7 +69,7 @@
- fclose(fh); return(FH_ERROR_FORMAT);
- }
- rp=0;
-- if (setjmp(png_ptr->jmpbuf))
-+ if (setjmp(png_jmpbuf(png_ptr)))
- {
- png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
- if(rp) free(rp);
-@@ -161,7 +161,7 @@
- fclose(fh); return(FH_ERROR_FORMAT);
- }
- rp=0;
-- if (setjmp(png_ptr->jmpbuf))
-+ if (setjmp(png_jmpbuf(png_ptr)))
- {
- png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
- if(rp) free(rp);
--- /dev/null
+Fix checking for statically build OpenSSL with libz dependency
+
+Fixes
+http://autobuild.buildroot.net/results/48a/48ad6d3659cf1f04581b7e3d115bebf454ff17fd/
+
+configure: Enabling OpenSSL support in /home/br/br/output/host/usr/i486-buildroot-linux-uclibc/sysroot/usr.
+checking for additional library dependencies of SSL... error
+configure: error: cannot link with SSL - check config.log
+
+In config.log multiple linking errors to libz can be found:
+
+configure:10099: /home/br/br/output/host/usr/bin/i486-ctng-linux-uclibc-gcc -o
+ conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64
+ /home/br/br/output/host/usr/i486-buildroot-linux-uclibc/sysroot/usr/lib/libcrypto.a(c_zlib.o):
+ In function `zlib_stateful_c_zlib.c:(.text+0x56): undefined reference to `inflate'
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr fetchmail-6.3.26.org/configure.ac fetchmail-6.3.26/configure.ac
+--- fetchmail-6.3.26.org/configure.ac 2013-04-23 22:51:10.000000000 +0200
++++ fetchmail-6.3.26/configure.ac 2014-07-27 09:20:25.000000000 +0200
+@@ -778,7 +778,7 @@
+ AC_MSG_ERROR([SSL support enabled, but OpenSSL not found])
+ fi
+ LDFLAGS="$LDFLAGS -L$with_ssl/lib"
+- LIBS="$LIBS -lssl -lcrypto"
++ LIBS="-lssl -lcrypto $LIBS"
+ dnl check if -ldl is needed
+ AC_MSG_CHECKING([for additional library dependencies of SSL])
+ found=0
+++ /dev/null
-Fix checking for statically build OpenSSL with libz dependency
-
-Fixes
-http://autobuild.buildroot.net/results/48a/48ad6d3659cf1f04581b7e3d115bebf454ff17fd/
-
-configure: Enabling OpenSSL support in /home/br/br/output/host/usr/i486-buildroot-linux-uclibc/sysroot/usr.
-checking for additional library dependencies of SSL... error
-configure: error: cannot link with SSL - check config.log
-
-In config.log multiple linking errors to libz can be found:
-
-configure:10099: /home/br/br/output/host/usr/bin/i486-ctng-linux-uclibc-gcc -o
- conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64
- /home/br/br/output/host/usr/i486-buildroot-linux-uclibc/sysroot/usr/lib/libcrypto.a(c_zlib.o):
- In function `zlib_stateful_c_zlib.c:(.text+0x56): undefined reference to `inflate'
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr fetchmail-6.3.26.org/configure.ac fetchmail-6.3.26/configure.ac
---- fetchmail-6.3.26.org/configure.ac 2013-04-23 22:51:10.000000000 +0200
-+++ fetchmail-6.3.26/configure.ac 2014-07-27 09:20:25.000000000 +0200
-@@ -778,7 +778,7 @@
- AC_MSG_ERROR([SSL support enabled, but OpenSSL not found])
- fi
- LDFLAGS="$LDFLAGS -L$with_ssl/lib"
-- LIBS="$LIBS -lssl -lcrypto"
-+ LIBS="-lssl -lcrypto $LIBS"
- dnl check if -ldl is needed
- AC_MSG_CHECKING([for additional library dependencies of SSL])
- found=0
--- /dev/null
+diff -uN fis.orig/crc.c fis/crc.c
+--- fis.orig/crc.c 1970-01-01 10:00:00.000000000 +1000
++++ fis/crc.c 2008-04-01 11:39:13.000000000 +1100
+@@ -0,0 +1,88 @@
++/*\r
++ * crc.c\r
++ *\r
++ * $Id: crc.c,v 1.1 2006/02/13 09:58:08 andrzej Exp $\r
++ *\r
++ * Gary S. Brown's CRC\r
++ * Code based on Gary S. Brown CRC (1986). \r
++ * Generation polynomial is:\r
++ * X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 \r
++ *\r
++ * Copyright (C) 2006 Ekiert sp z o.o.\r
++ * Author: Andrzej Ekiert <a.ekiert@ekiert.com>\r
++ *\r
++ * This program is free software; you can redistribute it and/or\r
++ * modify it under the terms of the GNU General Public License\r
++ * as published by the Free Software Foundation; either version\r
++ * 2 of the License, or (at your option) any later version. \r
++ */\r
++\r
++#include <stdint.h>\r
++\r
++#include "crc.h"\r
++\r
++static const uint32_t crc32_tab[] = {\r
++ 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,\r
++ 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,\r
++ 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,\r
++ 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,\r
++ 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,\r
++ 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,\r
++ 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,\r
++ 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,\r
++ 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,\r
++ 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,\r
++ 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,\r
++ 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,\r
++ 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,\r
++ 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,\r
++ 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,\r
++ 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,\r
++ 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,\r
++ 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,\r
++ 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,\r
++ 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,\r
++ 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,\r
++ 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,\r
++ 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,\r
++ 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,\r
++ 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,\r
++ 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,\r
++ 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,\r
++ 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,\r
++ 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,\r
++ 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,\r
++ 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,\r
++ 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,\r
++ 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,\r
++ 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,\r
++ 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,\r
++ 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,\r
++ 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,\r
++ 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,\r
++ 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,\r
++ 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,\r
++ 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,\r
++ 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,\r
++ 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,\r
++ 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,\r
++ 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,\r
++ 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,\r
++ 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,\r
++ 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,\r
++ 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,\r
++ 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,\r
++ 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,\r
++ 0x2d02ef8dL\r
++ };\r
++\r
++uint32_t crc32(uint8_t *s, uint32_t len)\r
++{\r
++ uint32_t i, val = 0;\r
++\r
++ for (i = 0; i < len; i++) {\r
++ val = crc32_tab[(val^s[i]) & 0xff] ^ (val >> 8);\r
++ }\r
++ return val;\r
++}\r
++\r
+diff -uN fis.orig/crc.h fis/crc.h
+--- fis.orig/crc.h 1970-01-01 10:00:00.000000000 +1000
++++ fis/crc.h 2008-04-01 11:39:13.000000000 +1100
+@@ -0,0 +1,25 @@
++/*
++ * crc.h
++ *
++ * $Id: crc.h,v 1.1 2006/02/13 09:58:08 andrzej Exp $
++ *
++ * Gary S. Brown's CRC - header.
++ *
++ * Copyright (C) 2006 Ekiert sp z o.o.
++ * Author: Andrzej Ekiert <a.ekiert@ekiert.com>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ */
++
++#ifndef CRC_H
++#define CRC_H
++
++#include <stdint.h>
++
++uint32_t crc32(uint8_t *s, uint32_t len);
++
++#endif //CRC_H
++
+diff -uN fis.orig/fis.c fis/fis.c
+--- fis.orig/fis.c 2007-05-03 06:42:51.000000000 +1000
++++ fis/fis.c 2008-04-01 11:52:11.000000000 +1100
+@@ -30,6 +30,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+
++#include "crc.h"
+
+ // Report an error and terminate:
+
+@@ -141,8 +142,8 @@
+
+ static void dump_desc(FILE* f, const struct fis_image_desc* d)
+ {
+- fprintf(f,"%16s: addr = 0x%08x, size = 0x%08x\n",
+- d->name, d->flash_base, d->size);
++ fprintf(f,"%16s: flash addr = 0x%08x, mem addr = 0x%08x, size = 0x%08x, checksum = 0x%08x\n",
++ d->name, d->flash_base, d->mem_base, d->size, d->file_cksum);
+ for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
+ if (d->skips[i]==0x736b6970 || d->skips[i]==0x70696b73) { // "skip"
+ uint32_t offset = d->skips[i+1];
+@@ -332,6 +333,7 @@
+ d->size = swap_end_32(d->size);
+ d->entry_point = swap_end_32(d->entry_point);
+ d->data_length = swap_end_32(d->data_length);
++ d->file_cksum = swap_end_32(d->file_cksum);
+ for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
+ d->skips[i] = swap_end_32(d->skips[i]);
+ }
+@@ -446,19 +448,25 @@
+ char* arg=argv[i];
+ if (strcmp(arg,"-l")==0) {
+ if (i==argc-1) {
+- fatal("argumnet missing for -l");
++ fatal("argument missing for -l");
+ }
+ ++i;
+ d->size = str_to_int_maybe_hex(argv[i]);
+ } else if (strcmp(arg,"-f")==0) {
+ if (i==argc-1) {
+- fatal("argumnet missing for -f");
++ fatal("argument missing for -f");
+ }
+ ++i;
+ d->flash_base = str_to_int_maybe_hex(argv[i]);
++ } else if (strcmp(arg,"-m")==0) {
++ if (i==argc-1) {
++ fatal("argument missing for -m");
++ }
++ ++i;
++ d->mem_base = str_to_int_maybe_hex(argv[i]);
+ } else if (strcmp(arg,"-n")==0) {
+ if (i==argc-1) {
+- fatal("argumnet missing for -n");
++ fatal("argument missing for -n");
+ }
+ ++i;
+ char* name = argv[i];
+@@ -499,6 +507,66 @@
+ save_dir(fd,offset,size,swap_endianness,dir);
+ }
+
++static void fis_checksum(const char* device, int offset, int size, bool swap_endianness,
++ int argc, char* argv[])
++{
++ char* name = NULL;
++ char* filename = NULL;
++
++ for (int i=0; i<argc; ++i) {
++ char* arg=argv[i];
++ if (strcmp(arg,"-f")==0) {
++ if (i==argc-1) {
++ fatal("argument missing for -f");
++ }
++ ++i;
++ filename = argv[i];
++ } else if (strcmp(arg,"-n")==0) {
++ if (i==argc-1) {
++ fatal("argument missing for -n");
++ }
++ ++i;
++ name = argv[i];
++ if (strlen(name)>=16) {
++ fatal("name too long, max 16 chars including terminating null");
++ }
++ } else {
++ fputs("Unrecognised option '",stderr);
++ fputs(arg,stderr);
++ fputs("'\n",stderr);
++ exit(1);
++ }
++ }
++
++ if (name == NULL || filename == NULL)
++ fatal("filename and partition name must be specified");
++
++ int fd;
++ char *buf;
++ struct stat stat_buf;
++ uint32_t crc;
++
++ CHECK(fd=open(filename,O_RDONLY),-1);
++ CHECK(stat(filename, &stat_buf),-1);
++ buf = (char*)chk_malloc(stat_buf.st_size);
++ CHECK(read(fd,buf,stat_buf.st_size),-1);
++ crc = crc32(buf,stat_buf.st_size);
++ close(fd);
++ free(buf);
++
++ CHECK(fd=open(device,O_RDWR),-1);
++ dir_t dir;
++ load_dir(fd,offset,&size,swap_endianness,&dir);
++ iter_t after = NULL;
++ FOR_EACH_DIR_ENTRY(dir,i) {
++ if (strcmp(get(i)->name, name) == 0) {
++ get(i)->file_cksum = crc;
++ get(i)->data_length = stat_buf.st_size;
++ break;
++ }
++ }
++ save_dir(fd,offset,size,swap_endianness,dir);
++}
+
+ static void fis_delete(const char* device, int offset, int size, bool swap_endianness,
+ char* name)
+@@ -526,8 +594,9 @@
+ fputs("Usage:\n"
+ " fis [options] list\n"
+ " fis [options] init\n"
+- " fis [options] create -f address -l size -n name\n"
++ " fis [options] create -f address -l size -n name [-m memory_address]\n"
+ " fis [options] delete name\n"
++ " fis [options] checksum -f filename -n name\n"
+ "Options:\n"
+ " -d device specify /dev/mtd* device containing directory\n"
+ " -o offset specify offset into device of start of directory\n"
+@@ -597,9 +666,14 @@
+ fis_create(device,offset,size,swap_endianness,
+ argc-i-1,&argv[i+1]);
+ break;
++ } else if (strcmp(arg,"checksum")==0) {
++ check_dev(device);
++ fis_checksum(device,offset,size,swap_endianness,
++ argc-i-1,&argv[i+1]);
++ break;
+ } else if (strcmp(arg,"delete")==0) {
+ if (i!=argc-2) {
+- fatal("Exactly one argumnet required after 'delete'");
++ fatal("Exactly one argument required after 'delete'");
+ }
+ ++i;
+ char* name = argv[i];
--- /dev/null
+--- fis.orig/fis.c 2010-05-12 10:22:10.000000000 -0700
++++ fis/fis.c 2010-05-12 10:19:24.000000000 -0700
+@@ -142,8 +142,8 @@
+
+ static void dump_desc(FILE* f, const struct fis_image_desc* d)
+ {
+- fprintf(f,"%16s: flash addr = 0x%08x, mem addr = 0x%08x, size = 0x%08x, checksum = 0x%08x\n",
+- d->name, d->flash_base, d->mem_base, d->size, d->file_cksum);
++ fprintf(f,"%-16s 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n",
++ d->name, d->flash_base, d->mem_base, d->size, d->entry_point, d->file_cksum);
+ for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
+ if (d->skips[i]==0x736b6970 || d->skips[i]==0x70696b73) { // "skip"
+ uint32_t offset = d->skips[i+1];
+@@ -400,6 +400,7 @@
+ CHECK(fd=open(device,O_RDONLY),-1);
+ dir_t dir;
+ load_dir(fd,offset,&size,swap_endianness,&dir);
++ fprintf(stdout,"Name FLASH addr Mem addr Length Entry point Checksum\n");
+ FOR_EACH_DIR_ENTRY(dir,i) {
+ dump_desc(stdout,get(i));
+ }
--- /dev/null
+--- fis.orig/fis.c 2010-05-12 11:09:22.000000000 -0700
++++ fis/fis.c 2010-05-12 11:05:45.000000000 -0700
+@@ -401,9 +401,24 @@
+ dir_t dir;
+ load_dir(fd,offset,&size,swap_endianness,&dir);
+ fprintf(stdout,"Name FLASH addr Mem addr Length Entry point Checksum\n");
+- FOR_EACH_DIR_ENTRY(dir,i) {
+- dump_desc(stdout,get(i));
+- }
++ uint32_t last_addr = 0;
++ bool image_found;
++ do {
++ uint32_t lowest_addr = 0xffffffff;
++ iter_t index;
++ image_found = false;
++ FOR_EACH_DIR_ENTRY(dir,i) {
++ const struct fis_image_desc *d = get(i);
++ if ((d->flash_base >= last_addr) && (d->flash_base < lowest_addr)) {
++ lowest_addr = d->flash_base;
++ image_found = true;
++ index = i;
++ }
++ }
++ if (image_found)
++ dump_desc(stdout,get(index));
++ last_addr = lowest_addr + 1;
++ } while (image_found == true);
+ }
+
+
+++ /dev/null
-diff -uN fis.orig/crc.c fis/crc.c
---- fis.orig/crc.c 1970-01-01 10:00:00.000000000 +1000
-+++ fis/crc.c 2008-04-01 11:39:13.000000000 +1100
-@@ -0,0 +1,88 @@
-+/*\r
-+ * crc.c\r
-+ *\r
-+ * $Id: crc.c,v 1.1 2006/02/13 09:58:08 andrzej Exp $\r
-+ *\r
-+ * Gary S. Brown's CRC\r
-+ * Code based on Gary S. Brown CRC (1986). \r
-+ * Generation polynomial is:\r
-+ * X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 \r
-+ *\r
-+ * Copyright (C) 2006 Ekiert sp z o.o.\r
-+ * Author: Andrzej Ekiert <a.ekiert@ekiert.com>\r
-+ *\r
-+ * This program is free software; you can redistribute it and/or\r
-+ * modify it under the terms of the GNU General Public License\r
-+ * as published by the Free Software Foundation; either version\r
-+ * 2 of the License, or (at your option) any later version. \r
-+ */\r
-+\r
-+#include <stdint.h>\r
-+\r
-+#include "crc.h"\r
-+\r
-+static const uint32_t crc32_tab[] = {\r
-+ 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,\r
-+ 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,\r
-+ 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,\r
-+ 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,\r
-+ 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,\r
-+ 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,\r
-+ 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,\r
-+ 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,\r
-+ 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,\r
-+ 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,\r
-+ 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,\r
-+ 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,\r
-+ 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,\r
-+ 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,\r
-+ 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,\r
-+ 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,\r
-+ 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,\r
-+ 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,\r
-+ 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,\r
-+ 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,\r
-+ 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,\r
-+ 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,\r
-+ 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,\r
-+ 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,\r
-+ 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,\r
-+ 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,\r
-+ 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,\r
-+ 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,\r
-+ 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,\r
-+ 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,\r
-+ 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,\r
-+ 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,\r
-+ 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,\r
-+ 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,\r
-+ 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,\r
-+ 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,\r
-+ 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,\r
-+ 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,\r
-+ 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,\r
-+ 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,\r
-+ 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,\r
-+ 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,\r
-+ 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,\r
-+ 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,\r
-+ 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,\r
-+ 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,\r
-+ 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,\r
-+ 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,\r
-+ 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,\r
-+ 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,\r
-+ 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,\r
-+ 0x2d02ef8dL\r
-+ };\r
-+\r
-+uint32_t crc32(uint8_t *s, uint32_t len)\r
-+{\r
-+ uint32_t i, val = 0;\r
-+\r
-+ for (i = 0; i < len; i++) {\r
-+ val = crc32_tab[(val^s[i]) & 0xff] ^ (val >> 8);\r
-+ }\r
-+ return val;\r
-+}\r
-+\r
-diff -uN fis.orig/crc.h fis/crc.h
---- fis.orig/crc.h 1970-01-01 10:00:00.000000000 +1000
-+++ fis/crc.h 2008-04-01 11:39:13.000000000 +1100
-@@ -0,0 +1,25 @@
-+/*
-+ * crc.h
-+ *
-+ * $Id: crc.h,v 1.1 2006/02/13 09:58:08 andrzej Exp $
-+ *
-+ * Gary S. Brown's CRC - header.
-+ *
-+ * Copyright (C) 2006 Ekiert sp z o.o.
-+ * Author: Andrzej Ekiert <a.ekiert@ekiert.com>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+
-+#ifndef CRC_H
-+#define CRC_H
-+
-+#include <stdint.h>
-+
-+uint32_t crc32(uint8_t *s, uint32_t len);
-+
-+#endif //CRC_H
-+
-diff -uN fis.orig/fis.c fis/fis.c
---- fis.orig/fis.c 2007-05-03 06:42:51.000000000 +1000
-+++ fis/fis.c 2008-04-01 11:52:11.000000000 +1100
-@@ -30,6 +30,7 @@
- #include <sys/stat.h>
- #include <fcntl.h>
-
-+#include "crc.h"
-
- // Report an error and terminate:
-
-@@ -141,8 +142,8 @@
-
- static void dump_desc(FILE* f, const struct fis_image_desc* d)
- {
-- fprintf(f,"%16s: addr = 0x%08x, size = 0x%08x\n",
-- d->name, d->flash_base, d->size);
-+ fprintf(f,"%16s: flash addr = 0x%08x, mem addr = 0x%08x, size = 0x%08x, checksum = 0x%08x\n",
-+ d->name, d->flash_base, d->mem_base, d->size, d->file_cksum);
- for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
- if (d->skips[i]==0x736b6970 || d->skips[i]==0x70696b73) { // "skip"
- uint32_t offset = d->skips[i+1];
-@@ -332,6 +333,7 @@
- d->size = swap_end_32(d->size);
- d->entry_point = swap_end_32(d->entry_point);
- d->data_length = swap_end_32(d->data_length);
-+ d->file_cksum = swap_end_32(d->file_cksum);
- for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
- d->skips[i] = swap_end_32(d->skips[i]);
- }
-@@ -446,19 +448,25 @@
- char* arg=argv[i];
- if (strcmp(arg,"-l")==0) {
- if (i==argc-1) {
-- fatal("argumnet missing for -l");
-+ fatal("argument missing for -l");
- }
- ++i;
- d->size = str_to_int_maybe_hex(argv[i]);
- } else if (strcmp(arg,"-f")==0) {
- if (i==argc-1) {
-- fatal("argumnet missing for -f");
-+ fatal("argument missing for -f");
- }
- ++i;
- d->flash_base = str_to_int_maybe_hex(argv[i]);
-+ } else if (strcmp(arg,"-m")==0) {
-+ if (i==argc-1) {
-+ fatal("argument missing for -m");
-+ }
-+ ++i;
-+ d->mem_base = str_to_int_maybe_hex(argv[i]);
- } else if (strcmp(arg,"-n")==0) {
- if (i==argc-1) {
-- fatal("argumnet missing for -n");
-+ fatal("argument missing for -n");
- }
- ++i;
- char* name = argv[i];
-@@ -499,6 +507,66 @@
- save_dir(fd,offset,size,swap_endianness,dir);
- }
-
-+static void fis_checksum(const char* device, int offset, int size, bool swap_endianness,
-+ int argc, char* argv[])
-+{
-+ char* name = NULL;
-+ char* filename = NULL;
-+
-+ for (int i=0; i<argc; ++i) {
-+ char* arg=argv[i];
-+ if (strcmp(arg,"-f")==0) {
-+ if (i==argc-1) {
-+ fatal("argument missing for -f");
-+ }
-+ ++i;
-+ filename = argv[i];
-+ } else if (strcmp(arg,"-n")==0) {
-+ if (i==argc-1) {
-+ fatal("argument missing for -n");
-+ }
-+ ++i;
-+ name = argv[i];
-+ if (strlen(name)>=16) {
-+ fatal("name too long, max 16 chars including terminating null");
-+ }
-+ } else {
-+ fputs("Unrecognised option '",stderr);
-+ fputs(arg,stderr);
-+ fputs("'\n",stderr);
-+ exit(1);
-+ }
-+ }
-+
-+ if (name == NULL || filename == NULL)
-+ fatal("filename and partition name must be specified");
-+
-+ int fd;
-+ char *buf;
-+ struct stat stat_buf;
-+ uint32_t crc;
-+
-+ CHECK(fd=open(filename,O_RDONLY),-1);
-+ CHECK(stat(filename, &stat_buf),-1);
-+ buf = (char*)chk_malloc(stat_buf.st_size);
-+ CHECK(read(fd,buf,stat_buf.st_size),-1);
-+ crc = crc32(buf,stat_buf.st_size);
-+ close(fd);
-+ free(buf);
-+
-+ CHECK(fd=open(device,O_RDWR),-1);
-+ dir_t dir;
-+ load_dir(fd,offset,&size,swap_endianness,&dir);
-+ iter_t after = NULL;
-+ FOR_EACH_DIR_ENTRY(dir,i) {
-+ if (strcmp(get(i)->name, name) == 0) {
-+ get(i)->file_cksum = crc;
-+ get(i)->data_length = stat_buf.st_size;
-+ break;
-+ }
-+ }
-+ save_dir(fd,offset,size,swap_endianness,dir);
-+}
-
- static void fis_delete(const char* device, int offset, int size, bool swap_endianness,
- char* name)
-@@ -526,8 +594,9 @@
- fputs("Usage:\n"
- " fis [options] list\n"
- " fis [options] init\n"
-- " fis [options] create -f address -l size -n name\n"
-+ " fis [options] create -f address -l size -n name [-m memory_address]\n"
- " fis [options] delete name\n"
-+ " fis [options] checksum -f filename -n name\n"
- "Options:\n"
- " -d device specify /dev/mtd* device containing directory\n"
- " -o offset specify offset into device of start of directory\n"
-@@ -597,9 +666,14 @@
- fis_create(device,offset,size,swap_endianness,
- argc-i-1,&argv[i+1]);
- break;
-+ } else if (strcmp(arg,"checksum")==0) {
-+ check_dev(device);
-+ fis_checksum(device,offset,size,swap_endianness,
-+ argc-i-1,&argv[i+1]);
-+ break;
- } else if (strcmp(arg,"delete")==0) {
- if (i!=argc-2) {
-- fatal("Exactly one argumnet required after 'delete'");
-+ fatal("Exactly one argument required after 'delete'");
- }
- ++i;
- char* name = argv[i];
+++ /dev/null
---- fis.orig/fis.c 2010-05-12 10:22:10.000000000 -0700
-+++ fis/fis.c 2010-05-12 10:19:24.000000000 -0700
-@@ -142,8 +142,8 @@
-
- static void dump_desc(FILE* f, const struct fis_image_desc* d)
- {
-- fprintf(f,"%16s: flash addr = 0x%08x, mem addr = 0x%08x, size = 0x%08x, checksum = 0x%08x\n",
-- d->name, d->flash_base, d->mem_base, d->size, d->file_cksum);
-+ fprintf(f,"%-16s 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n",
-+ d->name, d->flash_base, d->mem_base, d->size, d->entry_point, d->file_cksum);
- for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
- if (d->skips[i]==0x736b6970 || d->skips[i]==0x70696b73) { // "skip"
- uint32_t offset = d->skips[i+1];
-@@ -400,6 +400,7 @@
- CHECK(fd=open(device,O_RDONLY),-1);
- dir_t dir;
- load_dir(fd,offset,&size,swap_endianness,&dir);
-+ fprintf(stdout,"Name FLASH addr Mem addr Length Entry point Checksum\n");
- FOR_EACH_DIR_ENTRY(dir,i) {
- dump_desc(stdout,get(i));
- }
+++ /dev/null
---- fis.orig/fis.c 2010-05-12 11:09:22.000000000 -0700
-+++ fis/fis.c 2010-05-12 11:05:45.000000000 -0700
-@@ -401,9 +401,24 @@
- dir_t dir;
- load_dir(fd,offset,&size,swap_endianness,&dir);
- fprintf(stdout,"Name FLASH addr Mem addr Length Entry point Checksum\n");
-- FOR_EACH_DIR_ENTRY(dir,i) {
-- dump_desc(stdout,get(i));
-- }
-+ uint32_t last_addr = 0;
-+ bool image_found;
-+ do {
-+ uint32_t lowest_addr = 0xffffffff;
-+ iter_t index;
-+ image_found = false;
-+ FOR_EACH_DIR_ENTRY(dir,i) {
-+ const struct fis_image_desc *d = get(i);
-+ if ((d->flash_base >= last_addr) && (d->flash_base < lowest_addr)) {
-+ lowest_addr = d->flash_base;
-+ image_found = true;
-+ index = i;
-+ }
-+ }
-+ if (image_found)
-+ dump_desc(stdout,get(index));
-+ last_addr = lowest_addr + 1;
-+ } while (image_found == true);
- }
-
-
--- /dev/null
+From 1f5e208a4709a3030258024ea63834aab41bca3c Mon Sep 17 00:00:00 2001
+From: Dave Beckett <dave@dajobe.org>
+Date: Sat, 31 May 2014 12:10:35 -0700
+Subject: [PATCH] Switch to https for all service endpoints. HTTP EOL
+ 2014-06-27
+
+2014-04-30 Flickr announced that it would be HTTPS only from 2014-06-27
+http://code.flickr.net/2014/04/30/flickr-api-going-ssl-only-on-june-27th-2014/
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ src/common.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/common.c b/src/common.c
+index ef05e08..245db18 100644
+--- a/src/common.c
++++ b/src/common.c
+@@ -73,12 +73,12 @@ const char* const flickcurl_home_url_string = "http://librdf.org/flickcurl/";
+ const char* const flickcurl_version_string = VERSION;
+
+
+-const char* const flickcurl_flickr_service_uri = "http://www.flickr.com/services/rest/";
+-const char* const flickcurl_flickr_upload_service_uri = "http://api.flickr.com/services/upload/";
+-const char* const flickcurl_flickr_replace_service_uri = "http://api.flickr.com/services/replace/";
+-const char* const flickcurl_flickr_oauth_request_token_uri = "http://www.flickr.com/services/oauth/request_token";
+-const char* const flickcurl_flickr_oauth_authorize_uri = "http://www.flickr.com/services/oauth/authorize";
+-const char* const flickcurl_flickr_oauth_access_token_uri = "http://www.flickr.com/services/oauth/access_token";
++const char* const flickcurl_flickr_service_uri = "https://api.flickr.com/services/rest/";
++const char* const flickcurl_flickr_upload_service_uri = "https://up.flickr.com/services/upload/";
++const char* const flickcurl_flickr_replace_service_uri = "https://up.flickr.com/services/replace/";
++const char* const flickcurl_flickr_oauth_request_token_uri = "https://api.flickr.com/services/oauth/request_token";
++const char* const flickcurl_flickr_oauth_authorize_uri = "https://api.flickr.com/services/oauth/authorize";
++const char* const flickcurl_flickr_oauth_access_token_uri = "https://api.flickr.com/services/oauth/access_token";
+
+
+ static void
+--
+2.0.0
+
--- /dev/null
+From 3e65bbfc1c556ac8bd1d30db66d6e63957066b75 Mon Sep 17 00:00:00 2001
+From: Dave Beckett <dave@dajobe.org>
+Date: Sat, 31 May 2014 12:56:22 -0700
+Subject: [PATCH] Oauth services are on https www.flickr.com
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ src/common.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/common.c b/src/common.c
+index 245db18..c697a7d 100644
+--- a/src/common.c
++++ b/src/common.c
+@@ -76,9 +76,9 @@ const char* const flickcurl_version_string = VERSION;
+ const char* const flickcurl_flickr_service_uri = "https://api.flickr.com/services/rest/";
+ const char* const flickcurl_flickr_upload_service_uri = "https://up.flickr.com/services/upload/";
+ const char* const flickcurl_flickr_replace_service_uri = "https://up.flickr.com/services/replace/";
+-const char* const flickcurl_flickr_oauth_request_token_uri = "https://api.flickr.com/services/oauth/request_token";
+-const char* const flickcurl_flickr_oauth_authorize_uri = "https://api.flickr.com/services/oauth/authorize";
+-const char* const flickcurl_flickr_oauth_access_token_uri = "https://api.flickr.com/services/oauth/access_token";
++const char* const flickcurl_flickr_oauth_request_token_uri = "https://www.flickr.com/services/oauth/request_token";
++const char* const flickcurl_flickr_oauth_authorize_uri = "https://www.flickr.com/services/oauth/authorize";
++const char* const flickcurl_flickr_oauth_access_token_uri = "https://www.flickr.com/services/oauth/access_token";
+
+
+ static void
+--
+2.0.0
+
+++ /dev/null
-From 1f5e208a4709a3030258024ea63834aab41bca3c Mon Sep 17 00:00:00 2001
-From: Dave Beckett <dave@dajobe.org>
-Date: Sat, 31 May 2014 12:10:35 -0700
-Subject: [PATCH] Switch to https for all service endpoints. HTTP EOL
- 2014-06-27
-
-2014-04-30 Flickr announced that it would be HTTPS only from 2014-06-27
-http://code.flickr.net/2014/04/30/flickr-api-going-ssl-only-on-june-27th-2014/
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- src/common.c | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/common.c b/src/common.c
-index ef05e08..245db18 100644
---- a/src/common.c
-+++ b/src/common.c
-@@ -73,12 +73,12 @@ const char* const flickcurl_home_url_string = "http://librdf.org/flickcurl/";
- const char* const flickcurl_version_string = VERSION;
-
-
--const char* const flickcurl_flickr_service_uri = "http://www.flickr.com/services/rest/";
--const char* const flickcurl_flickr_upload_service_uri = "http://api.flickr.com/services/upload/";
--const char* const flickcurl_flickr_replace_service_uri = "http://api.flickr.com/services/replace/";
--const char* const flickcurl_flickr_oauth_request_token_uri = "http://www.flickr.com/services/oauth/request_token";
--const char* const flickcurl_flickr_oauth_authorize_uri = "http://www.flickr.com/services/oauth/authorize";
--const char* const flickcurl_flickr_oauth_access_token_uri = "http://www.flickr.com/services/oauth/access_token";
-+const char* const flickcurl_flickr_service_uri = "https://api.flickr.com/services/rest/";
-+const char* const flickcurl_flickr_upload_service_uri = "https://up.flickr.com/services/upload/";
-+const char* const flickcurl_flickr_replace_service_uri = "https://up.flickr.com/services/replace/";
-+const char* const flickcurl_flickr_oauth_request_token_uri = "https://api.flickr.com/services/oauth/request_token";
-+const char* const flickcurl_flickr_oauth_authorize_uri = "https://api.flickr.com/services/oauth/authorize";
-+const char* const flickcurl_flickr_oauth_access_token_uri = "https://api.flickr.com/services/oauth/access_token";
-
-
- static void
---
-2.0.0
-
+++ /dev/null
-From 3e65bbfc1c556ac8bd1d30db66d6e63957066b75 Mon Sep 17 00:00:00 2001
-From: Dave Beckett <dave@dajobe.org>
-Date: Sat, 31 May 2014 12:56:22 -0700
-Subject: [PATCH] Oauth services are on https www.flickr.com
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- src/common.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/common.c b/src/common.c
-index 245db18..c697a7d 100644
---- a/src/common.c
-+++ b/src/common.c
-@@ -76,9 +76,9 @@ const char* const flickcurl_version_string = VERSION;
- const char* const flickcurl_flickr_service_uri = "https://api.flickr.com/services/rest/";
- const char* const flickcurl_flickr_upload_service_uri = "https://up.flickr.com/services/upload/";
- const char* const flickcurl_flickr_replace_service_uri = "https://up.flickr.com/services/replace/";
--const char* const flickcurl_flickr_oauth_request_token_uri = "https://api.flickr.com/services/oauth/request_token";
--const char* const flickcurl_flickr_oauth_authorize_uri = "https://api.flickr.com/services/oauth/authorize";
--const char* const flickcurl_flickr_oauth_access_token_uri = "https://api.flickr.com/services/oauth/access_token";
-+const char* const flickcurl_flickr_oauth_request_token_uri = "https://www.flickr.com/services/oauth/request_token";
-+const char* const flickcurl_flickr_oauth_authorize_uri = "https://www.flickr.com/services/oauth/authorize";
-+const char* const flickcurl_flickr_oauth_access_token_uri = "https://www.flickr.com/services/oauth/access_token";
-
-
- static void
---
-2.0.0
-
--- /dev/null
+From 658f3243238efe951f6242fa384e990d77078afc Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Fri, 27 Dec 2013 17:42:39 +0100
+Subject: [PATCH] now honor DESTDIR env. var.
+
+Flite used a handwritten a Makefile which doesn't honor DESTDIR environment
+variable, though it uses autoconf.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ config/config.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/config/config.in b/config/config.in
+index 914d2bf..43f1a56 100644
+--- a/config/config.in
++++ b/config/config.in
+@@ -49,6 +49,6 @@ include $(TOP)/config/$(langvox).lv
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ EXEEXT = @EXEEXT@
+-INSTALLBINDIR = @bindir@
+-INSTALLLIBDIR = @libdir@
+-INSTALLINCDIR = @includedir@/flite
++INSTALLBINDIR = $(DESTDIR)@bindir@
++INSTALLLIBDIR = $(DESTDIR)@libdir@
++INSTALLINCDIR = $(DESTDIR)@includedir@/flite
+--
+1.8.5.2
+
--- /dev/null
+Use pkg-config to determine alsa link flags. This fixes static linking.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+
+diff -Nuar flite-1.4-release.orig/configure.in flite-1.4-release/configure.in
+--- flite-1.4-release.orig/configure.in 2009-08-14 23:46:38.000000000 +0300
++++ flite-1.4-release/configure.in 2014-04-30 18:52:33.253297236 +0300
+@@ -275,7 +275,10 @@
+ #endif],
+ [AUDIODRIVER="alsa"
+ AUDIODEFS=-DCST_AUDIO_ALSA
+- AUDIOLIBS=-lasound])
++ AUDIOLIBS=`pkg-config --libs alsa`
++ if test "$shared" = false; then
++ AUDIOLIBS=`pkg-config --libs --static alsa`
++ fi])
+ AC_CHECK_HEADER(mmsystem.h,
+ [AUDIODRIVER="wince"
+ AUDIODEFS=-DCST_AUDIO_WINCE
+++ /dev/null
-From 658f3243238efe951f6242fa384e990d77078afc Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Fri, 27 Dec 2013 17:42:39 +0100
-Subject: [PATCH] now honor DESTDIR env. var.
-
-Flite used a handwritten a Makefile which doesn't honor DESTDIR environment
-variable, though it uses autoconf.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- config/config.in | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/config/config.in b/config/config.in
-index 914d2bf..43f1a56 100644
---- a/config/config.in
-+++ b/config/config.in
-@@ -49,6 +49,6 @@ include $(TOP)/config/$(langvox).lv
- prefix = @prefix@
- exec_prefix = @exec_prefix@
- EXEEXT = @EXEEXT@
--INSTALLBINDIR = @bindir@
--INSTALLLIBDIR = @libdir@
--INSTALLINCDIR = @includedir@/flite
-+INSTALLBINDIR = $(DESTDIR)@bindir@
-+INSTALLLIBDIR = $(DESTDIR)@libdir@
-+INSTALLINCDIR = $(DESTDIR)@includedir@/flite
---
-1.8.5.2
-
+++ /dev/null
-Use pkg-config to determine alsa link flags. This fixes static linking.
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
-
-diff -Nuar flite-1.4-release.orig/configure.in flite-1.4-release/configure.in
---- flite-1.4-release.orig/configure.in 2009-08-14 23:46:38.000000000 +0300
-+++ flite-1.4-release/configure.in 2014-04-30 18:52:33.253297236 +0300
-@@ -275,7 +275,10 @@
- #endif],
- [AUDIODRIVER="alsa"
- AUDIODEFS=-DCST_AUDIO_ALSA
-- AUDIOLIBS=-lasound])
-+ AUDIOLIBS=`pkg-config --libs alsa`
-+ if test "$shared" = false; then
-+ AUDIOLIBS=`pkg-config --libs --static alsa`
-+ fi])
- AC_CHECK_HEADER(mmsystem.h,
- [AUDIODRIVER="wince"
- AUDIODEFS=-DCST_AUDIO_WINCE
--- /dev/null
+Disable tests, slower to build and would need host-fltk.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura fltk-1.3.2.orig/Makefile fltk-1.3.2/Makefile
+--- fltk-1.3.2.orig/Makefile 2013-10-27 18:19:39.693208127 -0300
++++ fltk-1.3.2/Makefile 2013-10-27 18:20:08.032136885 -0300
+@@ -18,7 +18,7 @@
+
+ include makeinclude
+
+-DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid test documentation
++DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid documentation
+
+ all: makeinclude fltk-config
+ for dir in $(DIRS); do\
--- /dev/null
+From http://www.fltk.org/str.php?L2920
+However it's not yet applied apparently until bundled jpeg is upgraded.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura fltk-1.3.2.orig/src/Fl_JPEG_Image.cxx fltk-1.3.2/src/Fl_JPEG_Image.cxx
+--- fltk-1.3.2.orig/src/Fl_JPEG_Image.cxx 2014-07-03 12:56:27.731197463 -0300
++++ fltk-1.3.2/src/Fl_JPEG_Image.cxx 2014-07-03 12:56:57.907218257 -0300
+@@ -155,7 +155,7 @@
+
+ jpeg_create_decompress(&dinfo);
+ jpeg_stdio_src(&dinfo, fp);
+- jpeg_read_header(&dinfo, 1);
++ jpeg_read_header(&dinfo, TRUE);
+
+ dinfo.quantize_colors = (boolean)FALSE;
+ dinfo.out_color_space = JCS_RGB;
+@@ -333,7 +333,7 @@
+
+ jpeg_create_decompress(&dinfo);
+ jpeg_mem_src(&dinfo, data);
+- jpeg_read_header(&dinfo, 1);
++ jpeg_read_header(&dinfo, TRUE);
+
+ dinfo.quantize_colors = (boolean)FALSE;
+ dinfo.out_color_space = JCS_RGB;
+++ /dev/null
-Disable tests, slower to build and would need host-fltk.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura fltk-1.3.2.orig/Makefile fltk-1.3.2/Makefile
---- fltk-1.3.2.orig/Makefile 2013-10-27 18:19:39.693208127 -0300
-+++ fltk-1.3.2/Makefile 2013-10-27 18:20:08.032136885 -0300
-@@ -18,7 +18,7 @@
-
- include makeinclude
-
--DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid test documentation
-+DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid documentation
-
- all: makeinclude fltk-config
- for dir in $(DIRS); do\
+++ /dev/null
-From http://www.fltk.org/str.php?L2920
-However it's not yet applied apparently until bundled jpeg is upgraded.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura fltk-1.3.2.orig/src/Fl_JPEG_Image.cxx fltk-1.3.2/src/Fl_JPEG_Image.cxx
---- fltk-1.3.2.orig/src/Fl_JPEG_Image.cxx 2014-07-03 12:56:27.731197463 -0300
-+++ fltk-1.3.2/src/Fl_JPEG_Image.cxx 2014-07-03 12:56:57.907218257 -0300
-@@ -155,7 +155,7 @@
-
- jpeg_create_decompress(&dinfo);
- jpeg_stdio_src(&dinfo, fp);
-- jpeg_read_header(&dinfo, 1);
-+ jpeg_read_header(&dinfo, TRUE);
-
- dinfo.quantize_colors = (boolean)FALSE;
- dinfo.out_color_space = JCS_RGB;
-@@ -333,7 +333,7 @@
-
- jpeg_create_decompress(&dinfo);
- jpeg_mem_src(&dinfo, data);
-- jpeg_read_header(&dinfo, 1);
-+ jpeg_read_header(&dinfo, TRUE);
-
- dinfo.quantize_colors = (boolean)FALSE;
- dinfo.out_color_space = JCS_RGB;
--- /dev/null
+From be615daf41b4bcc61322a987088ee209b5e66c19 Mon Sep 17 00:00:00 2001
+From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+Date: Wed, 24 Sep 2014 13:54:15 +0100
+Subject: [PATCH] Add support for uClibc
+
+The stable-1.1 branch of freerdp fails to build when using a uClibc
+toolchain because it's using functions which are not implemented in
+uClibc, like eventfd_read, eventfd_write and futimes. That is causing
+build failures like these ones:
+
+../../libwinpr/synch/libwinpr-synch.so.0.1.0: undefined reference to
+`eventfd_read'
+../../libwinpr/synch/libwinpr-synch.so.0.1.0: undefined reference to
+`eventfd_write'
+
+../../common/libfreerdp-client.so.1.1.0: undefined reference to
+`futimes'
+
+This patch is based on this upstream patch:
+
+ https://github.com/FreeRDP/FreeRDP/commit/5f9c36da5d5cd3c5dce49f7b32fe011cb293f9ec/
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+---
+ channels/drive/client/drive_file.c | 12 +++++++++---
+ winpr/libwinpr/synch/event.c | 14 ++++++++++++++
+ 2 files changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/channels/drive/client/drive_file.c b/channels/drive/client/drive_file.c
+index 376b4fe..b20f408 100644
+--- a/channels/drive/client/drive_file.c
++++ b/channels/drive/client/drive_file.c
+@@ -480,7 +480,11 @@ BOOL drive_file_set_information(DRIVE_FILE* file, UINT32 FsInformationClass, UIN
+ int status;
+ char* fullpath;
+ struct STAT st;
++#if defined(ANDROID)
+ struct timeval tv[2];
++#else
++ struct timespec tv[2];
++#endif
+ UINT64 LastWriteTime;
+ UINT32 FileAttributes;
+ UINT32 FileNameLength;
+@@ -501,15 +505,17 @@ BOOL drive_file_set_information(DRIVE_FILE* file, UINT32 FsInformationClass, UIN
+ return FALSE;
+
+ tv[0].tv_sec = st.st_atime;
+- tv[0].tv_usec = 0;
+ tv[1].tv_sec = (LastWriteTime > 0 ? FILE_TIME_RDP_TO_SYSTEM(LastWriteTime) : st.st_mtime);
+- tv[1].tv_usec = 0;
+ #ifndef WIN32
+ /* TODO on win32 */
+ #ifdef ANDROID
++ tv[0].tv_usec = 0;
++ tv[1].tv_usec = 0;
+ utimes(file->fullpath, tv);
+ #else
+- futimes(file->fd, tv);
++ tv[0].tv_nsec = 0;
++ tv[1].tv_nsec = 0;
++ futimens(file->fd, tv);
+ #endif
+
+ if (FileAttributes > 0)
+diff --git a/winpr/libwinpr/synch/event.c b/winpr/libwinpr/synch/event.c
+index 173afaf..943cccb 100644
+--- a/winpr/libwinpr/synch/event.c
++++ b/winpr/libwinpr/synch/event.c
+@@ -115,6 +115,20 @@ HANDLE OpenEventA(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName)
+ return NULL;
+ }
+
++#ifdef HAVE_EVENTFD_H
++#if defined(__UCLIBC__)
++static int eventfd_read(int fd, eventfd_t* value)
++{
++ return (read(fd, value, sizeof(*value)) == sizeof(*value)) ? 0 : -1;
++}
++
++static int eventfd_write(int fd, eventfd_t value)
++{
++ return (write(fd, &value, sizeof(value)) == sizeof(value)) ? 0 : -1;
++}
++#endif
++#endif
++
+ BOOL SetEvent(HANDLE hEvent)
+ {
+ ULONG Type;
+--
+1.7.1
+
+++ /dev/null
-From be615daf41b4bcc61322a987088ee209b5e66c19 Mon Sep 17 00:00:00 2001
-From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-Date: Wed, 24 Sep 2014 13:54:15 +0100
-Subject: [PATCH] Add support for uClibc
-
-The stable-1.1 branch of freerdp fails to build when using a uClibc
-toolchain because it's using functions which are not implemented in
-uClibc, like eventfd_read, eventfd_write and futimes. That is causing
-build failures like these ones:
-
-../../libwinpr/synch/libwinpr-synch.so.0.1.0: undefined reference to
-`eventfd_read'
-../../libwinpr/synch/libwinpr-synch.so.0.1.0: undefined reference to
-`eventfd_write'
-
-../../common/libfreerdp-client.so.1.1.0: undefined reference to
-`futimes'
-
-This patch is based on this upstream patch:
-
- https://github.com/FreeRDP/FreeRDP/commit/5f9c36da5d5cd3c5dce49f7b32fe011cb293f9ec/
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
----
- channels/drive/client/drive_file.c | 12 +++++++++---
- winpr/libwinpr/synch/event.c | 14 ++++++++++++++
- 2 files changed, 23 insertions(+), 3 deletions(-)
-
-diff --git a/channels/drive/client/drive_file.c b/channels/drive/client/drive_file.c
-index 376b4fe..b20f408 100644
---- a/channels/drive/client/drive_file.c
-+++ b/channels/drive/client/drive_file.c
-@@ -480,7 +480,11 @@ BOOL drive_file_set_information(DRIVE_FILE* file, UINT32 FsInformationClass, UIN
- int status;
- char* fullpath;
- struct STAT st;
-+#if defined(ANDROID)
- struct timeval tv[2];
-+#else
-+ struct timespec tv[2];
-+#endif
- UINT64 LastWriteTime;
- UINT32 FileAttributes;
- UINT32 FileNameLength;
-@@ -501,15 +505,17 @@ BOOL drive_file_set_information(DRIVE_FILE* file, UINT32 FsInformationClass, UIN
- return FALSE;
-
- tv[0].tv_sec = st.st_atime;
-- tv[0].tv_usec = 0;
- tv[1].tv_sec = (LastWriteTime > 0 ? FILE_TIME_RDP_TO_SYSTEM(LastWriteTime) : st.st_mtime);
-- tv[1].tv_usec = 0;
- #ifndef WIN32
- /* TODO on win32 */
- #ifdef ANDROID
-+ tv[0].tv_usec = 0;
-+ tv[1].tv_usec = 0;
- utimes(file->fullpath, tv);
- #else
-- futimes(file->fd, tv);
-+ tv[0].tv_nsec = 0;
-+ tv[1].tv_nsec = 0;
-+ futimens(file->fd, tv);
- #endif
-
- if (FileAttributes > 0)
-diff --git a/winpr/libwinpr/synch/event.c b/winpr/libwinpr/synch/event.c
-index 173afaf..943cccb 100644
---- a/winpr/libwinpr/synch/event.c
-+++ b/winpr/libwinpr/synch/event.c
-@@ -115,6 +115,20 @@ HANDLE OpenEventA(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName)
- return NULL;
- }
-
-+#ifdef HAVE_EVENTFD_H
-+#if defined(__UCLIBC__)
-+static int eventfd_read(int fd, eventfd_t* value)
-+{
-+ return (read(fd, value, sizeof(*value)) == sizeof(*value)) ? 0 : -1;
-+}
-+
-+static int eventfd_write(int fd, eventfd_t value)
-+{
-+ return (write(fd, &value, sizeof(value)) == sizeof(value)) ? 0 : -1;
-+}
-+#endif
-+#endif
-+
- BOOL SetEvent(HANDLE hEvent)
- {
- ULONG Type;
---
-1.7.1
-
--- /dev/null
+Correct the directory path for gc_hal_eglplatform_type.h
+
+Signed-off-by: Henk Fijnvandraat <h.fijnvandraat@inter.nl.net>
+
+diff -rup gpu-viv-bin-mx6q-1.1.0-orig/usr/include/gc_vdk_types.h gpu-viv-bin-mx6q-1.1.0/usr/include/gc_vdk_types.h
+--- gpu-viv-bin-mx6q-1.1.0-orig/usr/include/gc_vdk_types.h 2012-12-18 10:35:55.000000000 +0100
++++ gpu-viv-bin-mx6q-1.1.0/usr/include/gc_vdk_types.h 2013-05-09 21:09:28.080138681 +0200
+@@ -39,7 +39,7 @@ extern "C" {
+ #endif
+
+ #include <EGL/egl.h>
+-#include "gc_hal_eglplatform_type.h"
++#include <HAL/gc_hal_eglplatform_type.h>
+
+
+ /*******************************************************************************
+++ /dev/null
-Correct the directory path for gc_hal_eglplatform_type.h
-
-Signed-off-by: Henk Fijnvandraat <h.fijnvandraat@inter.nl.net>
-
-diff -rup gpu-viv-bin-mx6q-1.1.0-orig/usr/include/gc_vdk_types.h gpu-viv-bin-mx6q-1.1.0/usr/include/gc_vdk_types.h
---- gpu-viv-bin-mx6q-1.1.0-orig/usr/include/gc_vdk_types.h 2012-12-18 10:35:55.000000000 +0100
-+++ gpu-viv-bin-mx6q-1.1.0/usr/include/gc_vdk_types.h 2013-05-09 21:09:28.080138681 +0200
-@@ -39,7 +39,7 @@ extern "C" {
- #endif
-
- #include <EGL/egl.h>
--#include "gc_hal_eglplatform_type.h"
-+#include <HAL/gc_hal_eglplatform_type.h>
-
-
- /*******************************************************************************
--- /dev/null
+[PATCH] vpu-io: fix IOSystemInit failure
+
+When using a kernel where user/kernel split is 3G/1G, the address
+returned by IOGetVirtMem() can appear to be a negative int.
+
+IOSystemInit() incorrectly checks the return value of IOGetVirtMem().
+IOGetVirtMem() returns -1 on error (and not MAP_FAILED, nor any other
+negative value.)
+
+Fix that by correctly checking against -1 (and not MAP_FAILED!)
+
+Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
+[yann.morin.1998@free.fr: expand the commit log]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+ vpu/vpu_io.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/vpu/vpu_io.c b/vpu/vpu_io.c
+index 8cbb571..14759da 100644
+--- a/vpu/vpu_io.c
++++ b/vpu/vpu_io.c
+@@ -265,7 +265,7 @@ int IOSystemInit(void *callback)
+ goto err;
+ }
+
+- if (IOGetVirtMem(&bit_work_addr) <= 0)
++ if (IOGetVirtMem(&bit_work_addr) == -1)
+ goto err;
+ #endif
+ UnlockVpu(vpu_semap);
+
--- /dev/null
+[PATCH] vpu-lib: fix IOGetVirtMem return value checks
+
+When using a kernel where user/kernel split is 3G/1G, the address
+returned by IOGetVirtMem() can appear to be a negative int.
+
+IOSystemInit() incorrectly checks the return value of IOGetVirtMem().
+IOGetVirtMem() returns -1 on error (and not MAP_FAILED, nor any other
+negative value.)
+
+Fix that by correctly checking against -1 (and not MAP_FAILED!)
+
+Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
+[yann.morin.1998@free.fr: expand the commit log]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+ vpu/vpu_lib.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/vpu/vpu_lib.c b/vpu/vpu_lib.c
+index 1fb731b..7a7f42d 100644
+--- a/vpu/vpu_lib.c
++++ b/vpu/vpu_lib.c
+@@ -1764,7 +1764,7 @@ RetCode vpu_EncStartOneFrame(EncHandle handle, EncParam * param)
+ err_msg("Unable to obtain physical mem\n");
+ return RETCODE_FAILURE;
+ }
+- if (IOGetVirtMem(&pEncInfo->picParaBaseMem) <= 0) {
++ if (IOGetVirtMem(&pEncInfo->picParaBaseMem) == -1) {
+ IOFreePhyMem(&pEncInfo->picParaBaseMem);
+ pEncInfo->picParaBaseMem.phy_addr = 0;
+ err_msg("Unable to obtain virtual mem\n");
+@@ -2982,7 +2982,7 @@ RetCode vpu_DecGetInitialInfo(DecHandle handle, DecInitialInfo * info)
+ UnlockVpu(vpu_semap);
+ return RETCODE_FAILURE;
+ }
+- if (IOGetVirtMem(&pDecInfo->userDataBufMem) <= 0) {
++ if (IOGetVirtMem(&pDecInfo->userDataBufMem) == -1) {
+ IOFreePhyMem(&pDecInfo->userDataBufMem);
+ pDecInfo->userDataBufMem.phy_addr = 0;
+ err_msg("Unable to obtain virtual mem\n");
+@@ -4017,7 +4017,7 @@ RetCode vpu_DecStartOneFrame(DecHandle handle, DecParam * param)
+ UnlockVpu(vpu_semap);
+ return RETCODE_FAILURE;
+ }
+- if (IOGetVirtMem(&pDecInfo->picParaBaseMem) <= 0) {
++ if (IOGetVirtMem(&pDecInfo->picParaBaseMem) == -1) {
+ IOFreePhyMem(&pDecInfo->picParaBaseMem);
+ pDecInfo->picParaBaseMem.phy_addr = 0;
+ err_msg("Unable to obtain virtual mem\n");
+@@ -4057,7 +4057,7 @@ RetCode vpu_DecStartOneFrame(DecHandle handle, DecParam * param)
+ UnlockVpu(vpu_semap);
+ return RETCODE_FAILURE;
+ }
+- if (IOGetVirtMem(&pDecInfo->userDataBufMem) <= 0) {
++ if (IOGetVirtMem(&pDecInfo->userDataBufMem) == -1) {
+ IOFreePhyMem(&pDecInfo->userDataBufMem);
+ pDecInfo->userDataBufMem.phy_addr = 0;
+ err_msg("Unable to obtain virtual mem\n");
+
+++ /dev/null
-[PATCH] vpu-io: fix IOSystemInit failure
-
-When using a kernel where user/kernel split is 3G/1G, the address
-returned by IOGetVirtMem() can appear to be a negative int.
-
-IOSystemInit() incorrectly checks the return value of IOGetVirtMem().
-IOGetVirtMem() returns -1 on error (and not MAP_FAILED, nor any other
-negative value.)
-
-Fix that by correctly checking against -1 (and not MAP_FAILED!)
-
-Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
-[yann.morin.1998@free.fr: expand the commit log]
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
- vpu/vpu_io.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/vpu/vpu_io.c b/vpu/vpu_io.c
-index 8cbb571..14759da 100644
---- a/vpu/vpu_io.c
-+++ b/vpu/vpu_io.c
-@@ -265,7 +265,7 @@ int IOSystemInit(void *callback)
- goto err;
- }
-
-- if (IOGetVirtMem(&bit_work_addr) <= 0)
-+ if (IOGetVirtMem(&bit_work_addr) == -1)
- goto err;
- #endif
- UnlockVpu(vpu_semap);
-
+++ /dev/null
-[PATCH] vpu-lib: fix IOGetVirtMem return value checks
-
-When using a kernel where user/kernel split is 3G/1G, the address
-returned by IOGetVirtMem() can appear to be a negative int.
-
-IOSystemInit() incorrectly checks the return value of IOGetVirtMem().
-IOGetVirtMem() returns -1 on error (and not MAP_FAILED, nor any other
-negative value.)
-
-Fix that by correctly checking against -1 (and not MAP_FAILED!)
-
-Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
-[yann.morin.1998@free.fr: expand the commit log]
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
- vpu/vpu_lib.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/vpu/vpu_lib.c b/vpu/vpu_lib.c
-index 1fb731b..7a7f42d 100644
---- a/vpu/vpu_lib.c
-+++ b/vpu/vpu_lib.c
-@@ -1764,7 +1764,7 @@ RetCode vpu_EncStartOneFrame(EncHandle handle, EncParam * param)
- err_msg("Unable to obtain physical mem\n");
- return RETCODE_FAILURE;
- }
-- if (IOGetVirtMem(&pEncInfo->picParaBaseMem) <= 0) {
-+ if (IOGetVirtMem(&pEncInfo->picParaBaseMem) == -1) {
- IOFreePhyMem(&pEncInfo->picParaBaseMem);
- pEncInfo->picParaBaseMem.phy_addr = 0;
- err_msg("Unable to obtain virtual mem\n");
-@@ -2982,7 +2982,7 @@ RetCode vpu_DecGetInitialInfo(DecHandle handle, DecInitialInfo * info)
- UnlockVpu(vpu_semap);
- return RETCODE_FAILURE;
- }
-- if (IOGetVirtMem(&pDecInfo->userDataBufMem) <= 0) {
-+ if (IOGetVirtMem(&pDecInfo->userDataBufMem) == -1) {
- IOFreePhyMem(&pDecInfo->userDataBufMem);
- pDecInfo->userDataBufMem.phy_addr = 0;
- err_msg("Unable to obtain virtual mem\n");
-@@ -4017,7 +4017,7 @@ RetCode vpu_DecStartOneFrame(DecHandle handle, DecParam * param)
- UnlockVpu(vpu_semap);
- return RETCODE_FAILURE;
- }
-- if (IOGetVirtMem(&pDecInfo->picParaBaseMem) <= 0) {
-+ if (IOGetVirtMem(&pDecInfo->picParaBaseMem) == -1) {
- IOFreePhyMem(&pDecInfo->picParaBaseMem);
- pDecInfo->picParaBaseMem.phy_addr = 0;
- err_msg("Unable to obtain virtual mem\n");
-@@ -4057,7 +4057,7 @@ RetCode vpu_DecStartOneFrame(DecHandle handle, DecParam * param)
- UnlockVpu(vpu_semap);
- return RETCODE_FAILURE;
- }
-- if (IOGetVirtMem(&pDecInfo->userDataBufMem) <= 0) {
-+ if (IOGetVirtMem(&pDecInfo->userDataBufMem) == -1) {
- IOFreePhyMem(&pDecInfo->userDataBufMem);
- pDecInfo->userDataBufMem.phy_addr = 0;
- err_msg("Unable to obtain virtual mem\n");
-
--- /dev/null
+Set tmp_buf and rate_buf to something ridiculously high to fix a buffer
+overflow when COLUMNS is large. - JeR
+
+(Taken from gentoo portage)
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+--- a/src/ftop.c 2009-02-16 07:00:00.000000000 +0100
++++ b/src/ftop.c 2013-09-06 14:42:41.788852952 +0200
+@@ -736,7 +736,7 @@
+ {
+ size_t i, j, bytes, bar_total;
+ char more_procs_ch, more_files_ch, expanded_ch;
+- char tmp_buf[80], rate_buf[80];
++ char tmp_buf[2048], rate_buf[2048];
+ char *tmp_str;
+ snapshot *s, *s_prev;
+ file_info *tmp_file;
+++ /dev/null
-Set tmp_buf and rate_buf to something ridiculously high to fix a buffer
-overflow when COLUMNS is large. - JeR
-
-(Taken from gentoo portage)
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
---- a/src/ftop.c 2009-02-16 07:00:00.000000000 +0100
-+++ b/src/ftop.c 2013-09-06 14:42:41.788852952 +0200
-@@ -736,7 +736,7 @@
- {
- size_t i, j, bytes, bar_total;
- char more_procs_ch, more_files_ch, expanded_ch;
-- char tmp_buf[80], rate_buf[80];
-+ char tmp_buf[2048], rate_buf[2048];
- char *tmp_str;
- snapshot *s, *s_prev;
- file_info *tmp_file;
--- /dev/null
+From 8cf5909c6f8e0a892155dea14a07adfad445762d Mon Sep 17 00:00:00 2001
+From: Haavard Skinnemoen <hskinnemoen@atmel.com>
+Date: Sat, 23 Jun 2007 18:34:09 +0200
+Subject: [PATCH] Include usb/ch9.h instead of usb_ch9.h
+
+Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
+---
+ usb.c | 2 +-
+ usbstring.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/usb.c b/usb.c
+index ea6c7de..b161154 100644
+--- a/usb.c
++++ b/usb.c
+@@ -35,7 +35,7 @@
+
+ #include <linux/types.h>
+ #include <linux/usb_gadgetfs.h>
+-#include <linux/usb_ch9.h>
++#include <linux/usb/ch9.h>
+
+ #ifdef AIO
+ /* this aio code works with libaio-0.3.106 */
+diff --git a/usbstring.c b/usbstring.c
+index 4bf2965..993acc2 100644
+--- a/usbstring.c
++++ b/usbstring.c
+@@ -11,7 +11,7 @@
+ #include <string.h>
+
+ #include <linux/types.h>
+-#include <linux/usb_ch9.h>
++#include <linux/usb/ch9.h>
+
+ #include "usbstring.h"
+
+--
+1.5.2.2
+
--- /dev/null
+diff -upr gadgetfs-test-orig/usb.c gadgetfs-test/usb.c
+--- gadgetfs-test-orig/usb.c 2007-07-18 14:38:38.000000000 +0200
++++ gadgetfs-test/usb.c 2007-07-18 15:33:04.000000000 +0200
+@@ -34,7 +34,7 @@
+ #include <asm/byteorder.h>
+
+ #include <linux/types.h>
+-#include <linux/usb_gadgetfs.h>
++#include <linux/usb/gadgetfs.h>
+ #include <linux/usb/ch9.h>
+
+ #ifdef AIO
+++ /dev/null
-From 8cf5909c6f8e0a892155dea14a07adfad445762d Mon Sep 17 00:00:00 2001
-From: Haavard Skinnemoen <hskinnemoen@atmel.com>
-Date: Sat, 23 Jun 2007 18:34:09 +0200
-Subject: [PATCH] Include usb/ch9.h instead of usb_ch9.h
-
-Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
----
- usb.c | 2 +-
- usbstring.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/usb.c b/usb.c
-index ea6c7de..b161154 100644
---- a/usb.c
-+++ b/usb.c
-@@ -35,7 +35,7 @@
-
- #include <linux/types.h>
- #include <linux/usb_gadgetfs.h>
--#include <linux/usb_ch9.h>
-+#include <linux/usb/ch9.h>
-
- #ifdef AIO
- /* this aio code works with libaio-0.3.106 */
-diff --git a/usbstring.c b/usbstring.c
-index 4bf2965..993acc2 100644
---- a/usbstring.c
-+++ b/usbstring.c
-@@ -11,7 +11,7 @@
- #include <string.h>
-
- #include <linux/types.h>
--#include <linux/usb_ch9.h>
-+#include <linux/usb/ch9.h>
-
- #include "usbstring.h"
-
---
-1.5.2.2
-
+++ /dev/null
-diff -upr gadgetfs-test-orig/usb.c gadgetfs-test/usb.c
---- gadgetfs-test-orig/usb.c 2007-07-18 14:38:38.000000000 +0200
-+++ gadgetfs-test/usb.c 2007-07-18 15:33:04.000000000 +0200
-@@ -34,7 +34,7 @@
- #include <asm/byteorder.h>
-
- #include <linux/types.h>
--#include <linux/usb_gadgetfs.h>
-+#include <linux/usb/gadgetfs.h>
- #include <linux/usb/ch9.h>
-
- #ifdef AIO
--- /dev/null
+[PATCH]: Remove abstract socket namespace check breaking cross compilation
+
+Taken from openembedded:
+
+http://git.openembedded.org/cgit.cgi/openembedded/tree/recipes/gamin/files/no-abstract-sockets.patch
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+--- /tmp/configure.in 2007-04-30 13:08:49.000000000 +0200
++++ gamin-0.1.8/configure.in 2007-04-30 13:10:53.285251000 +0200
+@@ -354,51 +354,6 @@
+ AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
+ fi
+
+-#### Abstract sockets
+-
+-AC_MSG_CHECKING(abstract socket namespace)
+-AC_LANG_PUSH(C)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM(
+-[[
+-#include <sys/types.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <stdio.h>
+-#include <sys/socket.h>
+-#include <sys/un.h>
+-#include <errno.h>
+-]],
+-[[
+- int listen_fd;
+- struct sockaddr_un addr;
+-
+- listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
+-
+- if (listen_fd < 0)
+- {
+- fprintf (stderr, "socket() failed: %s\n", strerror (errno));
+- exit (1);
+- }
+-
+- memset (&addr, '\0', sizeof (addr));
+- addr.sun_family = AF_UNIX;
+- strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
+- addr.sun_path[0] = '\0'; /* this is what makes it abstract */
+-
+- if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
+- {
+- fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
+- strerror (errno));
+- exit (1);
+- }
+- else
+- exit (0);
+-]])],
+- [have_abstract_sockets=yes],
+- [have_abstract_sockets=no])
+-AC_LANG_POP(C)
+-AC_MSG_RESULT($have_abstract_sockets)
+-
+ if test x$enable_abstract_sockets = xyes; then
+ if test x$have_abstract_sockets = xno; then
+ AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
--- /dev/null
+G_CONST_RETURN is deprecated in glib 2.30 so remove to to avoid
+build failures.
+
+Upstream-Status: Pending
+
+Index: gamin-0.1.10/server/gam_node.c
+===================================================================
+--- gamin-0.1.10.orig/server/gam_node.c 2011-10-12 15:25:45.217178314 +0100
++++ gamin-0.1.10/server/gam_node.c 2011-10-12 15:26:17.807178293 +0100
+@@ -122,7 +122,7 @@
+ * it has finished with the string. If it must keep it longer, it
+ * should makes its own copy. The returned string must not be freed.
+ */
+-G_CONST_RETURN char *
++const char *
+ gam_node_get_path(GamNode * node)
+ {
+ g_assert(node);
+Index: gamin-0.1.10/server/gam_node.h
+===================================================================
+--- gamin-0.1.10.orig/server/gam_node.h 2011-10-12 15:25:46.857178269 +0100
++++ gamin-0.1.10/server/gam_node.h 2011-10-12 15:26:28.637178297 +0100
+@@ -58,7 +58,7 @@
+ void gam_node_set_is_dir (GamNode *node,
+ gboolean is_dir);
+
+-G_CONST_RETURN char *gam_node_get_path (GamNode *node);
++const char *gam_node_get_path (GamNode *node);
+
+ GList *gam_node_get_subscriptions (GamNode *node);
+
+Index: gamin-0.1.10/server/gam_subscription.c
+===================================================================
+--- gamin-0.1.10.orig/server/gam_subscription.c 2011-10-12 15:25:40.497177525 +0100
++++ gamin-0.1.10/server/gam_subscription.c 2011-10-12 15:26:39.867178304 +0100
+@@ -141,7 +141,7 @@
+ * @param sub the GamSubscription
+ * @returns The path being monitored. It should not be freed.
+ */
+-G_CONST_RETURN char *
++const char *
+ gam_subscription_get_path(GamSubscription * sub)
+ {
+ if (sub == NULL)
+Index: gamin-0.1.10/server/gam_subscription.h
+===================================================================
+--- gamin-0.1.10.orig/server/gam_subscription.h 2011-10-12 15:25:28.507178266 +0100
++++ gamin-0.1.10/server/gam_subscription.h 2011-10-12 15:25:58.817178285 +0100
+@@ -21,7 +21,7 @@
+
+ int gam_subscription_get_reqno (GamSubscription *sub);
+
+-G_CONST_RETURN char *gam_subscription_get_path (GamSubscription *sub);
++const char *gam_subscription_get_path (GamSubscription *sub);
+
+ GamListener *gam_subscription_get_listener (GamSubscription *sub);
+
+++ /dev/null
-[PATCH]: Remove abstract socket namespace check breaking cross compilation
-
-Taken from openembedded:
-
-http://git.openembedded.org/cgit.cgi/openembedded/tree/recipes/gamin/files/no-abstract-sockets.patch
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---- /tmp/configure.in 2007-04-30 13:08:49.000000000 +0200
-+++ gamin-0.1.8/configure.in 2007-04-30 13:10:53.285251000 +0200
-@@ -354,51 +354,6 @@
- AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
- fi
-
--#### Abstract sockets
--
--AC_MSG_CHECKING(abstract socket namespace)
--AC_LANG_PUSH(C)
--AC_RUN_IFELSE([AC_LANG_PROGRAM(
--[[
--#include <sys/types.h>
--#include <stdlib.h>
--#include <string.h>
--#include <stdio.h>
--#include <sys/socket.h>
--#include <sys/un.h>
--#include <errno.h>
--]],
--[[
-- int listen_fd;
-- struct sockaddr_un addr;
--
-- listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
--
-- if (listen_fd < 0)
-- {
-- fprintf (stderr, "socket() failed: %s\n", strerror (errno));
-- exit (1);
-- }
--
-- memset (&addr, '\0', sizeof (addr));
-- addr.sun_family = AF_UNIX;
-- strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
-- addr.sun_path[0] = '\0'; /* this is what makes it abstract */
--
-- if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
-- {
-- fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
-- strerror (errno));
-- exit (1);
-- }
-- else
-- exit (0);
--]])],
-- [have_abstract_sockets=yes],
-- [have_abstract_sockets=no])
--AC_LANG_POP(C)
--AC_MSG_RESULT($have_abstract_sockets)
--
- if test x$enable_abstract_sockets = xyes; then
- if test x$have_abstract_sockets = xno; then
- AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
+++ /dev/null
-G_CONST_RETURN is deprecated in glib 2.30 so remove to to avoid
-build failures.
-
-Upstream-Status: Pending
-
-Index: gamin-0.1.10/server/gam_node.c
-===================================================================
---- gamin-0.1.10.orig/server/gam_node.c 2011-10-12 15:25:45.217178314 +0100
-+++ gamin-0.1.10/server/gam_node.c 2011-10-12 15:26:17.807178293 +0100
-@@ -122,7 +122,7 @@
- * it has finished with the string. If it must keep it longer, it
- * should makes its own copy. The returned string must not be freed.
- */
--G_CONST_RETURN char *
-+const char *
- gam_node_get_path(GamNode * node)
- {
- g_assert(node);
-Index: gamin-0.1.10/server/gam_node.h
-===================================================================
---- gamin-0.1.10.orig/server/gam_node.h 2011-10-12 15:25:46.857178269 +0100
-+++ gamin-0.1.10/server/gam_node.h 2011-10-12 15:26:28.637178297 +0100
-@@ -58,7 +58,7 @@
- void gam_node_set_is_dir (GamNode *node,
- gboolean is_dir);
-
--G_CONST_RETURN char *gam_node_get_path (GamNode *node);
-+const char *gam_node_get_path (GamNode *node);
-
- GList *gam_node_get_subscriptions (GamNode *node);
-
-Index: gamin-0.1.10/server/gam_subscription.c
-===================================================================
---- gamin-0.1.10.orig/server/gam_subscription.c 2011-10-12 15:25:40.497177525 +0100
-+++ gamin-0.1.10/server/gam_subscription.c 2011-10-12 15:26:39.867178304 +0100
-@@ -141,7 +141,7 @@
- * @param sub the GamSubscription
- * @returns The path being monitored. It should not be freed.
- */
--G_CONST_RETURN char *
-+const char *
- gam_subscription_get_path(GamSubscription * sub)
- {
- if (sub == NULL)
-Index: gamin-0.1.10/server/gam_subscription.h
-===================================================================
---- gamin-0.1.10.orig/server/gam_subscription.h 2011-10-12 15:25:28.507178266 +0100
-+++ gamin-0.1.10/server/gam_subscription.h 2011-10-12 15:25:58.817178285 +0100
-@@ -21,7 +21,7 @@
-
- int gam_subscription_get_reqno (GamSubscription *sub);
-
--G_CONST_RETURN char *gam_subscription_get_path (GamSubscription *sub);
-+const char *gam_subscription_get_path (GamSubscription *sub);
-
- GamListener *gam_subscription_get_listener (GamSubscription *sub);
-
--- /dev/null
+Disabled versioned installation of binaries to save space.
+Also use symlinks where it's appropiate.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+
+diff -Nura gawk-4.0.0.orig/Makefile.in gawk-4.0.0/Makefile.in
+--- gawk-4.0.0.orig/Makefile.in 2011-06-24 05:16:13.000000000 -0300
++++ gawk-4.0.0/Makefile.in 2011-11-11 15:31:16.429577288 -0300
+@@ -403,7 +403,7 @@
+ MAINTAINERCLEANFILES = version.c
+
+ # We want hard links for install-exec-hook, below
+-LN = ln
++LN = $(LN_S)
+ all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+@@ -1011,6 +1011,7 @@
+ # (This is done universally, which may not always be right, but
+ # there's no easy way to distinguish GNU from non-GNU systems.)
+ install-exec-hook:
++foo:
+ (cd $(DESTDIR)$(bindir); \
+ $(LN) gawk$(EXEEXT) gawk-$(VERSION)$(EXEEXT) 2>/dev/null ; \
+ $(LN) pgawk$(EXEEXT) pgawk-$(VERSION)$(EXEEXT) 2>/dev/null ; \
+++ /dev/null
-Disabled versioned installation of binaries to save space.
-Also use symlinks where it's appropiate.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
-
-diff -Nura gawk-4.0.0.orig/Makefile.in gawk-4.0.0/Makefile.in
---- gawk-4.0.0.orig/Makefile.in 2011-06-24 05:16:13.000000000 -0300
-+++ gawk-4.0.0/Makefile.in 2011-11-11 15:31:16.429577288 -0300
-@@ -403,7 +403,7 @@
- MAINTAINERCLEANFILES = version.c
-
- # We want hard links for install-exec-hook, below
--LN = ln
-+LN = $(LN_S)
- all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-@@ -1011,6 +1011,7 @@
- # (This is done universally, which may not always be right, but
- # there's no easy way to distinguish GNU from non-GNU systems.)
- install-exec-hook:
-+foo:
- (cd $(DESTDIR)$(bindir); \
- $(LN) gawk$(EXEEXT) gawk-$(VERSION)$(EXEEXT) 2>/dev/null ; \
- $(LN) pgawk$(EXEEXT) pgawk-$(VERSION)$(EXEEXT) 2>/dev/null ; \
--- /dev/null
+[PATCH] update genext2fs.c to CVS rev 1.118
+
+See http://genext2fs.cvs.sourceforge.net/viewvc/genext2fs/genext2fs/genext2fs.c?view=log
+for details.
+
+Numerous bugfixes, large file and filesystem support, rev 1 filesystems,
+volume id support, block size, ..
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ cache.h | 128 ++++
+ genext2fs.c | 1870 ++++++++++++++++++++++++++++++++++++++++++------------------
+ list.h | 78 ++
+ 3 files changed, 1527 insertions(+), 549 deletions(-)
+
+Index: genext2fs-1.4.1/genext2fs.c
+===================================================================
+--- genext2fs-1.4.1.orig/genext2fs.c
++++ genext2fs-1.4.1/genext2fs.c
+@@ -53,6 +53,12 @@
+ // along with -q, -P, -U
+
+
++/*
++ * Allow fseeko/off_t to be 64-bit offsets to allow filesystems and
++ * individual files >2GB.
++ */
++#define _FILE_OFFSET_BITS 64
++
+ #include <config.h>
+ #include <stdio.h>
+
+@@ -107,10 +113,8 @@
+
+ #if HAVE_DIRENT_H
+ # include <dirent.h>
+-# define NAMLEN(dirent) strlen((dirent)->d_name)
+ #else
+ # define dirent direct
+-# define NAMLEN(dirent) (dirent)->d_namlen
+ # if HAVE_SYS_NDIR_H
+ # include <sys/ndir.h>
+ # endif
+@@ -144,6 +148,8 @@
+ # include <limits.h>
+ #endif
+
++#include "cache.h"
++
+ struct stats {
+ unsigned long nblocks;
+ unsigned long ninodes;
+@@ -151,13 +157,42 @@
+
+ // block size
+
+-#define BLOCKSIZE 1024
++static int blocksize = 1024;
++
++#define SUPERBLOCK_OFFSET 1024
++#define SUPERBLOCK_SIZE 1024
++
++#define BLOCKSIZE blocksize
+ #define BLOCKS_PER_GROUP 8192
+ #define INODES_PER_GROUP 8192
+ /* Percentage of blocks that are reserved.*/
+ #define RESERVED_BLOCKS 5/100
+ #define MAX_RESERVED_BLOCKS 25/100
+
++/* The default value for s_creator_os. */
++#if defined(__linux__) && defined(EXT2_OS_LINUX)
++#define CREATOR_OS EXT2_OS_LINUX
++#define CREATOR_OS_NAME "linux"
++#else
++#if defined(__GNU__) && defined(EXT2_OS_HURD)
++#define CREATOR_OS EXT2_OS_HURD
++#define CREATOR_OS_NAME "hurd"
++#else
++#if defined(__FreeBSD__) && defined(EXT2_OS_FREEBSD)
++#define CREATOR_OS EXT2_OS_FREEBSD
++#define CREATOR_OS_NAME "freebsd"
++#else
++#if defined(LITES) && defined(EXT2_OS_LITES)
++#define CREATOR_OS EXT2_OS_LITES
++#define CREATOR_OS_NAME "lites"
++#else
++#define CREATOR_OS EXT2_OS_LINUX /* by default */
++#define CREATOR_OS_NAME "linux"
++#endif /* defined(LITES) && defined(EXT2_OS_LITES) */
++#endif /* defined(__FreeBSD__) && defined(EXT2_OS_FREEBSD) */
++#endif /* defined(__GNU__) && defined(EXT2_OS_HURD) */
++#endif /* defined(__linux__) && defined(EXT2_OS_LINUX) */
++
+
+ // inode block size (why is it != BLOCKSIZE ?!?)
+ /* The field i_blocks in the ext2 inode stores the number of data blocks
+@@ -190,6 +225,14 @@
+ #define EXT2_TIND_BLOCK 14 // triple indirect block
+ #define EXT2_INIT_BLOCK 0xFFFFFFFF // just initialized (not really a block address)
+
++// codes for operating systems
++
++#define EXT2_OS_LINUX 0
++#define EXT2_OS_HURD 1
++#define EXT2_OS_MASIX 2
++#define EXT2_OS_FREEBSD 3
++#define EXT2_OS_LITES 4
++
+ // end of a block walk
+
+ #define WALK_END 0xFFFFFFFE
+@@ -227,44 +270,46 @@
+ #define FM_IWOTH 0000002 // write
+ #define FM_IXOTH 0000001 // execute
+
+-// options
+-
+-#define OP_HOLES 0x01 // make files with holes
+-
+ /* Defines for accessing group details */
+
+ // Number of groups in the filesystem
+ #define GRP_NBGROUPS(fs) \
+- (((fs)->sb.s_blocks_count - fs->sb.s_first_data_block + \
+- (fs)->sb.s_blocks_per_group - 1) / (fs)->sb.s_blocks_per_group)
++ (((fs)->sb->s_blocks_count - fs->sb->s_first_data_block + \
++ (fs)->sb->s_blocks_per_group - 1) / (fs)->sb->s_blocks_per_group)
+
+ // Get group block bitmap (bbm) given the group number
+-#define GRP_GET_GROUP_BBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_block_bitmap) )
++#define GRP_GET_GROUP_BBM(fs,grp,bi) (get_blk((fs),(grp)->bg_block_bitmap,(bi)))
++#define GRP_PUT_GROUP_BBM(bi) ( put_blk((bi)) )
+
+ // Get group inode bitmap (ibm) given the group number
+-#define GRP_GET_GROUP_IBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_inode_bitmap) )
+-
++#define GRP_GET_GROUP_IBM(fs,grp,bi) (get_blk((fs), (grp)->bg_inode_bitmap,(bi)))
++#define GRP_PUT_GROUP_IBM(bi) ( put_blk((bi)) )
++
+ // Given an inode number find the group it belongs to
+-#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb.s_inodes_per_group)
++#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb->s_inodes_per_group)
+
+ //Given an inode number get the inode bitmap that covers it
+-#define GRP_GET_INODE_BITMAP(fs,nod) \
+- ( GRP_GET_GROUP_IBM((fs),GRP_GROUP_OF_INODE((fs),(nod))) )
++#define GRP_GET_INODE_BITMAP(fs,nod,bi,gi) \
++ ( GRP_GET_GROUP_IBM((fs),get_gd(fs,GRP_GROUP_OF_INODE((fs),(nod)),gi),bi) )
++#define GRP_PUT_INODE_BITMAP(bi,gi) \
++ ( GRP_PUT_GROUP_IBM((bi)),put_gd((gi)) )
+
+ //Given an inode number find its offset within the inode bitmap that covers it
+ #define GRP_IBM_OFFSET(fs,nod) \
+- ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb.s_inodes_per_group )
++ ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb->s_inodes_per_group )
+
+ // Given a block number find the group it belongs to
+-#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb.s_blocks_per_group)
++#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb->s_blocks_per_group)
+
+-//Given a block number get the block bitmap that covers it
+-#define GRP_GET_BLOCK_BITMAP(fs,blk) \
+- ( GRP_GET_GROUP_BBM((fs),GRP_GROUP_OF_BLOCK((fs),(blk))) )
++//Given a block number get/put the block bitmap that covers it
++#define GRP_GET_BLOCK_BITMAP(fs,blk,bi,gi) \
++ ( GRP_GET_GROUP_BBM((fs),get_gd(fs,GRP_GROUP_OF_BLOCK((fs),(blk)),(gi)),(bi)) )
++#define GRP_PUT_BLOCK_BITMAP(bi,gi) \
++ ( GRP_PUT_GROUP_BBM((bi)),put_gd((gi)) )
+
+ //Given a block number find its offset within the block bitmap that covers it
+ #define GRP_BBM_OFFSET(fs,blk) \
+- ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb.s_blocks_per_group )
++ ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb->s_blocks_per_group )
+
+
+ // used types
+@@ -286,7 +331,9 @@
+ // older solaris. Note that this is still not very portable, in that
+ // the return value cannot be trusted.
+
+-#if SCANF_CAN_MALLOC
++#if 0 // SCANF_CAN_MALLOC
++// C99 define "a" for floating point, so you can have runtime surprise
++// according the library versions
+ # define SCANF_PREFIX "a"
+ # define SCANF_STRING(s) (&s)
+ #else
+@@ -430,6 +477,17 @@
+ ((val<<8)&0xFF0000) | (val<<24));
+ }
+
++static inline int
++is_blk_empty(uint8 *b)
++{
++ uint32 i;
++ uint32 *v = (uint32 *) b;
++
++ for(i = 0; i < BLOCKSIZE / 4; i++)
++ if (*v++)
++ return 0;
++ return 1;
++}
+
+ // on-disk structures
+ // this trick makes me declare things only once
+@@ -460,7 +518,22 @@
+ udecl32(s_creator_os) /* Indicator of which OS created the filesystem */ \
+ udecl32(s_rev_level) /* The revision level of the filesystem */ \
+ udecl16(s_def_resuid) /* The default uid for reserved blocks */ \
+- udecl16(s_def_resgid) /* The default gid for reserved blocks */
++ udecl16(s_def_resgid) /* The default gid for reserved blocks */ \
++ /* rev 1 version fields start here */ \
++ udecl32(s_first_ino) /* First non-reserved inode */ \
++ udecl16(s_inode_size) /* size of inode structure */ \
++ udecl16(s_block_group_nr) /* block group # of this superblock */ \
++ udecl32(s_feature_compat) /* compatible feature set */ \
++ udecl32(s_feature_incompat) /* incompatible feature set */ \
++ udecl32(s_feature_ro_compat) /* readonly-compatible feature set */ \
++ utdecl8(s_uuid,16) /* 128-bit uuid for volume */ \
++ utdecl8(s_volume_name,16) /* volume name */ \
++ utdecl8(s_last_mounted,64) /* directory where last mounted */ \
++ udecl32(s_algorithm_usage_bitmap) /* For compression */
++
++#define EXT2_GOOD_OLD_FIRST_INO 11
++#define EXT2_GOOD_OLD_INODE_SIZE 128
++#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002
+
+ #define groupdescriptor_decl \
+ udecl32(bg_block_bitmap) /* Block number of the block bitmap */ \
+@@ -500,6 +573,7 @@
+
+ #define decl8(x) int8 x;
+ #define udecl8(x) uint8 x;
++#define utdecl8(x,n) uint8 x[n];
+ #define decl16(x) int16 x;
+ #define udecl16(x) uint16 x;
+ #define decl32(x) int32 x;
+@@ -509,7 +583,7 @@
+ typedef struct
+ {
+ superblock_decl
+- uint32 s_reserved[235]; // Reserved
++ uint32 s_reserved[205]; // Reserved
+ } superblock;
+
+ typedef struct
+@@ -527,10 +601,9 @@
+ typedef struct
+ {
+ directory_decl
+- char d_name[0];
+ } directory;
+
+-typedef uint8 block[BLOCKSIZE];
++typedef uint8 *block;
+
+ /* blockwalker fields:
+ The blockwalker is used to access all the blocks of a file (including
+@@ -567,23 +640,41 @@
+ uint32 bptind;
+ } blockwalker;
+
++#define HDLINK_CNT 16
++struct hdlink_s
++{
++ uint32 src_inode;
++ uint32 dst_nod;
++};
++
++struct hdlinks_s
++{
++ int32 count;
++ struct hdlink_s *hdl;
++};
+
+ /* Filesystem structure that support groups */
+-#if BLOCKSIZE == 1024
+ typedef struct
+ {
+- block zero; // The famous block 0
+- superblock sb; // The superblock
+- groupdescriptor gd[0]; // The group descriptors
++ FILE *f;
++ superblock *sb;
++ int swapit;
++ int32 hdlink_cnt;
++ struct hdlinks_s hdlinks;
++
++ int holes;
++
++ listcache blks;
++ listcache gds;
++ listcache inodes;
++ listcache blkmaps;
+ } filesystem;
+-#else
+-#error UNHANDLED BLOCKSIZE
+-#endif
+
+ // now the endianness swap
+
+ #undef decl8
+ #undef udecl8
++#undef utdecl8
+ #undef decl16
+ #undef udecl16
+ #undef decl32
+@@ -592,28 +683,13 @@
+
+ #define decl8(x)
+ #define udecl8(x)
++#define utdecl8(x,n)
+ #define decl16(x) this->x = swab16(this->x);
+ #define udecl16(x) this->x = swab16(this->x);
+ #define decl32(x) this->x = swab32(this->x);
+ #define udecl32(x) this->x = swab32(this->x);
+ #define utdecl32(x,n) { int i; for(i=0; i<n; i++) this->x[i] = swab32(this->x[i]); }
+
+-#define HDLINK_CNT 16
+-static int32 hdlink_cnt = HDLINK_CNT;
+-struct hdlink_s
+-{
+- uint32 src_inode;
+- uint32 dst_nod;
+-};
+-
+-struct hdlinks_s
+-{
+- int32 count;
+- struct hdlink_s *hdl;
+-};
+-
+-static struct hdlinks_s hdlinks;
+-
+ static void
+ swap_sb(superblock *sb)
+ {
+@@ -633,9 +709,24 @@
+ static void
+ swap_nod(inode *nod)
+ {
++ uint32 nblk;
++
+ #define this nod
+ inode_decl
+ #undef this
++
++ // block and character inodes store the major and minor in the
++ // i_block, so we need to unswap to get those. Also, if it's
++ // zero iblocks, put the data back like it belongs.
++ nblk = nod->i_blocks / INOBLK;
++ if ((nod->i_size && !nblk)
++ || ((nod->i_mode & FM_IFBLK) == FM_IFBLK)
++ || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
++ {
++ int i;
++ for(i = 0; i <= EXT2_TIND_BLOCK; i++)
++ nod->i_block[i] = swab32(nod->i_block[i]);
++ }
+ }
+
+ static void
+@@ -657,6 +748,7 @@
+
+ #undef decl8
+ #undef udecl8
++#undef utdecl8
+ #undef decl16
+ #undef udecl16
+ #undef decl32
+@@ -770,15 +862,15 @@
+ }
+
+ int
+-is_hardlink(ino_t inode)
++is_hardlink(filesystem *fs, ino_t inode)
+ {
+ int i;
+
+- for(i = 0; i < hdlinks.count; i++) {
+- if(hdlinks.hdl[i].src_inode == inode)
++ for(i = 0; i < fs->hdlinks.count; i++) {
++ if(fs->hdlinks.hdl[i].src_inode == inode)
+ return i;
+ }
+- return -1;
++ return -1;
+ }
+
+ // printf helper macro
+@@ -789,6 +881,8 @@
+ get_workblk(void)
+ {
+ unsigned char* b=calloc(1,BLOCKSIZE);
++ if (!b)
++ error_msg_and_die("get_workblk() failed, out of memory");
+ return b;
+ }
+ static inline void
+@@ -811,24 +905,464 @@
+ return b[(item-1) / 8] & (1 << ((item-1) % 8));
+ }
+
+-// return a given block from a filesystem
++// Used by get_blk/put_blk to hold information about a block owned
++// by the user.
++typedef struct
++{
++ cache_link link;
++
++ filesystem *fs;
++ uint32 blk;
++ uint8 *b;
++ uint32 usecount;
++} blk_info;
++
++#define MAX_FREE_CACHE_BLOCKS 100
++
++static uint32
++blk_elem_val(cache_link *elem)
++{
++ blk_info *bi = container_of(elem, blk_info, link);
++ return bi->blk;
++}
++
++static void
++blk_freed(cache_link *elem)
++{
++ blk_info *bi = container_of(elem, blk_info, link);
++
++ if (fseeko(bi->fs->f, ((off_t) bi->blk) * BLOCKSIZE, SEEK_SET))
++ perror_msg_and_die("fseek");
++ if (fwrite(bi->b, BLOCKSIZE, 1, bi->fs->f) != 1)
++ perror_msg_and_die("get_blk: write");
++ free(bi->b);
++ free(bi);
++}
++
++// Return a given block from a filesystem. Make sure to call
++// put_blk when you are done with it.
+ static inline uint8 *
+-get_blk(filesystem *fs, uint32 blk)
++get_blk(filesystem *fs, uint32 blk, blk_info **rbi)
+ {
+- return (uint8*)fs + blk*BLOCKSIZE;
++ cache_link *curr;
++ blk_info *bi;
++
++ if (blk >= fs->sb->s_blocks_count)
++ error_msg_and_die("Internal error, block out of range");
++
++ curr = cache_find(&fs->blks, blk);
++ if (curr) {
++ bi = container_of(curr, blk_info, link);
++ bi->usecount++;
++ goto out;
++ }
++
++ bi = malloc(sizeof(*bi));
++ if (!bi)
++ error_msg_and_die("get_blk: out of memory");
++ bi->fs = fs;
++ bi->blk = blk;
++ bi->usecount = 1;
++ bi->b = malloc(BLOCKSIZE);
++ if (!bi->b)
++ error_msg_and_die("get_blk: out of memory");
++ cache_add(&fs->blks, &bi->link);
++ if (fseeko(fs->f, ((off_t) blk) * BLOCKSIZE, SEEK_SET))
++ perror_msg_and_die("fseek");
++ if (fread(bi->b, BLOCKSIZE, 1, fs->f) != 1) {
++ if (ferror(fs->f))
++ perror_msg_and_die("fread");
++ memset(bi->b, 0, BLOCKSIZE);
++ }
++
++out:
++ *rbi = bi;
++ return bi->b;
+ }
+
+ // return a given inode from a filesystem
+-static inline inode *
+-get_nod(filesystem *fs, uint32 nod)
++static inline void
++put_blk(blk_info *bi)
++{
++ if (bi->usecount == 0)
++ error_msg_and_die("Internal error: put_blk usecount zero");
++ bi->usecount--;
++ if (bi->usecount == 0)
++ /* Free happens in the cache code */
++ cache_item_set_unused(&bi->fs->blks, &bi->link);
++}
++
++typedef struct
+ {
+- int grp,offset;
++ cache_link link;
++
++ filesystem *fs;
++ int gds;
++ blk_info *bi;
++ groupdescriptor *gd;
++ uint32 usecount;
++} gd_info;
++
++#define MAX_FREE_CACHE_GDS 100
++
++static uint32
++gd_elem_val(cache_link *elem)
++{
++ gd_info *gi = container_of(elem, gd_info, link);
++ return gi->gds;
++}
++
++static void
++gd_freed(cache_link *elem)
++{
++ gd_info *gi = container_of(elem, gd_info, link);
++
++ if (gi->fs->swapit)
++ swap_gd(gi->gd);
++ put_blk(gi->bi);
++ free(gi);
++}
++
++#define GDS_START ((SUPERBLOCK_OFFSET + SUPERBLOCK_SIZE + BLOCKSIZE - 1) / BLOCKSIZE)
++#define GDS_PER_BLOCK (BLOCKSIZE / sizeof(groupdescriptor))
++// the group descriptors are aligned on the block size
++static inline groupdescriptor *
++get_gd(filesystem *fs, uint32 no, gd_info **rgi)
++{
++ uint32 gdblk;
++ uint32 offset;
++ gd_info *gi;
++ cache_link *curr;
++
++ curr = cache_find(&fs->gds, no);
++ if (curr) {
++ gi = container_of(curr, gd_info, link);
++ gi->usecount++;
++ goto out;
++ }
++
++ gi = malloc(sizeof(*gi));
++ if (!gi)
++ error_msg_and_die("get_gd: out of memory");
++ gi->fs = fs;
++ gi->gds = no;
++ gi->usecount = 1;
++ gdblk = GDS_START + (no / GDS_PER_BLOCK);
++ offset = no % GDS_PER_BLOCK;
++ gi->gd = ((groupdescriptor *) get_blk(fs, gdblk, &gi->bi)) + offset;
++ cache_add(&fs->gds, &gi->link);
++ if (fs->swapit)
++ swap_gd(gi->gd);
++ out:
++ *rgi = gi;
++
++ return gi->gd;
++}
++
++static inline void
++put_gd(gd_info *gi)
++{
++ if (gi->usecount == 0)
++ error_msg_and_die("Internal error: put_gd usecount zero");
++
++ gi->usecount--;
++ if (gi->usecount == 0)
++ /* Free happens in the cache code */
++ cache_item_set_unused(&gi->fs->gds, &gi->link);
++}
++
++// Used by get_blkmap/put_blkmap to hold information about an block map
++// owned by the user.
++typedef struct
++{
++ cache_link link;
++
++ filesystem *fs;
++ uint32 blk;
++ uint8 *b;
++ blk_info *bi;
++ uint32 usecount;
++} blkmap_info;
++
++#define MAX_FREE_CACHE_BLOCKMAPS 100
++
++static uint32
++blkmap_elem_val(cache_link *elem)
++{
++ blkmap_info *bmi = container_of(elem, blkmap_info, link);
++ return bmi->blk;
++}
++
++static void
++blkmap_freed(cache_link *elem)
++{
++ blkmap_info *bmi = container_of(elem, blkmap_info, link);
++
++ if (bmi->fs->swapit)
++ swap_block(bmi->b);
++ put_blk(bmi->bi);
++ free(bmi);
++}
++
++// Return a given block map from a filesystem. Make sure to call
++// put_blkmap when you are done with it.
++static inline uint32 *
++get_blkmap(filesystem *fs, uint32 blk, blkmap_info **rbmi)
++{
++ blkmap_info *bmi;
++ cache_link *curr;
++
++ curr = cache_find(&fs->blkmaps, blk);
++ if (curr) {
++ bmi = container_of(curr, blkmap_info, link);
++ bmi->usecount++;
++ goto out;
++ }
++
++ bmi = malloc(sizeof(*bmi));
++ if (!bmi)
++ error_msg_and_die("get_blkmap: out of memory");
++ bmi->fs = fs;
++ bmi->blk = blk;
++ bmi->b = get_blk(fs, blk, &bmi->bi);
++ bmi->usecount = 1;
++ cache_add(&fs->blkmaps, &bmi->link);
++
++ if (fs->swapit)
++ swap_block(bmi->b);
++ out:
++ *rbmi = bmi;
++ return (uint32 *) bmi->b;
++}
++
++static inline void
++put_blkmap(blkmap_info *bmi)
++{
++ if (bmi->usecount == 0)
++ error_msg_and_die("Internal error: put_blkmap usecount zero");
++
++ bmi->usecount--;
++ if (bmi->usecount == 0)
++ /* Free happens in the cache code */
++ cache_item_set_unused(&bmi->fs->blkmaps, &bmi->link);
++}
++
++// Used by get_nod/put_nod to hold information about an inode owned
++// by the user.
++typedef struct
++{
++ cache_link link;
++
++ filesystem *fs;
++ uint32 nod;
++ uint8 *b;
++ blk_info *bi;
+ inode *itab;
++ uint32 usecount;
++} nod_info;
++
++#define MAX_FREE_CACHE_INODES 100
++
++static uint32
++inode_elem_val(cache_link *elem)
++{
++ nod_info *ni = container_of(elem, nod_info, link);
++ return ni->nod;
++}
++
++static void
++inode_freed(cache_link *elem)
++{
++ nod_info *ni = container_of(elem, nod_info, link);
++
++ if (ni->fs->swapit)
++ swap_nod(ni->itab);
++ put_blk(ni->bi);
++ free(ni);
++}
++
++#define INODES_PER_BLOCK (BLOCKSIZE / sizeof(inode))
+
+- offset = GRP_IBM_OFFSET(fs,nod);
++// return a given inode from a filesystem
++static inline inode *
++get_nod(filesystem *fs, uint32 nod, nod_info **rni)
++{
++ uint32 grp, boffset, offset;
++ cache_link *curr;
++ groupdescriptor *gd;
++ gd_info *gi;
++ nod_info *ni;
++
++ curr = cache_find(&fs->inodes, nod);
++ if (curr) {
++ ni = container_of(curr, nod_info, link);
++ ni->usecount++;
++ goto out;
++ }
++
++ ni = malloc(sizeof(*ni));
++ if (!ni)
++ error_msg_and_die("get_nod: out of memory");
++ ni->fs = fs;
++ ni->nod = nod;
++ ni->usecount = 1;
++ cache_add(&fs->inodes, &ni->link);
++
++ offset = GRP_IBM_OFFSET(fs,nod) - 1;
++ boffset = offset / INODES_PER_BLOCK;
++ offset %= INODES_PER_BLOCK;
+ grp = GRP_GROUP_OF_INODE(fs,nod);
+- itab = (inode *)get_blk(fs, fs->gd[grp].bg_inode_table);
+- return itab+offset-1;
++ gd = get_gd(fs, grp, &gi);
++ ni->b = get_blk(fs, gd->bg_inode_table + boffset, &ni->bi);
++ ni->itab = ((inode *) ni->b) + offset;
++ if (fs->swapit)
++ swap_nod(ni->itab);
++ put_gd(gi);
++ out:
++ *rni = ni;
++ return ni->itab;
++}
++
++static inline void
++put_nod(nod_info *ni)
++{
++ if (ni->usecount == 0)
++ error_msg_and_die("Internal error: put_nod usecount zero");
++
++ ni->usecount--;
++ if (ni->usecount == 0)
++ /* Free happens in the cache code */
++ cache_item_set_unused(&ni->fs->inodes, &ni->link);
++}
++
++// Used to hold state information while walking a directory inode.
++typedef struct
++{
++ directory d;
++ filesystem *fs;
++ uint32 nod;
++ directory *last_d;
++ uint8 *b;
++ blk_info *bi;
++} dirwalker;
++
++// Start a directory walk on the given inode. You must pass in a
++// dirwalker structure, then use that dirwalker for future operations.
++// Call put_dir when you are done walking the directory.
++static inline directory *
++get_dir(filesystem *fs, uint32 nod, dirwalker *dw)
++{
++ dw->fs = fs;
++ dw->b = get_blk(fs, nod, &dw->bi);
++ dw->nod = nod;
++ dw->last_d = (directory *) dw->b;
++
++ memcpy(&dw->d, dw->last_d, sizeof(directory));
++ if (fs->swapit)
++ swap_dir(&dw->d);
++ return &dw->d;
++}
++
++// Move to the next directory.
++static inline directory *
++next_dir(dirwalker *dw)
++{
++ directory *next_d = (directory *)((int8*)dw->last_d + dw->d.d_rec_len);
++
++ if (dw->fs->swapit)
++ swap_dir(&dw->d);
++ memcpy(dw->last_d, &dw->d, sizeof(directory));
++
++ if (((int8 *) next_d) >= ((int8 *) dw->b + BLOCKSIZE))
++ return NULL;
++
++ dw->last_d = next_d;
++ memcpy(&dw->d, next_d, sizeof(directory));
++ if (dw->fs->swapit)
++ swap_dir(&dw->d);
++ return &dw->d;
++}
++
++// Call then when you are done with the directory walk.
++static inline void
++put_dir(dirwalker *dw)
++{
++ if (dw->fs->swapit)
++ swap_dir(&dw->d);
++ memcpy(dw->last_d, &dw->d, sizeof(directory));
++
++ if (dw->nod == 0)
++ free_workblk(dw->b);
++ else
++ put_blk(dw->bi);
++}
++
++// Create a new directory block with the given inode as it's destination
++// and append it to the current dirwalker.
++static directory *
++new_dir(filesystem *fs, uint32 dnod, const char *name, int nlen, dirwalker *dw)
++{
++ directory *d;
++
++ dw->fs = fs;
++ dw->b = get_workblk();
++ dw->nod = 0;
++ dw->last_d = (directory *) dw->b;
++ d = &dw->d;
++ d->d_inode = dnod;
++ d->d_rec_len = BLOCKSIZE;
++ d->d_name_len = nlen;
++ strncpy(((char *) dw->last_d) + sizeof(directory), name, nlen);
++ return d;
++}
++
++// Shrink the current directory entry, make a new one with the free
++// space, and return the new directory entry (making it current).
++static inline directory *
++shrink_dir(dirwalker *dw, uint32 nod, const char *name, int nlen)
++{
++ int reclen, preclen;
++ directory *d = &dw->d;
++
++ reclen = d->d_rec_len;
++ d->d_rec_len = sizeof(directory) + rndup(d->d_name_len, 4);
++ preclen = d->d_rec_len;
++ reclen -= preclen;
++ if (dw->fs->swapit)
++ swap_dir(&dw->d);
++ memcpy(dw->last_d, &dw->d, sizeof(directory));
++
++ dw->last_d = (directory *) (((int8 *) dw->last_d) + preclen);
++ d->d_rec_len = reclen;
++ d->d_inode = nod;
++ d->d_name_len = nlen;
++ strncpy(((char *) dw->last_d) + sizeof(directory), name, nlen);
++
++ return d;
++}
++
++// Return the current block the directory is walking
++static inline uint8 *
++dir_data(dirwalker *dw)
++{
++ return dw->b;
++}
++
++// Return the pointer to the name for the current directory
++static inline char *
++dir_name(dirwalker *dw)
++{
++ return ((char *) dw->last_d) + sizeof(directory);
++}
++
++// Set the name for the current directory. Note that this doesn't
++// verify that there is space for the directory name, you must do
++// that yourself.
++static void
++dir_set_name(dirwalker *dw, const char *name, int nlen)
++{
++ dw->d.d_name_len = nlen;
++ strncpy(((char *) dw->last_d) + sizeof(directory), name, nlen);
+ }
+
+ // allocate a given block/inode in the bitmap
+@@ -870,21 +1404,34 @@
+ {
+ uint32 bk=0;
+ uint32 grp,nbgroups;
++ blk_info *bi;
++ groupdescriptor *gd;
++ gd_info *gi;
+
+ grp = GRP_GROUP_OF_INODE(fs,nod);
+ nbgroups = GRP_NBGROUPS(fs);
+- if(!(bk = allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap), 0))) {
+- for(grp=0;grp<nbgroups && !bk;grp++)
+- bk=allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap),0);
++ gd = get_gd(fs, grp, &gi);
++ bk = allocate(GRP_GET_GROUP_BBM(fs, gd, &bi), 0);
++ GRP_PUT_GROUP_BBM(bi);
++ put_gd(gi);
++ if (!bk) {
++ for (grp=0; grp<nbgroups && !bk; grp++) {
++ gd = get_gd(fs, grp, &gi);
++ bk = allocate(GRP_GET_GROUP_BBM(fs, gd, &bi), 0);
++ GRP_PUT_GROUP_BBM(bi);
++ put_gd(gi);
++ }
+ grp--;
+ }
+ if (!bk)
+ error_msg_and_die("couldn't allocate a block (no free space)");
+- if(!(fs->gd[grp].bg_free_blocks_count--))
++ gd = get_gd(fs, grp, &gi);
++ if(!(gd->bg_free_blocks_count--))
+ error_msg_and_die("group descr %d. free blocks count == 0 (corrupted fs?)",grp);
+- if(!(fs->sb.s_free_blocks_count--))
++ put_gd(gi);
++ if(!(fs->sb->s_free_blocks_count--))
+ error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
+- return fs->sb.s_blocks_per_group*grp + bk;
++ return fs->sb->s_first_data_block + fs->sb->s_blocks_per_group*grp + (bk-1);
+ }
+
+ // free a block
+@@ -892,12 +1439,18 @@
+ free_blk(filesystem *fs, uint32 bk)
+ {
+ uint32 grp;
+-
+- grp = bk / fs->sb.s_blocks_per_group;
+- bk %= fs->sb.s_blocks_per_group;
+- deallocate(get_blk(fs,fs->gd[grp].bg_block_bitmap), bk);
+- fs->gd[grp].bg_free_blocks_count++;
+- fs->sb.s_free_blocks_count++;
++ blk_info *bi;
++ gd_info *gi;
++ groupdescriptor *gd;
++
++ grp = bk / fs->sb->s_blocks_per_group;
++ bk %= fs->sb->s_blocks_per_group;
++ gd = get_gd(fs, grp, &gi);
++ deallocate(GRP_GET_GROUP_BBM(fs, gd, &bi), bk);
++ GRP_PUT_GROUP_BBM(bi);
++ gd->bg_free_blocks_count++;
++ put_gd(gi);
++ fs->sb->s_free_blocks_count++;
+ }
+
+ // allocate an inode
+@@ -906,6 +1459,9 @@
+ {
+ uint32 nod,best_group=0;
+ uint32 grp,nbgroups,avefreei;
++ blk_info *bi;
++ gd_info *gi, *bestgi;
++ groupdescriptor *gd, *bestgd;
+
+ nbgroups = GRP_NBGROUPS(fs);
+
+@@ -914,22 +1470,32 @@
+ /* find the one with the most free blocks and allocate node there */
+ /* Idea from find_group_dir in fs/ext2/ialloc.c in 2.4.19 kernel */
+ /* We do it for all inodes. */
+- avefreei = fs->sb.s_free_inodes_count / nbgroups;
++ avefreei = fs->sb->s_free_inodes_count / nbgroups;
++ bestgd = get_gd(fs, best_group, &bestgi);
+ for(grp=0; grp<nbgroups; grp++) {
+- if (fs->gd[grp].bg_free_inodes_count < avefreei ||
+- fs->gd[grp].bg_free_inodes_count == 0)
++ gd = get_gd(fs, grp, &gi);
++ if (gd->bg_free_inodes_count < avefreei ||
++ gd->bg_free_inodes_count == 0) {
++ put_gd(gi);
+ continue;
+- if (!best_group ||
+- fs->gd[grp].bg_free_blocks_count > fs->gd[best_group].bg_free_blocks_count)
++ }
++ if (!best_group || gd->bg_free_blocks_count > bestgd->bg_free_blocks_count) {
++ put_gd(bestgi);
+ best_group = grp;
++ bestgd = gd;
++ bestgi = gi;
++ } else
++ put_gd(gi);
+ }
+- if (!(nod = allocate(get_blk(fs,fs->gd[best_group].bg_inode_bitmap),0)))
++ if (!(nod = allocate(GRP_GET_GROUP_IBM(fs, bestgd, &bi), 0)))
+ error_msg_and_die("couldn't allocate an inode (no free inode)");
+- if(!(fs->gd[best_group].bg_free_inodes_count--))
++ GRP_PUT_GROUP_IBM(bi);
++ if(!(bestgd->bg_free_inodes_count--))
+ error_msg_and_die("group descr. free blocks count == 0 (corrupted fs?)");
+- if(!(fs->sb.s_free_inodes_count--))
++ put_gd(bestgi);
++ if(!(fs->sb->s_free_inodes_count--))
+ error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
+- return fs->sb.s_inodes_per_group*best_group+nod;
++ return fs->sb->s_inodes_per_group*best_group+nod;
+ }
+
+ // print a bitmap allocation
+@@ -962,30 +1528,40 @@
+ // used after being freed, so once you start
+ // freeing blocks don't stop until the end of
+ // the file. moreover, i_blocks isn't updated.
+-// in fact, don't do that, just use extend_blk
+ // if hole!=0, create a hole in the file
+ static uint32
+ walk_bw(filesystem *fs, uint32 nod, blockwalker *bw, int32 *create, uint32 hole)
+ {
+ uint32 *bkref = 0;
++ uint32 bk = 0;
++ blkmap_info *bmi1 = NULL, *bmi2 = NULL, *bmi3 = NULL;
+ uint32 *b;
+ int extend = 0, reduce = 0;
++ inode *inod;
++ nod_info *ni;
++ uint32 *iblk;
++
+ if(create && (*create) < 0)
+ reduce = 1;
+- if(bw->bnum >= get_nod(fs, nod)->i_blocks / INOBLK)
++ inod = get_nod(fs, nod, &ni);
++ if(bw->bnum >= inod->i_blocks / INOBLK)
+ {
+ if(create && (*create) > 0)
+ {
+ (*create)--;
+ extend = 1;
+ }
+- else
++ else
++ {
++ put_nod(ni);
+ return WALK_END;
++ }
+ }
++ iblk = inod->i_block;
+ // first direct block
+ if(bw->bpdir == EXT2_INIT_BLOCK)
+ {
+- bkref = &get_nod(fs, nod)->i_block[bw->bpdir = 0];
++ bkref = &iblk[bw->bpdir = 0];
+ if(extend) // allocate first block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ if(reduce) // free first block
+@@ -994,7 +1570,7 @@
+ // direct block
+ else if(bw->bpdir < EXT2_NDIR_BLOCKS)
+ {
+- bkref = &get_nod(fs, nod)->i_block[++bw->bpdir];
++ bkref = &iblk[++bw->bpdir];
+ if(extend) // allocate block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ if(reduce) // free block
+@@ -1007,10 +1583,10 @@
+ bw->bpdir = EXT2_IND_BLOCK;
+ bw->bpind = 0;
+ if(extend) // allocate indirect block
+- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
++ iblk[bw->bpdir] = alloc_blk(fs,nod);
+ if(reduce) // free indirect block
+- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ free_blk(fs, iblk[bw->bpdir]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
+ bkref = &b[bw->bpind];
+ if(extend) // allocate first block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1021,7 +1597,7 @@
+ else if((bw->bpdir == EXT2_IND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1))
+ {
+ bw->bpind++;
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
+ bkref = &b[bw->bpind];
+ if(extend) // allocate block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1036,15 +1612,15 @@
+ bw->bpind = 0;
+ bw->bpdind = 0;
+ if(extend) // allocate double indirect block
+- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
++ iblk[bw->bpdir] = alloc_blk(fs,nod);
+ if(reduce) // free double indirect block
+- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ free_blk(fs, iblk[bw->bpdir]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
+ if(extend) // allocate first indirect block
+ b[bw->bpind] = alloc_blk(fs,nod);
+ if(reduce) // free firstindirect block
+ free_blk(fs, b[bw->bpind]);
+- b = (uint32*)get_blk(fs, b[bw->bpind]);
++ b = get_blkmap(fs, b[bw->bpind], &bmi2);
+ bkref = &b[bw->bpdind];
+ if(extend) // allocate first block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1055,8 +1631,8 @@
+ else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpdind < BLOCKSIZE/4 - 1))
+ {
+ bw->bpdind++;
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+- b = (uint32*)get_blk(fs, b[bw->bpind]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
++ b = get_blkmap(fs, b[bw->bpind], &bmi2);
+ bkref = &b[bw->bpdind];
+ if(extend) // allocate block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1069,12 +1645,12 @@
+ bw->bnum++;
+ bw->bpdind = 0;
+ bw->bpind++;
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
+ if(extend) // allocate indirect block
+ b[bw->bpind] = alloc_blk(fs,nod);
+ if(reduce) // free indirect block
+ free_blk(fs, b[bw->bpind]);
+- b = (uint32*)get_blk(fs, b[bw->bpind]);
++ b = get_blkmap(fs, b[bw->bpind], &bmi2);
+ bkref = &b[bw->bpdind];
+ if(extend) // allocate first block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1094,20 +1670,20 @@
+ bw->bpdind = 0;
+ bw->bptind = 0;
+ if(extend) // allocate triple indirect block
+- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
++ iblk[bw->bpdir] = alloc_blk(fs,nod);
+ if(reduce) // free triple indirect block
+- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ free_blk(fs, iblk[bw->bpdir]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
+ if(extend) // allocate first double indirect block
+ b[bw->bpind] = alloc_blk(fs,nod);
+ if(reduce) // free first double indirect block
+ free_blk(fs, b[bw->bpind]);
+- b = (uint32*)get_blk(fs, b[bw->bpind]);
++ b = get_blkmap(fs, b[bw->bpind], &bmi2);
+ if(extend) // allocate first indirect block
+ b[bw->bpdind] = alloc_blk(fs,nod);
+ if(reduce) // free first indirect block
+ free_blk(fs, b[bw->bpind]);
+- b = (uint32*)get_blk(fs, b[bw->bpdind]);
++ b = get_blkmap(fs, b[bw->bpdind], &bmi3);
+ bkref = &b[bw->bptind];
+ if(extend) // allocate first data block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1121,9 +1697,9 @@
+ (bw->bptind < BLOCKSIZE/4 -1) )
+ {
+ bw->bptind++;
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+- b = (uint32*)get_blk(fs, b[bw->bpind]);
+- b = (uint32*)get_blk(fs, b[bw->bpdind]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
++ b = get_blkmap(fs, b[bw->bpind], &bmi2);
++ b = get_blkmap(fs, b[bw->bpdind], &bmi3);
+ bkref = &b[bw->bptind];
+ if(extend) // allocate data block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1140,13 +1716,13 @@
+ bw->bnum++;
+ bw->bptind = 0;
+ bw->bpdind++;
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+- b = (uint32*)get_blk(fs, b[bw->bpind]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
++ b = get_blkmap(fs, b[bw->bpind], &bmi2);
+ if(extend) // allocate single indirect block
+ b[bw->bpdind] = alloc_blk(fs,nod);
+ if(reduce) // free indirect block
+ free_blk(fs, b[bw->bpind]);
+- b = (uint32*)get_blk(fs, b[bw->bpdind]);
++ b = get_blkmap(fs, b[bw->bpdind], &bmi3);
+ bkref = &b[bw->bptind];
+ if(extend) // allocate first data block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1163,17 +1739,17 @@
+ bw->bpdind = 0;
+ bw->bptind = 0;
+ bw->bpind++;
+- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
+ if(extend) // allocate double indirect block
+ b[bw->bpind] = alloc_blk(fs,nod);
+ if(reduce) // free double indirect block
+ free_blk(fs, b[bw->bpind]);
+- b = (uint32*)get_blk(fs, b[bw->bpind]);
++ b = get_blkmap(fs, b[bw->bpind], &bmi2);
+ if(extend) // allocate single indirect block
+ b[bw->bpdind] = alloc_blk(fs,nod);
+ if(reduce) // free indirect block
+ free_blk(fs, b[bw->bpind]);
+- b = (uint32*)get_blk(fs, b[bw->bpdind]);
++ b = get_blkmap(fs, b[bw->bpdind], &bmi3);
+ bkref = &b[bw->bptind];
+ if(extend) // allocate first block
+ *bkref = hole ? 0 : alloc_blk(fs,nod);
+@@ -1184,56 +1760,105 @@
+ error_msg_and_die("file too big !");
+ /* End change for walking triple indirection */
+
+- if(*bkref)
+- {
++ bk = *bkref;
++ if (bmi3)
++ put_blkmap(bmi3);
++ if (bmi2)
++ put_blkmap(bmi2);
++ if (bmi1)
++ put_blkmap(bmi1);
++
++ if(bk)
++ {
++ blk_info *bi;
++ gd_info *gi;
++ uint8 *block;
+ bw->bnum++;
+- if(!reduce && !allocated(GRP_GET_BLOCK_BITMAP(fs,*bkref), GRP_BBM_OFFSET(fs,*bkref)))
+- error_msg_and_die("[block %d of inode %d is unallocated !]", *bkref, nod);
++ block = GRP_GET_BLOCK_BITMAP(fs,bk,&bi,&gi);
++ if(!reduce && !allocated(block, GRP_BBM_OFFSET(fs,bk)))
++ error_msg_and_die("[block %d of inode %d is unallocated !]", bk, nod);
++ GRP_PUT_BLOCK_BITMAP(bi, gi);
+ }
+ if(extend)
+- get_nod(fs, nod)->i_blocks = bw->bnum * INOBLK;
+- return *bkref;
++ inod->i_blocks = bw->bnum * INOBLK;
++ put_nod(ni);
++ return bk;
+ }
+
+-// add blocks to an inode (file/dir/etc...)
+-static void
+-extend_blk(filesystem *fs, uint32 nod, block b, int amount)
++typedef struct
+ {
+- int create = amount;
+- blockwalker bw, lbw;
+- uint32 bk;
+- init_bw(&bw);
+- if(amount < 0)
+- {
+- uint32 i;
+- for(i = 0; i < get_nod(fs, nod)->i_blocks / INOBLK + amount; i++)
+- walk_bw(fs, nod, &bw, 0, 0);
+- while(walk_bw(fs, nod, &bw, &create, 0) != WALK_END)
++ blockwalker bw;
++ uint32 nod;
++ nod_info *ni;
++ inode *inod;
++} inode_pos;
++#define INODE_POS_TRUNCATE 0
++#define INODE_POS_EXTEND 1
++
++// Call this to set up an ipos structure for future use with
++// extend_inode_blk to append blocks to the given inode. If
++// op is INODE_POS_TRUNCATE, the inode is truncated to zero size.
++// If op is INODE_POS_EXTEND, the position is moved to the end
++// of the inode's data blocks.
++// Call inode_pos_finish when done with the inode_pos structure.
++static void
++inode_pos_init(filesystem *fs, inode_pos *ipos, uint32 nod, int op,
++ blockwalker *endbw)
++{
++ blockwalker lbw;
++
++ init_bw(&ipos->bw);
++ ipos->nod = nod;
++ ipos->inod = get_nod(fs, nod, &ipos->ni);
++ if (op == INODE_POS_TRUNCATE) {
++ int32 create = -1;
++ while(walk_bw(fs, nod, &ipos->bw, &create, 0) != WALK_END)
+ /*nop*/;
+- get_nod(fs, nod)->i_blocks += amount * INOBLK;
++ ipos->inod->i_blocks = 0;
+ }
+- else
++
++ if (endbw)
++ ipos->bw = *endbw;
++ else {
++ /* Seek to the end */
++ init_bw(&ipos->bw);
++ lbw = ipos->bw;
++ while(walk_bw(fs, nod, &ipos->bw, 0, 0) != WALK_END)
++ lbw = ipos->bw;
++ ipos->bw = lbw;
++ }
++}
++
++// Clean up the inode_pos structure.
++static void
++inode_pos_finish(filesystem *fs, inode_pos *ipos)
++{
++ put_nod(ipos->ni);
++}
++
++// add blocks to an inode (file/dir/etc...) at the given position.
++// This will only work when appending to the end of an inode.
++static void
++extend_inode_blk(filesystem *fs, inode_pos *ipos, block b, int amount)
++{
++ uint32 bk;
++ uint32 pos;
++
++ if (amount < 0)
++ error_msg_and_die("extend_inode_blk: Got negative amount");
++
++ for (pos = 0; amount; pos += BLOCKSIZE)
+ {
+- lbw = bw;
+- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
+- lbw = bw;
+- bw = lbw;
+- while(create)
+- {
+- int i, copyb = 0;
+- if(!(fs->sb.s_reserved[200] & OP_HOLES))
+- copyb = 1;
+- else
+- for(i = 0; i < BLOCKSIZE / 4; i++)
+- if(((int32*)(b + BLOCKSIZE * (amount - create)))[i])
+- {
+- copyb = 1;
+- break;
+- }
+- if((bk = walk_bw(fs, nod, &bw, &create, !copyb)) == WALK_END)
+- break;
+- if(copyb)
+- memcpy(get_blk(fs, bk), b + BLOCKSIZE * (amount - create - 1), BLOCKSIZE);
++ int hole = (fs->holes && is_blk_empty(b + pos));
++
++ bk = walk_bw(fs, ipos->nod, &ipos->bw, &amount, hole);
++ if (bk == WALK_END)
++ error_msg_and_die("extend_inode_blk: extend failed");
++ if (!hole) {
++ blk_info *bi;
++ uint8 *block = get_blk(fs, bk, &bi);
++ memcpy(block, b + pos, BLOCKSIZE);
++ put_blk(bi);
+ }
+ }
+ }
+@@ -1242,15 +1867,17 @@
+ static void
+ add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name)
+ {
+- blockwalker bw;
++ blockwalker bw, lbw;
+ uint32 bk;
+- uint8 *b;
+ directory *d;
++ dirwalker dw;
+ int reclen, nlen;
+ inode *node;
+ inode *pnode;
++ nod_info *dni, *ni;
++ inode_pos ipos;
+
+- pnode = get_nod(fs, dnod);
++ pnode = get_nod(fs, dnod, &dni);
+ if((pnode->i_mode & FM_IFMT) != FM_IFDIR)
+ error_msg_and_die("can't add '%s' to a non-directory", name);
+ if(!*name)
+@@ -1262,52 +1889,52 @@
+ if(reclen > BLOCKSIZE)
+ error_msg_and_die("bad name '%s' (too long)", name);
+ init_bw(&bw);
++ lbw = bw;
+ while((bk = walk_bw(fs, dnod, &bw, 0, 0)) != WALK_END) // for all blocks in dir
+ {
+- b = get_blk(fs, bk);
+ // for all dir entries in block
+- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
++ for(d = get_dir(fs, bk, &dw); d; d = next_dir(&dw))
+ {
+ // if empty dir entry, large enough, use it
+ if((!d->d_inode) && (d->d_rec_len >= reclen))
+ {
+ d->d_inode = nod;
+- node = get_nod(fs, nod);
++ node = get_nod(fs, nod, &ni);
++ dir_set_name(&dw, name, nlen);
++ put_dir(&dw);
+ node->i_links_count++;
+- d->d_name_len = nlen;
+- strncpy(d->d_name, name, nlen);
+- return;
++ put_nod(ni);
++ goto out;
+ }
+ // if entry with enough room (last one?), shrink it & use it
+ if(d->d_rec_len >= (sizeof(directory) + rndup(d->d_name_len, 4) + reclen))
+ {
+- reclen = d->d_rec_len;
+- d->d_rec_len = sizeof(directory) + rndup(d->d_name_len, 4);
+- reclen -= d->d_rec_len;
+- d = (directory*) (((int8*)d) + d->d_rec_len);
+- d->d_rec_len = reclen;
+- d->d_inode = nod;
+- node = get_nod(fs, nod);
++ d = shrink_dir(&dw, nod, name, nlen);
++ put_dir(&dw);
++ node = get_nod(fs, nod, &ni);
+ node->i_links_count++;
+- d->d_name_len = nlen;
+- strncpy(d->d_name, name, nlen);
+- return;
++ put_nod(ni);
++ goto out;
+ }
+ }
++ put_dir(&dw);
++ lbw = bw;
+ }
+ // we found no free entry in the directory, so we add a block
+- if(!(b = get_workblk()))
+- error_msg_and_die("get_workblk() failed.");
+- d = (directory*)b;
+- d->d_inode = nod;
+- node = get_nod(fs, nod);
++ node = get_nod(fs, nod, &ni);
++ d = new_dir(fs, nod, name, nlen, &dw);
+ node->i_links_count++;
+- d->d_rec_len = BLOCKSIZE;
+- d->d_name_len = nlen;
+- strncpy(d->d_name, name, nlen);
+- extend_blk(fs, dnod, b, 1);
+- get_nod(fs, dnod)->i_size += BLOCKSIZE;
+- free_workblk(b);
++ put_nod(ni);
++ next_dir(&dw); // Force the data into the buffer
++
++ inode_pos_init(fs, &ipos, dnod, INODE_POS_EXTEND, &lbw);
++ extend_inode_blk(fs, &ipos, dir_data(&dw), 1);
++ inode_pos_finish(fs, &ipos);
++
++ put_dir(&dw);
++ pnode->i_size += BLOCKSIZE;
++out:
++ put_nod(dni);
+ }
+
+ // find an entry in a directory
+@@ -1321,11 +1948,13 @@
+ while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
+ {
+ directory *d;
+- uint8 *b;
+- b = get_blk(fs, bk);
+- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
+- if(d->d_inode && (nlen == d->d_name_len) && !strncmp(d->d_name, name, nlen))
++ dirwalker dw;
++ for (d = get_dir(fs, bk, &dw); d; d=next_dir(&dw))
++ if(d->d_inode && (nlen == d->d_name_len) && !strncmp(dir_name(&dw), name, nlen)) {
++ put_dir(&dw);
+ return d->d_inode;
++ }
++ put_dir(&dw);
+ }
+ return 0;
+ }
+@@ -1356,47 +1985,55 @@
+ return nod;
+ }
+
++// chmod an inode
++void
++chmod_fs(filesystem *fs, uint32 nod, uint16 mode, uint16 uid, uint16 gid)
++{
++ inode *node;
++ nod_info *ni;
++ node = get_nod(fs, nod, &ni);
++ node->i_mode = (node->i_mode & ~FM_IMASK) | (mode & FM_IMASK);
++ node->i_uid = uid;
++ node->i_gid = gid;
++ put_nod(ni);
++}
++
+ // create a simple inode
+ static uint32
+ mknod_fs(filesystem *fs, uint32 parent_nod, const char *name, uint16 mode, uint16 uid, uint16 gid, uint8 major, uint8 minor, uint32 ctime, uint32 mtime)
+ {
+ uint32 nod;
+ inode *node;
+- if((nod = find_dir(fs, parent_nod, name)))
+- {
+- node = get_nod(fs, nod);
+- if((node->i_mode & FM_IFMT) != (mode & FM_IFMT))
+- error_msg_and_die("node '%s' already exists and isn't of the same type", name);
+- node->i_mode = mode;
+- }
+- else
++ nod_info *ni;
++ gd_info *gi;
++
++ nod = alloc_nod(fs);
++ node = get_nod(fs, nod, &ni);
++ node->i_mode = mode;
++ add2dir(fs, parent_nod, nod, name);
++ switch(mode & FM_IFMT)
+ {
+- nod = alloc_nod(fs);
+- node = get_nod(fs, nod);
+- node->i_mode = mode;
+- add2dir(fs, parent_nod, nod, name);
+- switch(mode & FM_IFMT)
+- {
+- case FM_IFLNK:
+- mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
+- break;
+- case FM_IFBLK:
+- case FM_IFCHR:
+- ((uint8*)get_nod(fs, nod)->i_block)[0] = minor;
+- ((uint8*)get_nod(fs, nod)->i_block)[1] = major;
+- break;
+- case FM_IFDIR:
+- add2dir(fs, nod, nod, ".");
+- add2dir(fs, nod, parent_nod, "..");
+- fs->gd[GRP_GROUP_OF_INODE(fs,nod)].bg_used_dirs_count++;
+- break;
+- }
++ case FM_IFLNK:
++ mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
++ break;
++ case FM_IFBLK:
++ case FM_IFCHR:
++ ((uint8*)node->i_block)[0] = minor;
++ ((uint8*)node->i_block)[1] = major;
++ break;
++ case FM_IFDIR:
++ add2dir(fs, nod, nod, ".");
++ add2dir(fs, nod, parent_nod, "..");
++ get_gd(fs,GRP_GROUP_OF_INODE(fs,nod),&gi)->bg_used_dirs_count++;
++ put_gd(gi);
++ break;
+ }
+ node->i_uid = uid;
+ node->i_gid = gid;
+ node->i_atime = mtime;
+ node->i_ctime = ctime;
+ node->i_mtime = mtime;
++ put_nod(ni);
+ return nod;
+ }
+
+@@ -1413,33 +2050,73 @@
+ mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 *b, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
+ {
+ uint32 nod = mknod_fs(fs, parent_nod, name, FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO, uid, gid, 0, 0, ctime, mtime);
+- extend_blk(fs, nod, 0, - (int)get_nod(fs, nod)->i_blocks / INOBLK);
+- get_nod(fs, nod)->i_size = size;
+- if(size <= 4 * (EXT2_TIND_BLOCK+1))
+- {
+- strncpy((char*)get_nod(fs, nod)->i_block, (char*)b, size);
++ nod_info *ni;
++ inode *node = get_nod(fs, nod, &ni);
++ inode_pos ipos;
++
++ inode_pos_init(fs, &ipos, nod, INODE_POS_TRUNCATE, NULL);
++ node->i_size = size;
++ if(size < 4 * (EXT2_TIND_BLOCK+1))
++ {
++ strncpy((char*)node->i_block, (char*)b, size);
++ ((char*)node->i_block)[size+1] = '\0';
++ inode_pos_finish(fs, &ipos);
++ put_nod(ni);
+ return nod;
+ }
+- extend_blk(fs, nod, b, rndup(size, BLOCKSIZE) / BLOCKSIZE);
++ extend_inode_blk(fs, &ipos, b, rndup(size, BLOCKSIZE) / BLOCKSIZE);
++ inode_pos_finish(fs, &ipos);
++ put_nod(ni);
+ return nod;
+ }
+
++static void
++fs_upgrade_rev1_largefile(filesystem *fs)
++{
++ fs->sb->s_rev_level = 1;
++ fs->sb->s_first_ino = EXT2_GOOD_OLD_FIRST_INO;
++ fs->sb->s_inode_size = EXT2_GOOD_OLD_INODE_SIZE;
++}
++
++#define COPY_BLOCKS 16
++#define CB_SIZE (COPY_BLOCKS * BLOCKSIZE)
++
+ // make a file from a FILE*
+ static uint32
+-mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
++mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, FILE *f, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
+ {
+ uint8 * b;
+ uint32 nod = mknod_fs(fs, parent_nod, name, mode|FM_IFREG, uid, gid, 0, 0, ctime, mtime);
+- extend_blk(fs, nod, 0, - (int)get_nod(fs, nod)->i_blocks / INOBLK);
+- get_nod(fs, nod)->i_size = size;
+- if (size) {
+- if(!(b = (uint8*)calloc(rndup(size, BLOCKSIZE), 1)))
+- error_msg_and_die("not enough mem to read file '%s'", name);
+- if(f)
+- fread(b, size, 1, f); // FIXME: ugly. use mmap() ...
+- extend_blk(fs, nod, b, rndup(size, BLOCKSIZE) / BLOCKSIZE);
+- free(b);
+- }
++ nod_info *ni;
++ inode *node = get_nod(fs, nod, &ni);
++ off_t size = 0;
++ size_t readbytes;
++ inode_pos ipos;
++ int fullsize;
++
++ b = malloc(CB_SIZE);
++ if (!b)
++ error_msg_and_die("mkfile_fs: out of memory");
++ inode_pos_init(fs, &ipos, nod, INODE_POS_TRUNCATE, NULL);
++ readbytes = fread(b, 1, CB_SIZE, f);
++ while (readbytes) {
++ fullsize = rndup(readbytes, BLOCKSIZE);
++ // Fill to end of block with zeros.
++ memset(b + readbytes, 0, fullsize - readbytes);
++ extend_inode_blk(fs, &ipos, b, fullsize / BLOCKSIZE);
++ size += readbytes;
++ readbytes = fread(b, 1, CB_SIZE, f);
++ }
++ if (size > 0x7fffffff) {
++ if (fs->sb->s_rev_level < 1)
++ fs_upgrade_rev1_largefile(fs);
++ fs->sb->s_feature_ro_compat |= EXT2_FEATURE_RO_COMPAT_LARGE_FILE;
++ }
++ node->i_dir_acl = size >> 32;
++ node->i_size = size;
++ inode_pos_finish(fs, &ipos);
++ put_nod(ni);
++ free(b);
+ return nod;
+ }
+
+@@ -1591,13 +2268,24 @@
+ dname = malloc(len + 1);
+ for(i = start; i < count; i++)
+ {
++ uint32 oldnod;
+ SNPRINTF(dname, len, "%s%lu", name, i);
+- mknod_fs(fs, nod, dname, mode, uid, gid, major, minor + (i * increment - start), ctime, mtime);
++ oldnod = find_dir(fs, nod, dname);
++ if(oldnod)
++ chmod_fs(fs, oldnod, mode, uid, gid);
++ else
++ mknod_fs(fs, nod, dname, mode, uid, gid, major, minor + (i * increment - start), ctime, mtime);
+ }
+ free(dname);
+ }
+ else
+- mknod_fs(fs, nod, name, mode, uid, gid, major, minor, ctime, mtime);
++ {
++ uint32 oldnod = find_dir(fs, nod, name);
++ if(oldnod)
++ chmod_fs(fs, oldnod, mode, uid, gid);
++ else
++ mknod_fs(fs, nod, name, mode, uid, gid, major, minor, ctime, mtime);
++ }
+ }
+ }
+ if (line)
+@@ -1643,6 +2331,10 @@
+ switch(st.st_mode & S_IFMT)
+ {
+ case S_IFLNK:
++ if((st.st_mode & S_IFMT) == S_IFREG || st.st_size >= 4 * (EXT2_TIND_BLOCK+1))
++ stats->nblocks += (st.st_size + BLOCKSIZE - 1) / BLOCKSIZE;
++ stats->ninodes++;
++ break;
+ case S_IFREG:
+ if((st.st_mode & S_IFMT) == S_IFREG || st.st_size > 4 * (EXT2_TIND_BLOCK+1))
+ stats->nblocks += (st.st_size + BLOCKSIZE - 1) / BLOCKSIZE;
+@@ -1657,19 +2349,33 @@
+ if(chdir(dent->d_name) < 0)
+ perror_msg_and_die(dent->d_name);
+ add2fs_from_dir(fs, this_nod, squash_uids, squash_perms, fs_timestamp, stats);
+- chdir("..");
++ if (chdir("..") == -1)
++ perror_msg_and_die("..");
++
+ break;
+ default:
+ break;
+ }
+ else
+ {
++ if((nod = find_dir(fs, this_nod, name)))
++ {
++ error_msg("ignoring duplicate entry %s", name);
++ if(S_ISDIR(st.st_mode)) {
++ if(chdir(dent->d_name) < 0)
++ perror_msg_and_die(name);
++ add2fs_from_dir(fs, nod, squash_uids, squash_perms, fs_timestamp, stats);
++ if (chdir("..") == -1)
++ perror_msg_and_die("..");
++ }
++ continue;
++ }
+ save_nod = 0;
+ /* Check for hardlinks */
+ if (!S_ISDIR(st.st_mode) && !S_ISLNK(st.st_mode) && st.st_nlink > 1) {
+- int32 hdlink = is_hardlink(st.st_ino);
++ int32 hdlink = is_hardlink(fs, st.st_ino);
+ if (hdlink >= 0) {
+- add2dir(fs, this_nod, hdlinks.hdl[hdlink].dst_nod, name);
++ add2dir(fs, this_nod, fs->hdlinks.hdl[hdlink].dst_nod, name);
+ continue;
+ } else {
+ save_nod = 1;
+@@ -1697,8 +2403,12 @@
+ free(lnk);
+ break;
+ case S_IFREG:
+- fh = xfopen(dent->d_name, "rb");
+- nod = mkfile_fs(fs, this_nod, name, mode, st.st_size, fh, uid, gid, ctime, mtime);
++ fh = fopen(dent->d_name, "rb");
++ if (!fh) {
++ error_msg("Unable to open file %s", dent->d_name);
++ break;
++ }
++ nod = mkfile_fs(fs, this_nod, name, mode, fh, uid, gid, ctime, mtime);
+ fclose(fh);
+ break;
+ case S_IFDIR:
+@@ -1706,199 +2416,128 @@
+ if(chdir(dent->d_name) < 0)
+ perror_msg_and_die(name);
+ add2fs_from_dir(fs, nod, squash_uids, squash_perms, fs_timestamp, stats);
+- chdir("..");
++ if (chdir("..") == -1)
++ perror_msg_and_die("..");
+ break;
+ default:
+ error_msg("ignoring entry %s", name);
+ }
+ if (save_nod) {
+- if (hdlinks.count == hdlink_cnt) {
+- if ((hdlinks.hdl =
+- realloc (hdlinks.hdl, (hdlink_cnt + HDLINK_CNT) *
++ if (fs->hdlinks.count == fs->hdlink_cnt) {
++ if ((fs->hdlinks.hdl =
++ realloc (fs->hdlinks.hdl, (fs->hdlink_cnt + HDLINK_CNT) *
+ sizeof (struct hdlink_s))) == NULL) {
+ error_msg_and_die("Not enough memory");
+ }
+- hdlink_cnt += HDLINK_CNT;
++ fs->hdlink_cnt += HDLINK_CNT;
+ }
+- hdlinks.hdl[hdlinks.count].src_inode = st.st_ino;
+- hdlinks.hdl[hdlinks.count].dst_nod = nod;
+- hdlinks.count++;
++ fs->hdlinks.hdl[fs->hdlinks.count].src_inode = st.st_ino;
++ fs->hdlinks.hdl[fs->hdlinks.count].dst_nod = nod;
++ fs->hdlinks.count++;
+ }
+ }
+ }
+ closedir(dh);
+ }
+
+-// endianness swap of x-indirect blocks
++// Copy size blocks from src to dst, putting holes in the output
++// file (if possible) if the input block is all zeros.
++// Copy size blocks from src to dst, putting holes in the output
++// file (if possible) if the input block is all zeros.
+ static void
+-swap_goodblocks(filesystem *fs, inode *nod)
++copy_file(filesystem *fs, FILE *dst, FILE *src, size_t size)
+ {
+- uint32 i,j;
+- int done=0;
+- uint32 *b,*b2;
++ uint8 *b;
+
+- uint32 nblk = nod->i_blocks / INOBLK;
+- if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
+- for(i = 0; i <= EXT2_TIND_BLOCK; i++)
+- nod->i_block[i] = swab32(nod->i_block[i]);
+- if(nblk <= EXT2_IND_BLOCK)
+- return;
+- swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
+- if(nblk <= EXT2_DIND_BLOCK + BLOCKSIZE/4)
+- return;
+- /* Currently this will fail b'cos the number of blocks as stored
+- in i_blocks also includes the indirection blocks (see
+- walk_bw). But this function assumes that i_blocks only
+- stores the count of data blocks ( Actually according to
+- "Understanding the Linux Kernel" (Table 17-3 p502 1st Ed)
+- i_blocks IS supposed to store the count of data blocks). so
+- with a file of size 268K nblk would be 269.The above check
+- will be false even though double indirection hasn't been
+- started.This is benign as 0 means block 0 which has been
+- zeroed out and therefore points back to itself from any offset
+- */
+- // FIXME: I have fixed that, but I have the feeling the rest of
+- // ths function needs to be fixed for the same reasons - Xav
+- assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
+- for(i = 0; i < BLOCKSIZE/4; i++)
+- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i )
+- swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
+- swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
+- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
+- return;
+- /* Adding support for triple indirection */
+- b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
+- for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
+- b2 = (uint32*)get_blk(fs,b[i]);
+- for(j=0; j<BLOCKSIZE/4;j++) {
+- if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
+- (BLOCKSIZE/4)*(BLOCKSIZE/4) +
+- i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
+- j*(BLOCKSIZE/4)) )
+- swap_block(get_blk(fs,b2[j]));
+- else {
+- done = 1;
+- break;
+- }
++ b = malloc(BLOCKSIZE);
++ if (!b)
++ error_msg_and_die("copy_file: out of memory");
++ if (fseek(src, 0, SEEK_SET))
++ perror_msg_and_die("fseek");
++ if (ftruncate(fileno(dst), 0))
++ perror_msg_and_die("copy_file: ftruncate");
++ while (size > 0) {
++ if (fread(b, BLOCKSIZE, 1, src) != 1)
++ perror_msg_and_die("copy failed on read");
++ if ((dst != stdout) && fs->holes && is_blk_empty(b)) {
++ /* Empty block, just skip it */
++ if (fseek(dst, BLOCKSIZE, SEEK_CUR))
++ perror_msg_and_die("fseek");
++ } else {
++ if (fwrite(b, BLOCKSIZE, 1, dst) != 1)
++ perror_msg_and_die("copy failed on write");
+ }
+- swap_block((uint8 *)b2);
++ size--;
+ }
+- swap_block((uint8 *)b);
+- return;
++ free(b);
+ }
+
+-static void
+-swap_badblocks(filesystem *fs, inode *nod)
++// Allocate a new filesystem structure, allocate internal memory,
++// and initialize the contents.
++static filesystem *
++alloc_fs(int swapit, char *fname, uint32 nbblocks, FILE *srcfile)
+ {
+- uint32 i,j;
+- int done=0;
+- uint32 *b,*b2;
++ filesystem *fs;
++ struct stat srcstat, dststat;
+
+- uint32 nblk = nod->i_blocks / INOBLK;
+- if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
+- for(i = 0; i <= EXT2_TIND_BLOCK; i++)
+- nod->i_block[i] = swab32(nod->i_block[i]);
+- if(nblk <= EXT2_IND_BLOCK)
+- return;
+- swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
+- if(nblk <= EXT2_DIND_BLOCK + BLOCKSIZE/4)
+- return;
+- /* See comment in swap_goodblocks */
+- assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
+- swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
+- for(i = 0; i < BLOCKSIZE/4; i++)
+- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i )
+- swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
+- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
+- return;
+- /* Adding support for triple indirection */
+- b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
+- swap_block((uint8 *)b);
+- for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
+- b2 = (uint32*)get_blk(fs,b[i]);
+- swap_block((uint8 *)b2);
+- for(j=0; j<BLOCKSIZE/4;j++) {
+- if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
+- (BLOCKSIZE/4)*(BLOCKSIZE/4) +
+- i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
+- j*(BLOCKSIZE/4)) )
+- swap_block(get_blk(fs,b2[j]));
+- else {
+- done = 1;
+- break;
+- }
+- }
+- }
+- return;
+-}
++ fs = malloc(sizeof(*fs));
++ if (!fs)
++ error_msg_and_die("not enough memory for filesystem");
++ memset(fs, 0, sizeof(*fs));
++ fs->swapit = swapit;
++ cache_init(&fs->blks, MAX_FREE_CACHE_BLOCKS, blk_elem_val, blk_freed);
++ cache_init(&fs->gds, MAX_FREE_CACHE_GDS, gd_elem_val, gd_freed);
++ cache_init(&fs->blkmaps, MAX_FREE_CACHE_BLOCKMAPS,
++ blkmap_elem_val, blkmap_freed);
++ cache_init(&fs->inodes, MAX_FREE_CACHE_INODES,
++ inode_elem_val, inode_freed);
++ fs->hdlink_cnt = HDLINK_CNT;
++ fs->hdlinks.hdl = calloc(sizeof(struct hdlink_s), fs->hdlink_cnt);
++ if (!fs->hdlinks.hdl)
++ error_msg_and_die("Not enough memory");
++ fs->hdlinks.count = 0 ;
+
+-// endianness swap of the whole filesystem
+-static void
+-swap_goodfs(filesystem *fs)
+-{
+- uint32 i;
+- for(i = 1; i < fs->sb.s_inodes_count; i++)
+- {
+- inode *nod = get_nod(fs, i);
+- if(nod->i_mode & FM_IFDIR)
+- {
+- blockwalker bw;
+- uint32 bk;
+- init_bw(&bw);
+- while((bk = walk_bw(fs, i, &bw, 0, 0)) != WALK_END)
+- {
+- directory *d;
+- uint8 *b;
+- b = get_blk(fs, bk);
+- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + swab16(d->d_rec_len)))
+- swap_dir(d);
+- }
+- }
+- swap_goodblocks(fs, nod);
+- swap_nod(nod);
+- }
+- for(i=0;i<GRP_NBGROUPS(fs);i++)
+- swap_gd(&(fs->gd[i]));
+- swap_sb(&fs->sb);
++ if (strcmp(fname, "-") == 0)
++ fs->f = tmpfile();
++ else if (srcfile) {
++ if (fstat(fileno(srcfile), &srcstat))
++ perror_msg_and_die("fstat srcfile");
++ if (stat(fname, &dststat) == 0
++ && srcstat.st_ino == dststat.st_ino
++ && srcstat.st_dev == dststat.st_dev)
++ {
++ // source and destination are the same file, don't
++ // truncate or copy, just use the file.
++ fs->f = fopen(fname, "r+b");
++ } else {
++ fs->f = fopen(fname, "w+b");
++ if (fs->f)
++ copy_file(fs, fs->f, srcfile, nbblocks);
++ }
++ } else
++ fs->f = fopen(fname, "w+b");
++ if (!fs->f)
++ perror_msg_and_die("opening %s", fname);
++ return fs;
+ }
+
++/* Make sure the output file is the right size */
+ static void
+-swap_badfs(filesystem *fs)
++set_file_size(filesystem *fs)
+ {
+- uint32 i;
+- swap_sb(&fs->sb);
+- for(i=0;i<GRP_NBGROUPS(fs);i++)
+- swap_gd(&(fs->gd[i]));
+- for(i = 1; i < fs->sb.s_inodes_count; i++)
+- {
+- inode *nod = get_nod(fs, i);
+- swap_nod(nod);
+- swap_badblocks(fs, nod);
+- if(nod->i_mode & FM_IFDIR)
+- {
+- blockwalker bw;
+- uint32 bk;
+- init_bw(&bw);
+- while((bk = walk_bw(fs, i, &bw, 0, 0)) != WALK_END)
+- {
+- directory *d;
+- uint8 *b;
+- b = get_blk(fs, bk);
+- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
+- swap_dir(d);
+- }
+- }
+- }
++ if (ftruncate(fileno(fs->f),
++ ((off_t) fs->sb->s_blocks_count) * BLOCKSIZE))
++ perror_msg_and_die("set_file_size: ftruncate");
+ }
+
+ // initialize an empty filesystem
+ static filesystem *
+-init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes, uint32 fs_timestamp)
++init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes,
++ uint32 fs_timestamp, uint32 creator_os, int swapit, char *fname)
+ {
+ uint32 i;
+ filesystem *fs;
+- directory *d;
+- uint8 * b;
++ dirwalker dw;
+ uint32 nod, first_block;
+ uint32 nbgroups,nbinodes_per_group,overhead_per_group,free_blocks,
+ free_blocks_per_group,nbblocks_per_group,min_nbgroups;
+@@ -1906,6 +2545,11 @@
+ uint32 j;
+ uint8 *bbm,*ibm;
+ inode *itab0;
++ blk_info *bi;
++ nod_info *ni;
++ groupdescriptor *gd;
++ gd_info *gi;
++ inode_pos ipos;
+
+ if(nbresrvd < 0)
+ error_msg_and_die("reserved blocks value is invalid. Note: options have changed, see --help or the man page.");
+@@ -1919,10 +2563,14 @@
+ */
+ min_nbgroups = (nbinodes + INODES_PER_GROUP - 1) / INODES_PER_GROUP;
+
++ /* On filesystems with 1k block size, the bootloader area uses a full
++ * block. For 2048 and up, the superblock can be fitted into block 0.
++ */
++ first_block = (BLOCKSIZE == 1024);
++
+ /* nbblocks is the total number of blocks in the filesystem.
+ * a block group can have no more than 8192 blocks.
+ */
+- first_block = (BLOCKSIZE == 1024);
+ nbgroups = (nbblocks - first_block + BLOCKS_PER_GROUP - 1) / BLOCKS_PER_GROUP;
+ if(nbgroups < min_nbgroups) nbgroups = min_nbgroups;
+ nbblocks_per_group = rndup((nbblocks - first_block + nbgroups - 1)/nbgroups, 8);
+@@ -1934,51 +2582,59 @@
+ gdsz = rndup(nbgroups*sizeof(groupdescriptor),BLOCKSIZE)/BLOCKSIZE;
+ itblsz = nbinodes_per_group * sizeof(inode)/BLOCKSIZE;
+ overhead_per_group = 3 /*sb,bbm,ibm*/ + gdsz + itblsz;
+- if((uint32)nbblocks - 1 < overhead_per_group * nbgroups)
+- error_msg_and_die("too much overhead, try fewer inodes or more blocks. Note: options have changed, see --help or the man page.");
+- free_blocks = nbblocks - overhead_per_group*nbgroups - 1 /*boot block*/;
++ free_blocks = nbblocks - overhead_per_group*nbgroups - first_block;
+ free_blocks_per_group = nbblocks_per_group - overhead_per_group;
++ if(free_blocks < 0)
++ error_msg_and_die("too much overhead, try fewer inodes or more blocks. Note: options have changed, see --help or the man page.");
+
+- if(!(fs = (filesystem*)calloc(nbblocks, BLOCKSIZE)))
+- error_msg_and_die("not enough memory for filesystem");
++ fs = alloc_fs(swapit, fname, nbblocks, NULL);
++ fs->sb = calloc(1, SUPERBLOCK_SIZE);
++ if (!fs->sb)
++ error_msg_and_die("error allocating header memory");
+
+ // create the superblock for an empty filesystem
+- fs->sb.s_inodes_count = nbinodes_per_group * nbgroups;
+- fs->sb.s_blocks_count = nbblocks;
+- fs->sb.s_r_blocks_count = nbresrvd;
+- fs->sb.s_free_blocks_count = free_blocks;
+- fs->sb.s_free_inodes_count = fs->sb.s_inodes_count - EXT2_FIRST_INO + 1;
+- fs->sb.s_first_data_block = first_block;
+- fs->sb.s_log_block_size = BLOCKSIZE >> 11;
+- fs->sb.s_log_frag_size = BLOCKSIZE >> 11;
+- fs->sb.s_blocks_per_group = nbblocks_per_group;
+- fs->sb.s_frags_per_group = nbblocks_per_group;
+- fs->sb.s_inodes_per_group = nbinodes_per_group;
+- fs->sb.s_wtime = fs_timestamp;
+- fs->sb.s_magic = EXT2_MAGIC_NUMBER;
+- fs->sb.s_lastcheck = fs_timestamp;
++ fs->sb->s_inodes_count = nbinodes_per_group * nbgroups;
++ fs->sb->s_blocks_count = nbblocks;
++ fs->sb->s_r_blocks_count = nbresrvd;
++ fs->sb->s_free_blocks_count = free_blocks;
++ fs->sb->s_free_inodes_count = fs->sb->s_inodes_count - EXT2_FIRST_INO + 1;
++ fs->sb->s_first_data_block = first_block;
++ fs->sb->s_log_block_size = BLOCKSIZE >> 11;
++ fs->sb->s_log_frag_size = BLOCKSIZE >> 11;
++ fs->sb->s_blocks_per_group = nbblocks_per_group;
++ fs->sb->s_frags_per_group = nbblocks_per_group;
++ fs->sb->s_inodes_per_group = nbinodes_per_group;
++ fs->sb->s_wtime = fs_timestamp;
++ fs->sb->s_magic = EXT2_MAGIC_NUMBER;
++ fs->sb->s_lastcheck = fs_timestamp;
++ fs->sb->s_creator_os = creator_os;
++
++ set_file_size(fs);
+
+ // set up groupdescriptors
+- for(i=0, bbmpos=gdsz+2, ibmpos=bbmpos+1, itblpos=ibmpos+1;
++ for(i=0, bbmpos=first_block+1+gdsz, ibmpos=bbmpos+1, itblpos=ibmpos+1;
+ i<nbgroups;
+ i++, bbmpos+=nbblocks_per_group, ibmpos+=nbblocks_per_group, itblpos+=nbblocks_per_group)
+ {
++ gd = get_gd(fs, i, &gi);
++
+ if(free_blocks > free_blocks_per_group) {
+- fs->gd[i].bg_free_blocks_count = free_blocks_per_group;
++ gd->bg_free_blocks_count = free_blocks_per_group;
+ free_blocks -= free_blocks_per_group;
+ } else {
+- fs->gd[i].bg_free_blocks_count = free_blocks;
++ gd->bg_free_blocks_count = free_blocks;
+ free_blocks = 0; // this is the last block group
+ }
+ if(i)
+- fs->gd[i].bg_free_inodes_count = nbinodes_per_group;
++ gd->bg_free_inodes_count = nbinodes_per_group;
+ else
+- fs->gd[i].bg_free_inodes_count = nbinodes_per_group -
++ gd->bg_free_inodes_count = nbinodes_per_group -
+ EXT2_FIRST_INO + 2;
+- fs->gd[i].bg_used_dirs_count = 0;
+- fs->gd[i].bg_block_bitmap = bbmpos;
+- fs->gd[i].bg_inode_bitmap = ibmpos;
+- fs->gd[i].bg_inode_table = itblpos;
++ gd->bg_used_dirs_count = 0;
++ gd->bg_block_bitmap = bbmpos;
++ gd->bg_inode_bitmap = ibmpos;
++ gd->bg_inode_table = itblpos;
++ put_gd(gi);
+ }
+
+ /* Mark non-filesystem blocks and inodes as allocated */
+@@ -1984,110 +2640,143 @@
+ /* Mark non-filesystem blocks and inodes as allocated */
+ /* Mark system blocks and inodes as allocated */
+ for(i = 0; i<nbgroups;i++) {
+-
+ /* Block bitmap */
+- bbm = get_blk(fs,fs->gd[i].bg_block_bitmap);
++ gd = get_gd(fs, i, &gi);
++ bbm = GRP_GET_GROUP_BBM(fs, gd, &bi);
+ //non-filesystem blocks
+- for(j = fs->gd[i].bg_free_blocks_count
++ for(j = gd->bg_free_blocks_count
+ + overhead_per_group + 1; j <= BLOCKSIZE * 8; j++)
+ allocate(bbm, j);
+ //system blocks
+ for(j = 1; j <= overhead_per_group; j++)
+ allocate(bbm, j);
+-
++ GRP_PUT_GROUP_BBM(bi);
++
+ /* Inode bitmap */
+- ibm = get_blk(fs,fs->gd[i].bg_inode_bitmap);
++ ibm = GRP_GET_GROUP_IBM(fs, gd, &bi);
+ //non-filesystem inodes
+- for(j = fs->sb.s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++)
++ for(j = fs->sb->s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++)
+ allocate(ibm, j);
+
+ //system inodes
+ if(i == 0)
+ for(j = 1; j < EXT2_FIRST_INO; j++)
+ allocate(ibm, j);
++ GRP_PUT_GROUP_IBM(bi);
++ put_gd(gi);
+ }
+
+ // make root inode and directory
+ /* We have groups now. Add the root filesystem in group 0 */
+ /* Also increment the directory count for group 0 */
+- fs->gd[0].bg_free_inodes_count--;
+- fs->gd[0].bg_used_dirs_count = 1;
+- itab0 = (inode *)get_blk(fs,fs->gd[0].bg_inode_table);
+- itab0[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRGRP | FM_IROTH | FM_IXGRP | FM_IXOTH;
+- itab0[EXT2_ROOT_INO-1].i_ctime = fs_timestamp;
+- itab0[EXT2_ROOT_INO-1].i_mtime = fs_timestamp;
+- itab0[EXT2_ROOT_INO-1].i_atime = fs_timestamp;
+- itab0[EXT2_ROOT_INO-1].i_size = BLOCKSIZE;
+- itab0[EXT2_ROOT_INO-1].i_links_count = 2;
+-
+- if(!(b = get_workblk()))
+- error_msg_and_die("get_workblk() failed.");
+- d = (directory*)b;
+- d->d_inode = EXT2_ROOT_INO;
+- d->d_rec_len = sizeof(directory)+4;
+- d->d_name_len = 1;
+- strcpy(d->d_name, ".");
+- d = (directory*)(b + d->d_rec_len);
+- d->d_inode = EXT2_ROOT_INO;
+- d->d_rec_len = BLOCKSIZE - (sizeof(directory)+4);
+- d->d_name_len = 2;
+- strcpy(d->d_name, "..");
+- extend_blk(fs, EXT2_ROOT_INO, b, 1);
++ gd = get_gd(fs, 0, &gi);
++ gd->bg_free_inodes_count--;
++ gd->bg_used_dirs_count = 1;
++ put_gd(gi);
++ itab0 = get_nod(fs, EXT2_ROOT_INO, &ni);
++ itab0->i_mode = FM_IFDIR | FM_IRWXU | FM_IRGRP | FM_IROTH | FM_IXGRP | FM_IXOTH;
++ itab0->i_ctime = fs_timestamp;
++ itab0->i_mtime = fs_timestamp;
++ itab0->i_atime = fs_timestamp;
++ itab0->i_size = BLOCKSIZE;
++ itab0->i_links_count = 2;
++ put_nod(ni);
++
++ new_dir(fs, EXT2_ROOT_INO, ".", 1, &dw);
++ shrink_dir(&dw, EXT2_ROOT_INO, "..", 2);
++ next_dir(&dw); // Force the data into the buffer
++ inode_pos_init(fs, &ipos, EXT2_ROOT_INO, INODE_POS_EXTEND, NULL);
++ extend_inode_blk(fs, &ipos, dir_data(&dw), 1);
++ inode_pos_finish(fs, &ipos);
++ put_dir(&dw);
+
+- // make lost+found directory and reserve blocks
+- if(fs->sb.s_r_blocks_count)
++ // make lost+found directory
++ if(fs->sb->s_r_blocks_count)
+ {
+- nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU, 0, 0, fs_timestamp, fs_timestamp);
++ inode *node;
++ uint8 *b;
++
++ nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU,
++ 0, 0, fs_timestamp, fs_timestamp);
++ b = get_workblk();
+ memset(b, 0, BLOCKSIZE);
+ ((directory*)b)->d_rec_len = BLOCKSIZE;
+- /* We run into problems with e2fsck if directory lost+found grows
+- * bigger than this. Need to find out why this happens - sundar
+- */
+- if (fs->sb.s_r_blocks_count > fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS )
+- fs->sb.s_r_blocks_count = fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS;
+- for(i = 1; i < fs->sb.s_r_blocks_count; i++)
+- extend_blk(fs, nod, b, 1);
+- get_nod(fs, nod)->i_size = fs->sb.s_r_blocks_count * BLOCKSIZE;
++ inode_pos_init(fs, &ipos, nod, INODE_POS_EXTEND, NULL);
++ // It is always 16 blocks to start out with
++ for(i = 1; i < 16; i++)
++ extend_inode_blk(fs, &ipos, b, 1);
++ inode_pos_finish(fs, &ipos);
++ free_workblk(b);
++ node = get_nod(fs, nod, &ni);
++ node->i_size = 16 * BLOCKSIZE;
++ put_nod(ni);
+ }
+- free_workblk(b);
+
+ // administrative info
+- fs->sb.s_state = 1;
+- fs->sb.s_max_mnt_count = 20;
++ fs->sb->s_state = 1;
++ fs->sb->s_max_mnt_count = 20;
+
+ // options for me
+- if(holes)
+- fs->sb.s_reserved[200] |= OP_HOLES;
++ fs->holes = holes;
+
+ return fs;
+ }
+
+ // loads a filesystem from disk
+ static filesystem *
+-load_fs(FILE * fh, int swapit)
++load_fs(FILE *fh, int swapit, char *fname)
+ {
+- size_t fssize;
++ off_t fssize;
+ filesystem *fs;
+- if((fseek(fh, 0, SEEK_END) < 0) || ((ssize_t)(fssize = ftell(fh)) == -1))
++
++ if((fseek(fh, 0, SEEK_END) < 0) || ((fssize = ftello(fh)) == -1))
+ perror_msg_and_die("input filesystem image");
+ rewind(fh);
+- fssize = (fssize + BLOCKSIZE - 1) / BLOCKSIZE;
++ if ((fssize % BLOCKSIZE) != 0)
++ error_msg_and_die("Input file not a multiple of block size");
++ fssize /= BLOCKSIZE;
+ if(fssize < 16) // totally arbitrary
+ error_msg_and_die("too small filesystem");
+- if(!(fs = (filesystem*)calloc(fssize, BLOCKSIZE)))
+- error_msg_and_die("not enough memory for filesystem");
+- if(fread(fs, BLOCKSIZE, fssize, fh) != fssize)
+- perror_msg_and_die("input filesystem image");
++ fs = alloc_fs(swapit, fname, fssize, fh);
++
++ /* Read and check the superblock, then read the superblock
++ * and all the group descriptors */
++ fs->sb = malloc(SUPERBLOCK_SIZE);
++ if (!fs->sb)
++ error_msg_and_die("error allocating header memory");
++ if (fseek(fs->f, SUPERBLOCK_OFFSET, SEEK_SET))
++ perror_msg_and_die("fseek");
++ if (fread(fs->sb, SUPERBLOCK_SIZE, 1, fs->f) != 1)
++ perror_msg_and_die("fread filesystem image superblock");
+ if(swapit)
+- swap_badfs(fs);
+- if(fs->sb.s_rev_level || (fs->sb.s_magic != EXT2_MAGIC_NUMBER))
++ swap_sb(fs->sb);
++
++ if((fs->sb->s_rev_level > 1) || (fs->sb->s_magic != EXT2_MAGIC_NUMBER))
+ error_msg_and_die("not a suitable ext2 filesystem");
++ if (fs->sb->s_rev_level > 0) {
++ if (fs->sb->s_first_ino != EXT2_GOOD_OLD_FIRST_INO)
++ error_msg_and_die("First inode incompatible");
++ if (fs->sb->s_inode_size != EXT2_GOOD_OLD_INODE_SIZE)
++ error_msg_and_die("inode size incompatible");
++ if (fs->sb->s_feature_compat)
++ error_msg_and_die("Unsupported compat features");
++ if (fs->sb->s_feature_incompat)
++ error_msg_and_die("Unsupported incompat features");
++ if (fs->sb->s_feature_ro_compat
++ & ~EXT2_FEATURE_RO_COMPAT_LARGE_FILE)
++ error_msg_and_die("Unsupported ro compat features");
++ }
++
++ set_file_size(fs);
+ return fs;
+ }
+
+ static void
+ free_fs(filesystem *fs)
+ {
++ free(fs->hdlinks.hdl);
++ fclose(fs->f);
++ free(fs->sb);
+ free(fs);
+ }
+
+@@ -2123,16 +2812,23 @@
+ {
+ blockwalker bw;
+ uint32 bk;
+- int32 fsize = get_nod(fs, nod)->i_size;
++ nod_info *ni;
++ inode *node = get_nod(fs, nod, &ni);
++ int32 fsize = node->i_size;
++ blk_info *bi;
++
+ init_bw(&bw);
+ while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
+ {
+ if(fsize <= 0)
+ error_msg_and_die("wrong size while saving inode %d", nod);
+- if(fwrite(get_blk(fs, bk), (fsize > BLOCKSIZE) ? BLOCKSIZE : fsize, 1, f) != 1)
++ if(fwrite(get_blk(fs, bk, &bi),
++ (fsize > BLOCKSIZE) ? BLOCKSIZE : fsize, 1, f) != 1)
+ error_msg_and_die("error while saving inode %d", nod);
++ put_blk(bi);
+ fsize -= BLOCKSIZE;
+ }
++ put_nod(ni);
+ }
+
+
+@@ -2141,8 +2837,11 @@
+ print_dev(filesystem *fs, uint32 nod)
+ {
+ int minor, major;
+- minor = ((uint8*)get_nod(fs, nod)->i_block)[0];
+- major = ((uint8*)get_nod(fs, nod)->i_block)[1];
++ nod_info *ni;
++ inode *node = get_nod(fs, nod, &ni);
++ minor = ((uint8*)node->i_block)[0];
++ major = ((uint8*)node->i_block)[1];
++ put_nod(ni);
+ printf("major: %d, minor: %d\n", major, minor);
+ }
+
+@@ -2157,17 +2856,15 @@
+ while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
+ {
+ directory *d;
+- uint8 *b;
+- b = get_blk(fs, bk);
+- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
++ dirwalker dw;
++ for (d = get_dir(fs, bk, &dw); d; d = next_dir(&dw))
+ if(d->d_inode)
+ {
+- int i;
+ printf("entry '");
+- for(i = 0; i < d->d_name_len; i++)
+- putchar(d->d_name[i]);
++ fwrite(dir_name(&dw), 1, d->d_name_len, stdout);
+ printf("' (inode %d): rec_len: %d (name_len: %d)\n", d->d_inode, d->d_rec_len, d->d_name_len);
+ }
++ put_dir(&dw);
+ }
+ }
+
+@@ -2175,14 +2872,18 @@
+ static void
+ print_link(filesystem *fs, uint32 nod)
+ {
+- if(!get_nod(fs, nod)->i_blocks)
+- printf("links to '%s'\n", (char*)get_nod(fs, nod)->i_block);
++ nod_info *ni;
++ inode *node = get_nod(fs, nod, &ni);
++
++ if(!node->i_blocks)
++ printf("links to '%s'\n", (char*)node->i_block);
+ else
+ {
+ printf("links to '");
+ write_blocks(fs, nod, stdout);
+ printf("'\n");
+ }
++ put_nod(ni);
+ }
+
+ // make a ls-like printout of permissions
+@@ -2251,8 +2952,13 @@
+ {
+ char *s;
+ char perms[11];
+- if(!get_nod(fs, nod)->i_mode)
+- return;
++ nod_info *ni;
++ inode *node = get_nod(fs, nod, &ni);
++ blk_info *bi;
++ gd_info *gi;
++
++ if(!node->i_mode)
++ goto out;
+ switch(nod)
+ {
+ case EXT2_BAD_INO:
+@@ -2274,15 +2980,18 @@
+ default:
+ s = (nod >= EXT2_FIRST_INO) ? "normal" : "unknown reserved";
+ }
+- printf("inode %d (%s, %d links): ", nod, s, get_nod(fs, nod)->i_links_count);
+- if(!allocated(GRP_GET_INODE_BITMAP(fs,nod), GRP_IBM_OFFSET(fs,nod)))
++ printf("inode %d (%s, %d links): ", nod, s, node->i_links_count);
++ if(!allocated(GRP_GET_INODE_BITMAP(fs,nod,&bi,&gi), GRP_IBM_OFFSET(fs,nod)))
+ {
++ GRP_PUT_INODE_BITMAP(bi,gi);
+ printf("unallocated\n");
+- return;
++ goto out;
+ }
+- make_perms(get_nod(fs, nod)->i_mode, perms);
+- printf("%s, size: %d byte%s (%d block%s)\n", perms, plural(get_nod(fs, nod)->i_size), plural(get_nod(fs, nod)->i_blocks / INOBLK));
+- switch(get_nod(fs, nod)->i_mode & FM_IFMT)
++ GRP_PUT_INODE_BITMAP(bi,gi);
++ make_perms(node->i_mode, perms);
++ printf("%s, size: %d byte%s (%d block%s)\n", perms,
++ plural(node->i_size), plural(node->i_blocks / INOBLK));
++ switch(node->i_mode & FM_IFMT)
+ {
+ case FM_IFSOCK:
+ list_blocks(fs, nod);
+@@ -2310,6 +3019,8 @@
+ list_blocks(fs, nod);
+ }
+ printf("Done with inode %d\n",nod);
++out:
++ put_nod(ni);
+ }
+
+ // describes various fields in a filesystem
+@@ -2317,49 +3028,65 @@
+ print_fs(filesystem *fs)
+ {
+ uint32 i;
++ blk_info *bi;
++ groupdescriptor *gd;
++ gd_info *gi;
+ uint8 *ibm;
+
+ printf("%d blocks (%d free, %d reserved), first data block: %d\n",
+- fs->sb.s_blocks_count, fs->sb.s_free_blocks_count,
+- fs->sb.s_r_blocks_count, fs->sb.s_first_data_block);
+- printf("%d inodes (%d free)\n", fs->sb.s_inodes_count,
+- fs->sb.s_free_inodes_count);
++ fs->sb->s_blocks_count, fs->sb->s_free_blocks_count,
++ fs->sb->s_r_blocks_count, fs->sb->s_first_data_block);
++ printf("%d inodes (%d free)\n", fs->sb->s_inodes_count,
++ fs->sb->s_free_inodes_count);
+ printf("block size = %d, frag size = %d\n",
+- fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024,
+- fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024);
++ fs->sb->s_log_block_size ? (fs->sb->s_log_block_size << 11) : 1024,
++ fs->sb->s_log_frag_size ? (fs->sb->s_log_frag_size << 11) : 1024);
+ printf("number of groups: %d\n",GRP_NBGROUPS(fs));
+ printf("%d blocks per group,%d frags per group,%d inodes per group\n",
+- fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group,
+- fs->sb.s_inodes_per_group);
++ fs->sb->s_blocks_per_group, fs->sb->s_frags_per_group,
++ fs->sb->s_inodes_per_group);
+ printf("Size of inode table: %d blocks\n",
+- (int)(fs->sb.s_inodes_per_group * sizeof(inode) / BLOCKSIZE));
++ (int)(fs->sb->s_inodes_per_group * sizeof(inode) / BLOCKSIZE));
+ for (i = 0; i < GRP_NBGROUPS(fs); i++) {
+ printf("Group No: %d\n", i+1);
++ gd = get_gd(fs, i, &gi);
+ printf("block bitmap: block %d,inode bitmap: block %d, inode table: block %d\n",
+- fs->gd[i].bg_block_bitmap, fs->gd[i].bg_inode_bitmap,
+- fs->gd[i].bg_inode_table);
++ gd->bg_block_bitmap,
++ gd->bg_inode_bitmap,
++ gd->bg_inode_table);
+ printf("block bitmap allocation:\n");
+- print_bm(GRP_GET_GROUP_BBM(fs, i),fs->sb.s_blocks_per_group);
++ print_bm(GRP_GET_GROUP_BBM(fs, gd, &bi),fs->sb->s_blocks_per_group);
++ GRP_PUT_GROUP_BBM(bi);
+ printf("inode bitmap allocation:\n");
+- ibm = GRP_GET_GROUP_IBM(fs, i);
+- print_bm(ibm, fs->sb.s_inodes_per_group);
+- for (i = 1; i <= fs->sb.s_inodes_per_group; i++)
++ ibm = GRP_GET_GROUP_IBM(fs, gd, &bi);
++ print_bm(ibm, fs->sb->s_inodes_per_group);
++ for (i = 1; i <= fs->sb->s_inodes_per_group; i++)
+ if (allocated(ibm, i))
+ print_inode(fs, i);
++ GRP_PUT_GROUP_IBM(bi);
++ put_gd(gi);
+ }
+ }
+
+ static void
+-dump_fs(filesystem *fs, FILE * fh, int swapit)
++finish_fs(filesystem *fs)
+ {
+- uint32 nbblocks = fs->sb.s_blocks_count;
+- fs->sb.s_reserved[200] = 0;
+- if(swapit)
+- swap_goodfs(fs);
+- if(fwrite(fs, BLOCKSIZE, nbblocks, fh) < nbblocks)
+- perror_msg_and_die("output filesystem image");
+- if(swapit)
+- swap_badfs(fs);
++ if (cache_flush(&fs->inodes))
++ error_msg_and_die("entry mismatch on inode cache flush");
++ if (cache_flush(&fs->blkmaps))
++ error_msg_and_die("entry mismatch on blockmap cache flush");
++ if (cache_flush(&fs->gds))
++ error_msg_and_die("entry mismatch on gd cache flush");
++ if (cache_flush(&fs->blks))
++ error_msg_and_die("entry mismatch on block cache flush");
++ if(fs->swapit)
++ swap_sb(fs->sb);
++ if (fseek(fs->f, SUPERBLOCK_OFFSET, SEEK_SET))
++ perror_msg_and_die("fseek");
++ if(fwrite(fs->sb, SUPERBLOCK_SIZE, 1, fs->f) != 1)
++ perror_msg_and_die("output filesystem superblock");
++ if(fs->swapit)
++ swap_sb(fs->sb);
+ }
+
+ static void
+@@ -2419,10 +3146,12 @@
+ " -x, --starting-image <image>\n"
+ " -d, --root <directory>\n"
+ " -D, --devtable <file>\n"
++ " -B, --block-size <bytes>\n"
+ " -b, --size-in-blocks <blocks>\n"
+ " -i, --bytes-per-inode <bytes per inode>\n"
+ " -N, --number-of-inodes <number of inodes>\n"
+ " -m, --reserved-percentage <percentage of blocks to reserve>\n"
++ " -o, --creator-os <os> 'linux' (default), 'hurd', 'freebsd' or number.\n"
+ " -g, --block-map <path> Generate a block map file for this path.\n"
+ " -e, --fill-value <value> Fill unallocated blocks with value.\n"
+ " -z, --allow-holes Allow files with holes.\n"
+@@ -2444,15 +3173,34 @@
+ extern char* optarg;
+ extern int optind, opterr, optopt;
+
++// parse the value for -o <os>
++int
++lookup_creator_os(const char *name)
++{
++ if (isdigit (*name))
++ return atoi(name);
++ else if (strcasecmp(name, "linux") == 0)
++ return EXT2_OS_LINUX;
++ else if (strcasecmp(name, "GNU") == 0 || strcasecmp(name, "hurd") == 0)
++ return EXT2_OS_HURD;
++ else if (strcasecmp(name, "freebsd") == 0)
++ return EXT2_OS_FREEBSD;
++ else if (strcasecmp(name, "lites") == 0)
++ return EXT2_OS_LITES;
++ else
++ return EXT2_OS_LINUX;
++}
++
+ int
+ main(int argc, char **argv)
+ {
+- int nbblocks = -1;
++ long long nbblocks = -1;
+ int nbinodes = -1;
+ int nbresrvd = -1;
+ float bytes_per_inode = -1;
+ float reserved_frac = -1;
+ int fs_timestamp = -1;
++ int creator_os = CREATOR_OS;
+ char * fsout = "-";
+ char * fsin = 0;
+ char * dopt[MAX_DOPT];
+@@ -2466,6 +3214,7 @@
+ int squash_perms = 0;
+ uint16 endian = 1;
+ int bigendian = !*(char*)&endian;
++ char *volumelabel = NULL;
+ filesystem *fs;
+ int i;
+ int c;
+@@ -2476,13 +3225,16 @@
+ { "starting-image", required_argument, NULL, 'x' },
+ { "root", required_argument, NULL, 'd' },
+ { "devtable", required_argument, NULL, 'D' },
++ { "block-size", required_argument, NULL, 'B' },
+ { "size-in-blocks", required_argument, NULL, 'b' },
+ { "bytes-per-inode", required_argument, NULL, 'i' },
+ { "number-of-inodes", required_argument, NULL, 'N' },
++ { "volume-label", required_argument, NULL, 'L' },
+ { "reserved-percentage", required_argument, NULL, 'm' },
++ { "creator-os", required_argument, NULL, 'o' },
+ { "block-map", required_argument, NULL, 'g' },
+ { "fill-value", required_argument, NULL, 'e' },
+- { "allow-holes", no_argument, NULL, 'z' },
++ { "allow-holes", no_argument, NULL, 'z' },
+ { "faketime", no_argument, NULL, 'f' },
+ { "squash", no_argument, NULL, 'q' },
+ { "squash-uids", no_argument, NULL, 'U' },
+@@ -2495,11 +3247,11 @@
+
+ app_name = argv[0];
+
+- while((c = getopt_long(argc, argv, "x:d:D:b:i:N:m:g:e:zfqUPhVv", longopts, NULL)) != EOF) {
++ while((c = getopt_long(argc, argv, "x:d:D:B:b:i:N:L:m:o:g:e:zfqUPhVv", longopts, NULL)) != EOF) {
+ #else
+ app_name = argv[0];
+
+- while((c = getopt(argc, argv, "x:d:D:b:i:N:m:g:e:zfqUPhVv")) != EOF) {
++ while((c = getopt(argc, argv, "x:d:D:B:b:i:N:L:m:o:g:e:zfqUPhVv")) != EOF) {
+ #endif /* HAVE_GETOPT_LONG */
+ switch(c)
+ {
+@@ -2510,6 +3262,9 @@
+ case 'D':
+ dopt[didx++] = optarg;
+ break;
++ case 'B':
++ blocksize = SI_atof(optarg);
++ break;
+ case 'b':
+ nbblocks = SI_atof(optarg);
+ break;
+@@ -2519,9 +3274,15 @@
+ case 'N':
+ nbinodes = SI_atof(optarg);
+ break;
++ case 'L':
++ volumelabel = optarg;
++ break;
+ case 'm':
+ reserved_frac = SI_atof(optarg) / 100;
+ break;
++ case 'o':
++ creator_os = lookup_creator_os(optarg);
++ break;
+ case 'g':
+ gopt[gidx++] = optarg;
+ break;
+@@ -2565,21 +3326,21 @@
+ error_msg_and_die("Not enough arguments. Try --help or else see the man page.");
+ fsout = argv[optind];
+
+- hdlinks.hdl = (struct hdlink_s *)malloc(hdlink_cnt * sizeof(struct hdlink_s));
+- if (!hdlinks.hdl)
+- error_msg_and_die("Not enough memory");
+- hdlinks.count = 0 ;
++ if(blocksize != 1024 && blocksize != 2048 && blocksize != 4096)
++ error_msg_and_die("Valid block sizes: 1024, 2048 or 4096.");
++ if(creator_os < 0)
++ error_msg_and_die("Creator OS unknown.");
+
+ if(fsin)
+ {
+ if(strcmp(fsin, "-"))
+ {
+ FILE * fh = xfopen(fsin, "rb");
+- fs = load_fs(fh, bigendian);
++ fs = load_fs(fh, bigendian, fsout);
+ fclose(fh);
+ }
+ else
+- fs = load_fs(stdin, bigendian);
++ fs = load_fs(stdin, bigendian, fsout);
+ }
+ else
+ {
+@@ -2609,16 +3370,29 @@
+ }
+ if(fs_timestamp == -1)
+ fs_timestamp = time(NULL);
+- fs = init_fs(nbblocks, nbinodes, nbresrvd, holes, fs_timestamp);
++ fs = init_fs(nbblocks, nbinodes, nbresrvd, holes,
++ fs_timestamp, creator_os, bigendian, fsout);
+ }
++ if (volumelabel != NULL)
++ strncpy((char *)fs->sb->s_volume_name, volumelabel,
++ sizeof(fs->sb->s_volume_name));
+
+ populate_fs(fs, dopt, didx, squash_uids, squash_perms, fs_timestamp, NULL);
+
+ if(emptyval) {
+ uint32 b;
+- for(b = 1; b < fs->sb.s_blocks_count; b++)
+- if(!allocated(GRP_GET_BLOCK_BITMAP(fs,b),GRP_BBM_OFFSET(fs,b)))
+- memset(get_blk(fs, b), emptyval, BLOCKSIZE);
++ for(b = 1; b < fs->sb->s_blocks_count; b++) {
++ blk_info *bi;
++ gd_info *gi;
++ if(!allocated(GRP_GET_BLOCK_BITMAP(fs,b,&bi,&gi),
++ GRP_BBM_OFFSET(fs,b))) {
++ blk_info *bi2;
++ memset(get_blk(fs, b, &bi2), emptyval,
++ BLOCKSIZE);
++ put_blk(bi2);
++ }
++ GRP_PUT_BLOCK_BITMAP(bi,gi);
++ }
+ }
+ if(verbose)
+ print_fs(fs);
+@@ -2628,24 +3402,22 @@
+ char fname[MAX_FILENAME];
+ char *p;
+ FILE *fh;
++ nod_info *ni;
+ if(!(nod = find_path(fs, EXT2_ROOT_INO, gopt[i])))
+ error_msg_and_die("path %s not found in filesystem", gopt[i]);
+ while((p = strchr(gopt[i], '/')))
+ *p = '_';
+ SNPRINTF(fname, MAX_FILENAME-1, "%s.blk", gopt[i]);
+ fh = xfopen(fname, "wb");
+- fprintf(fh, "%d:", get_nod(fs, nod)->i_size);
++ fprintf(fh, "%d:", get_nod(fs, nod, &ni)->i_size);
++ put_nod(ni);
+ flist_blocks(fs, nod, fh);
+ fclose(fh);
+ }
+- if(strcmp(fsout, "-"))
+- {
+- FILE * fh = xfopen(fsout, "wb");
+- dump_fs(fs, fh, bigendian);
+- fclose(fh);
+- }
+- else
+- dump_fs(fs, stdout, bigendian);
++ finish_fs(fs);
++ if(strcmp(fsout, "-") == 0)
++ copy_file(fs, stdout, fs->f, fs->sb->s_blocks_count);
++
+ free_fs(fs);
+ return 0;
+ }
+Index: genext2fs-1.4.1/cache.h
+===================================================================
+--- /dev/null
++++ genext2fs-1.4.1/cache.h
+@@ -0,0 +1,128 @@
++#ifndef __CACHE_H__
++#define __CACHE_H__
++
++#include "list.h"
++
++#define CACHE_LISTS 256
++
++typedef struct
++{
++ list_elem link;
++ list_elem lru_link;
++} cache_link;
++
++typedef struct
++{
++ /* LRU list holds unused items */
++ unsigned int lru_entries;
++ list_elem lru_list;
++ unsigned int max_free_entries;
++
++ unsigned int entries;
++ list_elem lists[CACHE_LISTS];
++ unsigned int (*elem_val)(cache_link *elem);
++ void (*freed)(cache_link *elem);
++} listcache;
++
++static inline void
++cache_add(listcache *c, cache_link *elem)
++{
++ unsigned int hash = c->elem_val(elem) % CACHE_LISTS;
++ int delcount = c->lru_entries - c->max_free_entries;
++
++ if (delcount > 0) {
++ /* Delete some unused items. */
++ list_elem *lru, *next;
++ cache_link *l;
++ list_for_each_elem_safe(&c->lru_list, lru, next) {
++ l = container_of(lru, cache_link, lru_link);
++ list_del(lru);
++ list_del(&l->link);
++ c->entries--;
++ c->lru_entries--;
++ c->freed(l);
++ delcount--;
++ if (delcount <= 0)
++ break;
++ }
++ }
++
++ c->entries++;
++ list_item_init(&elem->lru_link); /* Mark it not in the LRU list */
++ list_add_after(&c->lists[hash], &elem->link);
++}
++
++static inline void
++cache_item_set_unused(listcache *c, cache_link *elem)
++{
++ list_add_before(&c->lru_list, &elem->lru_link);
++ c->lru_entries++;
++}
++
++static inline cache_link *
++cache_find(listcache *c, unsigned int val)
++{
++ unsigned int hash = val % CACHE_LISTS;
++ list_elem *elem;
++
++ list_for_each_elem(&c->lists[hash], elem) {
++ cache_link *l = container_of(elem, cache_link, link);
++ if (c->elem_val(l) == val) {
++ if (!list_empty(&l->lru_link)) {
++ /* It's in the unused list, remove it. */
++ list_del(&l->lru_link);
++ list_item_init(&l->lru_link);
++ c->lru_entries--;
++ }
++ return l;
++ }
++ }
++ return NULL;
++}
++
++static inline int
++cache_flush(listcache *c)
++{
++ list_elem *elem, *next;
++ cache_link *l;
++ int i;
++
++ list_for_each_elem_safe(&c->lru_list, elem, next) {
++ l = container_of(elem, cache_link, lru_link);
++ list_del(elem);
++ list_del(&l->link);
++ c->entries--;
++ c->lru_entries--;
++ c->freed(l);
++ }
++
++ for (i = 0; i < CACHE_LISTS; i++) {
++ list_for_each_elem_safe(&c->lists[i], elem, next) {
++ l = container_of(elem, cache_link, link);
++ list_del(&l->link);
++ c->entries--;
++ c->freed(l);
++ }
++ }
++
++ return c->entries || c->lru_entries;
++}
++
++static inline void
++cache_init(listcache *c, unsigned int max_free_entries,
++ unsigned int (*elem_val)(cache_link *elem),
++ void (*freed)(cache_link *elem))
++{
++ int i;
++
++ c->entries = 0;
++ c->lru_entries = 0;
++ c->max_free_entries = max_free_entries;
++ list_init(&c->lru_list);
++ for (i = 0; i < CACHE_LISTS; i++)
++ list_init(&c->lists[i]);
++ c->elem_val = elem_val;
++ c->freed = freed;
++}
++
++#endif /* __CACHE_H__ */
+Index: genext2fs-1.4.1/list.h
+===================================================================
+--- /dev/null
++++ genext2fs-1.4.1/list.h
+@@ -0,0 +1,78 @@
++#ifndef __LIST_H__
++#define __LIST_H__
++
++#if STDC_HEADERS
++# include <stdlib.h>
++# include <stddef.h>
++#else
++# if HAVE_STDLIB_H
++# include <stdlib.h>
++# endif
++# if HAVE_STDDEF_H
++# include <stddef.h>
++# endif
++#endif
++
++#ifndef offsetof
++#define offsetof(st, m) \
++ ((size_t) ( (char *)&((st *)(0))->m - (char *)0 ))
++#endif
++
++#define container_of(ptr, type, member) ({ \
++ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
++ (type *)( (char *)__mptr - offsetof(type,member) );})
++
++typedef struct list_elem
++{
++ struct list_elem *next;
++ struct list_elem *prev;
++} list_elem;
++
++static inline void list_init(list_elem *list)
++{
++ list->next = list;
++ list->prev = list;
++}
++
++static inline void list_add_after(list_elem *pos, list_elem *elem)
++{
++ elem->next = pos->next;
++ elem->prev = pos;
++ pos->next->prev = elem;
++ pos->next = elem;
++}
++
++static inline void list_add_before(list_elem *pos, list_elem *elem)
++{
++ elem->prev = pos->prev;
++ elem->next = pos;
++ pos->prev->next = elem;
++ pos->prev = elem;
++}
++
++static inline void list_del(list_elem *elem)
++{
++ elem->next->prev = elem->prev;
++ elem->prev->next = elem->next;
++}
++
++static inline void list_item_init(list_elem *elem)
++{
++ elem->next = elem;
++ elem->prev = elem;
++}
++
++static inline int list_empty(list_elem *elem)
++{
++ return elem->next == elem;
++}
++
++#define list_for_each_elem(list, curr) \
++ for ((curr) = (list)->next; (curr) != (list); (curr) = (curr)->next)
++
++#define list_for_each_elem_safe(list, curr, next) \
++ for ((curr) = (list)->next, (next) = (curr)->next; \
++ (curr) != (list); \
++ (curr) = (next), (next) = (curr)->next)
++
++#endif /* __LIST_H__ */
+++ /dev/null
-[PATCH] update genext2fs.c to CVS rev 1.118
-
-See http://genext2fs.cvs.sourceforge.net/viewvc/genext2fs/genext2fs/genext2fs.c?view=log
-for details.
-
-Numerous bugfixes, large file and filesystem support, rev 1 filesystems,
-volume id support, block size, ..
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- cache.h | 128 ++++
- genext2fs.c | 1870 ++++++++++++++++++++++++++++++++++++++++++------------------
- list.h | 78 ++
- 3 files changed, 1527 insertions(+), 549 deletions(-)
-
-Index: genext2fs-1.4.1/genext2fs.c
-===================================================================
---- genext2fs-1.4.1.orig/genext2fs.c
-+++ genext2fs-1.4.1/genext2fs.c
-@@ -53,6 +53,12 @@
- // along with -q, -P, -U
-
-
-+/*
-+ * Allow fseeko/off_t to be 64-bit offsets to allow filesystems and
-+ * individual files >2GB.
-+ */
-+#define _FILE_OFFSET_BITS 64
-+
- #include <config.h>
- #include <stdio.h>
-
-@@ -107,10 +113,8 @@
-
- #if HAVE_DIRENT_H
- # include <dirent.h>
--# define NAMLEN(dirent) strlen((dirent)->d_name)
- #else
- # define dirent direct
--# define NAMLEN(dirent) (dirent)->d_namlen
- # if HAVE_SYS_NDIR_H
- # include <sys/ndir.h>
- # endif
-@@ -144,6 +148,8 @@
- # include <limits.h>
- #endif
-
-+#include "cache.h"
-+
- struct stats {
- unsigned long nblocks;
- unsigned long ninodes;
-@@ -151,13 +157,42 @@
-
- // block size
-
--#define BLOCKSIZE 1024
-+static int blocksize = 1024;
-+
-+#define SUPERBLOCK_OFFSET 1024
-+#define SUPERBLOCK_SIZE 1024
-+
-+#define BLOCKSIZE blocksize
- #define BLOCKS_PER_GROUP 8192
- #define INODES_PER_GROUP 8192
- /* Percentage of blocks that are reserved.*/
- #define RESERVED_BLOCKS 5/100
- #define MAX_RESERVED_BLOCKS 25/100
-
-+/* The default value for s_creator_os. */
-+#if defined(__linux__) && defined(EXT2_OS_LINUX)
-+#define CREATOR_OS EXT2_OS_LINUX
-+#define CREATOR_OS_NAME "linux"
-+#else
-+#if defined(__GNU__) && defined(EXT2_OS_HURD)
-+#define CREATOR_OS EXT2_OS_HURD
-+#define CREATOR_OS_NAME "hurd"
-+#else
-+#if defined(__FreeBSD__) && defined(EXT2_OS_FREEBSD)
-+#define CREATOR_OS EXT2_OS_FREEBSD
-+#define CREATOR_OS_NAME "freebsd"
-+#else
-+#if defined(LITES) && defined(EXT2_OS_LITES)
-+#define CREATOR_OS EXT2_OS_LITES
-+#define CREATOR_OS_NAME "lites"
-+#else
-+#define CREATOR_OS EXT2_OS_LINUX /* by default */
-+#define CREATOR_OS_NAME "linux"
-+#endif /* defined(LITES) && defined(EXT2_OS_LITES) */
-+#endif /* defined(__FreeBSD__) && defined(EXT2_OS_FREEBSD) */
-+#endif /* defined(__GNU__) && defined(EXT2_OS_HURD) */
-+#endif /* defined(__linux__) && defined(EXT2_OS_LINUX) */
-+
-
- // inode block size (why is it != BLOCKSIZE ?!?)
- /* The field i_blocks in the ext2 inode stores the number of data blocks
-@@ -190,6 +225,14 @@
- #define EXT2_TIND_BLOCK 14 // triple indirect block
- #define EXT2_INIT_BLOCK 0xFFFFFFFF // just initialized (not really a block address)
-
-+// codes for operating systems
-+
-+#define EXT2_OS_LINUX 0
-+#define EXT2_OS_HURD 1
-+#define EXT2_OS_MASIX 2
-+#define EXT2_OS_FREEBSD 3
-+#define EXT2_OS_LITES 4
-+
- // end of a block walk
-
- #define WALK_END 0xFFFFFFFE
-@@ -227,44 +270,46 @@
- #define FM_IWOTH 0000002 // write
- #define FM_IXOTH 0000001 // execute
-
--// options
--
--#define OP_HOLES 0x01 // make files with holes
--
- /* Defines for accessing group details */
-
- // Number of groups in the filesystem
- #define GRP_NBGROUPS(fs) \
-- (((fs)->sb.s_blocks_count - fs->sb.s_first_data_block + \
-- (fs)->sb.s_blocks_per_group - 1) / (fs)->sb.s_blocks_per_group)
-+ (((fs)->sb->s_blocks_count - fs->sb->s_first_data_block + \
-+ (fs)->sb->s_blocks_per_group - 1) / (fs)->sb->s_blocks_per_group)
-
- // Get group block bitmap (bbm) given the group number
--#define GRP_GET_GROUP_BBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_block_bitmap) )
-+#define GRP_GET_GROUP_BBM(fs,grp,bi) (get_blk((fs),(grp)->bg_block_bitmap,(bi)))
-+#define GRP_PUT_GROUP_BBM(bi) ( put_blk((bi)) )
-
- // Get group inode bitmap (ibm) given the group number
--#define GRP_GET_GROUP_IBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_inode_bitmap) )
--
-+#define GRP_GET_GROUP_IBM(fs,grp,bi) (get_blk((fs), (grp)->bg_inode_bitmap,(bi)))
-+#define GRP_PUT_GROUP_IBM(bi) ( put_blk((bi)) )
-+
- // Given an inode number find the group it belongs to
--#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb.s_inodes_per_group)
-+#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb->s_inodes_per_group)
-
- //Given an inode number get the inode bitmap that covers it
--#define GRP_GET_INODE_BITMAP(fs,nod) \
-- ( GRP_GET_GROUP_IBM((fs),GRP_GROUP_OF_INODE((fs),(nod))) )
-+#define GRP_GET_INODE_BITMAP(fs,nod,bi,gi) \
-+ ( GRP_GET_GROUP_IBM((fs),get_gd(fs,GRP_GROUP_OF_INODE((fs),(nod)),gi),bi) )
-+#define GRP_PUT_INODE_BITMAP(bi,gi) \
-+ ( GRP_PUT_GROUP_IBM((bi)),put_gd((gi)) )
-
- //Given an inode number find its offset within the inode bitmap that covers it
- #define GRP_IBM_OFFSET(fs,nod) \
-- ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb.s_inodes_per_group )
-+ ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb->s_inodes_per_group )
-
- // Given a block number find the group it belongs to
--#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb.s_blocks_per_group)
-+#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb->s_blocks_per_group)
-
--//Given a block number get the block bitmap that covers it
--#define GRP_GET_BLOCK_BITMAP(fs,blk) \
-- ( GRP_GET_GROUP_BBM((fs),GRP_GROUP_OF_BLOCK((fs),(blk))) )
-+//Given a block number get/put the block bitmap that covers it
-+#define GRP_GET_BLOCK_BITMAP(fs,blk,bi,gi) \
-+ ( GRP_GET_GROUP_BBM((fs),get_gd(fs,GRP_GROUP_OF_BLOCK((fs),(blk)),(gi)),(bi)) )
-+#define GRP_PUT_BLOCK_BITMAP(bi,gi) \
-+ ( GRP_PUT_GROUP_BBM((bi)),put_gd((gi)) )
-
- //Given a block number find its offset within the block bitmap that covers it
- #define GRP_BBM_OFFSET(fs,blk) \
-- ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb.s_blocks_per_group )
-+ ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb->s_blocks_per_group )
-
-
- // used types
-@@ -286,7 +331,9 @@
- // older solaris. Note that this is still not very portable, in that
- // the return value cannot be trusted.
-
--#if SCANF_CAN_MALLOC
-+#if 0 // SCANF_CAN_MALLOC
-+// C99 define "a" for floating point, so you can have runtime surprise
-+// according the library versions
- # define SCANF_PREFIX "a"
- # define SCANF_STRING(s) (&s)
- #else
-@@ -430,6 +477,17 @@
- ((val<<8)&0xFF0000) | (val<<24));
- }
-
-+static inline int
-+is_blk_empty(uint8 *b)
-+{
-+ uint32 i;
-+ uint32 *v = (uint32 *) b;
-+
-+ for(i = 0; i < BLOCKSIZE / 4; i++)
-+ if (*v++)
-+ return 0;
-+ return 1;
-+}
-
- // on-disk structures
- // this trick makes me declare things only once
-@@ -460,7 +518,22 @@
- udecl32(s_creator_os) /* Indicator of which OS created the filesystem */ \
- udecl32(s_rev_level) /* The revision level of the filesystem */ \
- udecl16(s_def_resuid) /* The default uid for reserved blocks */ \
-- udecl16(s_def_resgid) /* The default gid for reserved blocks */
-+ udecl16(s_def_resgid) /* The default gid for reserved blocks */ \
-+ /* rev 1 version fields start here */ \
-+ udecl32(s_first_ino) /* First non-reserved inode */ \
-+ udecl16(s_inode_size) /* size of inode structure */ \
-+ udecl16(s_block_group_nr) /* block group # of this superblock */ \
-+ udecl32(s_feature_compat) /* compatible feature set */ \
-+ udecl32(s_feature_incompat) /* incompatible feature set */ \
-+ udecl32(s_feature_ro_compat) /* readonly-compatible feature set */ \
-+ utdecl8(s_uuid,16) /* 128-bit uuid for volume */ \
-+ utdecl8(s_volume_name,16) /* volume name */ \
-+ utdecl8(s_last_mounted,64) /* directory where last mounted */ \
-+ udecl32(s_algorithm_usage_bitmap) /* For compression */
-+
-+#define EXT2_GOOD_OLD_FIRST_INO 11
-+#define EXT2_GOOD_OLD_INODE_SIZE 128
-+#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002
-
- #define groupdescriptor_decl \
- udecl32(bg_block_bitmap) /* Block number of the block bitmap */ \
-@@ -500,6 +573,7 @@
-
- #define decl8(x) int8 x;
- #define udecl8(x) uint8 x;
-+#define utdecl8(x,n) uint8 x[n];
- #define decl16(x) int16 x;
- #define udecl16(x) uint16 x;
- #define decl32(x) int32 x;
-@@ -509,7 +583,7 @@
- typedef struct
- {
- superblock_decl
-- uint32 s_reserved[235]; // Reserved
-+ uint32 s_reserved[205]; // Reserved
- } superblock;
-
- typedef struct
-@@ -527,10 +601,9 @@
- typedef struct
- {
- directory_decl
-- char d_name[0];
- } directory;
-
--typedef uint8 block[BLOCKSIZE];
-+typedef uint8 *block;
-
- /* blockwalker fields:
- The blockwalker is used to access all the blocks of a file (including
-@@ -567,23 +640,41 @@
- uint32 bptind;
- } blockwalker;
-
-+#define HDLINK_CNT 16
-+struct hdlink_s
-+{
-+ uint32 src_inode;
-+ uint32 dst_nod;
-+};
-+
-+struct hdlinks_s
-+{
-+ int32 count;
-+ struct hdlink_s *hdl;
-+};
-
- /* Filesystem structure that support groups */
--#if BLOCKSIZE == 1024
- typedef struct
- {
-- block zero; // The famous block 0
-- superblock sb; // The superblock
-- groupdescriptor gd[0]; // The group descriptors
-+ FILE *f;
-+ superblock *sb;
-+ int swapit;
-+ int32 hdlink_cnt;
-+ struct hdlinks_s hdlinks;
-+
-+ int holes;
-+
-+ listcache blks;
-+ listcache gds;
-+ listcache inodes;
-+ listcache blkmaps;
- } filesystem;
--#else
--#error UNHANDLED BLOCKSIZE
--#endif
-
- // now the endianness swap
-
- #undef decl8
- #undef udecl8
-+#undef utdecl8
- #undef decl16
- #undef udecl16
- #undef decl32
-@@ -592,28 +683,13 @@
-
- #define decl8(x)
- #define udecl8(x)
-+#define utdecl8(x,n)
- #define decl16(x) this->x = swab16(this->x);
- #define udecl16(x) this->x = swab16(this->x);
- #define decl32(x) this->x = swab32(this->x);
- #define udecl32(x) this->x = swab32(this->x);
- #define utdecl32(x,n) { int i; for(i=0; i<n; i++) this->x[i] = swab32(this->x[i]); }
-
--#define HDLINK_CNT 16
--static int32 hdlink_cnt = HDLINK_CNT;
--struct hdlink_s
--{
-- uint32 src_inode;
-- uint32 dst_nod;
--};
--
--struct hdlinks_s
--{
-- int32 count;
-- struct hdlink_s *hdl;
--};
--
--static struct hdlinks_s hdlinks;
--
- static void
- swap_sb(superblock *sb)
- {
-@@ -633,9 +709,24 @@
- static void
- swap_nod(inode *nod)
- {
-+ uint32 nblk;
-+
- #define this nod
- inode_decl
- #undef this
-+
-+ // block and character inodes store the major and minor in the
-+ // i_block, so we need to unswap to get those. Also, if it's
-+ // zero iblocks, put the data back like it belongs.
-+ nblk = nod->i_blocks / INOBLK;
-+ if ((nod->i_size && !nblk)
-+ || ((nod->i_mode & FM_IFBLK) == FM_IFBLK)
-+ || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
-+ {
-+ int i;
-+ for(i = 0; i <= EXT2_TIND_BLOCK; i++)
-+ nod->i_block[i] = swab32(nod->i_block[i]);
-+ }
- }
-
- static void
-@@ -657,6 +748,7 @@
-
- #undef decl8
- #undef udecl8
-+#undef utdecl8
- #undef decl16
- #undef udecl16
- #undef decl32
-@@ -770,15 +862,15 @@
- }
-
- int
--is_hardlink(ino_t inode)
-+is_hardlink(filesystem *fs, ino_t inode)
- {
- int i;
-
-- for(i = 0; i < hdlinks.count; i++) {
-- if(hdlinks.hdl[i].src_inode == inode)
-+ for(i = 0; i < fs->hdlinks.count; i++) {
-+ if(fs->hdlinks.hdl[i].src_inode == inode)
- return i;
- }
-- return -1;
-+ return -1;
- }
-
- // printf helper macro
-@@ -789,6 +881,8 @@
- get_workblk(void)
- {
- unsigned char* b=calloc(1,BLOCKSIZE);
-+ if (!b)
-+ error_msg_and_die("get_workblk() failed, out of memory");
- return b;
- }
- static inline void
-@@ -811,24 +905,464 @@
- return b[(item-1) / 8] & (1 << ((item-1) % 8));
- }
-
--// return a given block from a filesystem
-+// Used by get_blk/put_blk to hold information about a block owned
-+// by the user.
-+typedef struct
-+{
-+ cache_link link;
-+
-+ filesystem *fs;
-+ uint32 blk;
-+ uint8 *b;
-+ uint32 usecount;
-+} blk_info;
-+
-+#define MAX_FREE_CACHE_BLOCKS 100
-+
-+static uint32
-+blk_elem_val(cache_link *elem)
-+{
-+ blk_info *bi = container_of(elem, blk_info, link);
-+ return bi->blk;
-+}
-+
-+static void
-+blk_freed(cache_link *elem)
-+{
-+ blk_info *bi = container_of(elem, blk_info, link);
-+
-+ if (fseeko(bi->fs->f, ((off_t) bi->blk) * BLOCKSIZE, SEEK_SET))
-+ perror_msg_and_die("fseek");
-+ if (fwrite(bi->b, BLOCKSIZE, 1, bi->fs->f) != 1)
-+ perror_msg_and_die("get_blk: write");
-+ free(bi->b);
-+ free(bi);
-+}
-+
-+// Return a given block from a filesystem. Make sure to call
-+// put_blk when you are done with it.
- static inline uint8 *
--get_blk(filesystem *fs, uint32 blk)
-+get_blk(filesystem *fs, uint32 blk, blk_info **rbi)
- {
-- return (uint8*)fs + blk*BLOCKSIZE;
-+ cache_link *curr;
-+ blk_info *bi;
-+
-+ if (blk >= fs->sb->s_blocks_count)
-+ error_msg_and_die("Internal error, block out of range");
-+
-+ curr = cache_find(&fs->blks, blk);
-+ if (curr) {
-+ bi = container_of(curr, blk_info, link);
-+ bi->usecount++;
-+ goto out;
-+ }
-+
-+ bi = malloc(sizeof(*bi));
-+ if (!bi)
-+ error_msg_and_die("get_blk: out of memory");
-+ bi->fs = fs;
-+ bi->blk = blk;
-+ bi->usecount = 1;
-+ bi->b = malloc(BLOCKSIZE);
-+ if (!bi->b)
-+ error_msg_and_die("get_blk: out of memory");
-+ cache_add(&fs->blks, &bi->link);
-+ if (fseeko(fs->f, ((off_t) blk) * BLOCKSIZE, SEEK_SET))
-+ perror_msg_and_die("fseek");
-+ if (fread(bi->b, BLOCKSIZE, 1, fs->f) != 1) {
-+ if (ferror(fs->f))
-+ perror_msg_and_die("fread");
-+ memset(bi->b, 0, BLOCKSIZE);
-+ }
-+
-+out:
-+ *rbi = bi;
-+ return bi->b;
- }
-
- // return a given inode from a filesystem
--static inline inode *
--get_nod(filesystem *fs, uint32 nod)
-+static inline void
-+put_blk(blk_info *bi)
-+{
-+ if (bi->usecount == 0)
-+ error_msg_and_die("Internal error: put_blk usecount zero");
-+ bi->usecount--;
-+ if (bi->usecount == 0)
-+ /* Free happens in the cache code */
-+ cache_item_set_unused(&bi->fs->blks, &bi->link);
-+}
-+
-+typedef struct
- {
-- int grp,offset;
-+ cache_link link;
-+
-+ filesystem *fs;
-+ int gds;
-+ blk_info *bi;
-+ groupdescriptor *gd;
-+ uint32 usecount;
-+} gd_info;
-+
-+#define MAX_FREE_CACHE_GDS 100
-+
-+static uint32
-+gd_elem_val(cache_link *elem)
-+{
-+ gd_info *gi = container_of(elem, gd_info, link);
-+ return gi->gds;
-+}
-+
-+static void
-+gd_freed(cache_link *elem)
-+{
-+ gd_info *gi = container_of(elem, gd_info, link);
-+
-+ if (gi->fs->swapit)
-+ swap_gd(gi->gd);
-+ put_blk(gi->bi);
-+ free(gi);
-+}
-+
-+#define GDS_START ((SUPERBLOCK_OFFSET + SUPERBLOCK_SIZE + BLOCKSIZE - 1) / BLOCKSIZE)
-+#define GDS_PER_BLOCK (BLOCKSIZE / sizeof(groupdescriptor))
-+// the group descriptors are aligned on the block size
-+static inline groupdescriptor *
-+get_gd(filesystem *fs, uint32 no, gd_info **rgi)
-+{
-+ uint32 gdblk;
-+ uint32 offset;
-+ gd_info *gi;
-+ cache_link *curr;
-+
-+ curr = cache_find(&fs->gds, no);
-+ if (curr) {
-+ gi = container_of(curr, gd_info, link);
-+ gi->usecount++;
-+ goto out;
-+ }
-+
-+ gi = malloc(sizeof(*gi));
-+ if (!gi)
-+ error_msg_and_die("get_gd: out of memory");
-+ gi->fs = fs;
-+ gi->gds = no;
-+ gi->usecount = 1;
-+ gdblk = GDS_START + (no / GDS_PER_BLOCK);
-+ offset = no % GDS_PER_BLOCK;
-+ gi->gd = ((groupdescriptor *) get_blk(fs, gdblk, &gi->bi)) + offset;
-+ cache_add(&fs->gds, &gi->link);
-+ if (fs->swapit)
-+ swap_gd(gi->gd);
-+ out:
-+ *rgi = gi;
-+
-+ return gi->gd;
-+}
-+
-+static inline void
-+put_gd(gd_info *gi)
-+{
-+ if (gi->usecount == 0)
-+ error_msg_and_die("Internal error: put_gd usecount zero");
-+
-+ gi->usecount--;
-+ if (gi->usecount == 0)
-+ /* Free happens in the cache code */
-+ cache_item_set_unused(&gi->fs->gds, &gi->link);
-+}
-+
-+// Used by get_blkmap/put_blkmap to hold information about an block map
-+// owned by the user.
-+typedef struct
-+{
-+ cache_link link;
-+
-+ filesystem *fs;
-+ uint32 blk;
-+ uint8 *b;
-+ blk_info *bi;
-+ uint32 usecount;
-+} blkmap_info;
-+
-+#define MAX_FREE_CACHE_BLOCKMAPS 100
-+
-+static uint32
-+blkmap_elem_val(cache_link *elem)
-+{
-+ blkmap_info *bmi = container_of(elem, blkmap_info, link);
-+ return bmi->blk;
-+}
-+
-+static void
-+blkmap_freed(cache_link *elem)
-+{
-+ blkmap_info *bmi = container_of(elem, blkmap_info, link);
-+
-+ if (bmi->fs->swapit)
-+ swap_block(bmi->b);
-+ put_blk(bmi->bi);
-+ free(bmi);
-+}
-+
-+// Return a given block map from a filesystem. Make sure to call
-+// put_blkmap when you are done with it.
-+static inline uint32 *
-+get_blkmap(filesystem *fs, uint32 blk, blkmap_info **rbmi)
-+{
-+ blkmap_info *bmi;
-+ cache_link *curr;
-+
-+ curr = cache_find(&fs->blkmaps, blk);
-+ if (curr) {
-+ bmi = container_of(curr, blkmap_info, link);
-+ bmi->usecount++;
-+ goto out;
-+ }
-+
-+ bmi = malloc(sizeof(*bmi));
-+ if (!bmi)
-+ error_msg_and_die("get_blkmap: out of memory");
-+ bmi->fs = fs;
-+ bmi->blk = blk;
-+ bmi->b = get_blk(fs, blk, &bmi->bi);
-+ bmi->usecount = 1;
-+ cache_add(&fs->blkmaps, &bmi->link);
-+
-+ if (fs->swapit)
-+ swap_block(bmi->b);
-+ out:
-+ *rbmi = bmi;
-+ return (uint32 *) bmi->b;
-+}
-+
-+static inline void
-+put_blkmap(blkmap_info *bmi)
-+{
-+ if (bmi->usecount == 0)
-+ error_msg_and_die("Internal error: put_blkmap usecount zero");
-+
-+ bmi->usecount--;
-+ if (bmi->usecount == 0)
-+ /* Free happens in the cache code */
-+ cache_item_set_unused(&bmi->fs->blkmaps, &bmi->link);
-+}
-+
-+// Used by get_nod/put_nod to hold information about an inode owned
-+// by the user.
-+typedef struct
-+{
-+ cache_link link;
-+
-+ filesystem *fs;
-+ uint32 nod;
-+ uint8 *b;
-+ blk_info *bi;
- inode *itab;
-+ uint32 usecount;
-+} nod_info;
-+
-+#define MAX_FREE_CACHE_INODES 100
-+
-+static uint32
-+inode_elem_val(cache_link *elem)
-+{
-+ nod_info *ni = container_of(elem, nod_info, link);
-+ return ni->nod;
-+}
-+
-+static void
-+inode_freed(cache_link *elem)
-+{
-+ nod_info *ni = container_of(elem, nod_info, link);
-+
-+ if (ni->fs->swapit)
-+ swap_nod(ni->itab);
-+ put_blk(ni->bi);
-+ free(ni);
-+}
-+
-+#define INODES_PER_BLOCK (BLOCKSIZE / sizeof(inode))
-
-- offset = GRP_IBM_OFFSET(fs,nod);
-+// return a given inode from a filesystem
-+static inline inode *
-+get_nod(filesystem *fs, uint32 nod, nod_info **rni)
-+{
-+ uint32 grp, boffset, offset;
-+ cache_link *curr;
-+ groupdescriptor *gd;
-+ gd_info *gi;
-+ nod_info *ni;
-+
-+ curr = cache_find(&fs->inodes, nod);
-+ if (curr) {
-+ ni = container_of(curr, nod_info, link);
-+ ni->usecount++;
-+ goto out;
-+ }
-+
-+ ni = malloc(sizeof(*ni));
-+ if (!ni)
-+ error_msg_and_die("get_nod: out of memory");
-+ ni->fs = fs;
-+ ni->nod = nod;
-+ ni->usecount = 1;
-+ cache_add(&fs->inodes, &ni->link);
-+
-+ offset = GRP_IBM_OFFSET(fs,nod) - 1;
-+ boffset = offset / INODES_PER_BLOCK;
-+ offset %= INODES_PER_BLOCK;
- grp = GRP_GROUP_OF_INODE(fs,nod);
-- itab = (inode *)get_blk(fs, fs->gd[grp].bg_inode_table);
-- return itab+offset-1;
-+ gd = get_gd(fs, grp, &gi);
-+ ni->b = get_blk(fs, gd->bg_inode_table + boffset, &ni->bi);
-+ ni->itab = ((inode *) ni->b) + offset;
-+ if (fs->swapit)
-+ swap_nod(ni->itab);
-+ put_gd(gi);
-+ out:
-+ *rni = ni;
-+ return ni->itab;
-+}
-+
-+static inline void
-+put_nod(nod_info *ni)
-+{
-+ if (ni->usecount == 0)
-+ error_msg_and_die("Internal error: put_nod usecount zero");
-+
-+ ni->usecount--;
-+ if (ni->usecount == 0)
-+ /* Free happens in the cache code */
-+ cache_item_set_unused(&ni->fs->inodes, &ni->link);
-+}
-+
-+// Used to hold state information while walking a directory inode.
-+typedef struct
-+{
-+ directory d;
-+ filesystem *fs;
-+ uint32 nod;
-+ directory *last_d;
-+ uint8 *b;
-+ blk_info *bi;
-+} dirwalker;
-+
-+// Start a directory walk on the given inode. You must pass in a
-+// dirwalker structure, then use that dirwalker for future operations.
-+// Call put_dir when you are done walking the directory.
-+static inline directory *
-+get_dir(filesystem *fs, uint32 nod, dirwalker *dw)
-+{
-+ dw->fs = fs;
-+ dw->b = get_blk(fs, nod, &dw->bi);
-+ dw->nod = nod;
-+ dw->last_d = (directory *) dw->b;
-+
-+ memcpy(&dw->d, dw->last_d, sizeof(directory));
-+ if (fs->swapit)
-+ swap_dir(&dw->d);
-+ return &dw->d;
-+}
-+
-+// Move to the next directory.
-+static inline directory *
-+next_dir(dirwalker *dw)
-+{
-+ directory *next_d = (directory *)((int8*)dw->last_d + dw->d.d_rec_len);
-+
-+ if (dw->fs->swapit)
-+ swap_dir(&dw->d);
-+ memcpy(dw->last_d, &dw->d, sizeof(directory));
-+
-+ if (((int8 *) next_d) >= ((int8 *) dw->b + BLOCKSIZE))
-+ return NULL;
-+
-+ dw->last_d = next_d;
-+ memcpy(&dw->d, next_d, sizeof(directory));
-+ if (dw->fs->swapit)
-+ swap_dir(&dw->d);
-+ return &dw->d;
-+}
-+
-+// Call then when you are done with the directory walk.
-+static inline void
-+put_dir(dirwalker *dw)
-+{
-+ if (dw->fs->swapit)
-+ swap_dir(&dw->d);
-+ memcpy(dw->last_d, &dw->d, sizeof(directory));
-+
-+ if (dw->nod == 0)
-+ free_workblk(dw->b);
-+ else
-+ put_blk(dw->bi);
-+}
-+
-+// Create a new directory block with the given inode as it's destination
-+// and append it to the current dirwalker.
-+static directory *
-+new_dir(filesystem *fs, uint32 dnod, const char *name, int nlen, dirwalker *dw)
-+{
-+ directory *d;
-+
-+ dw->fs = fs;
-+ dw->b = get_workblk();
-+ dw->nod = 0;
-+ dw->last_d = (directory *) dw->b;
-+ d = &dw->d;
-+ d->d_inode = dnod;
-+ d->d_rec_len = BLOCKSIZE;
-+ d->d_name_len = nlen;
-+ strncpy(((char *) dw->last_d) + sizeof(directory), name, nlen);
-+ return d;
-+}
-+
-+// Shrink the current directory entry, make a new one with the free
-+// space, and return the new directory entry (making it current).
-+static inline directory *
-+shrink_dir(dirwalker *dw, uint32 nod, const char *name, int nlen)
-+{
-+ int reclen, preclen;
-+ directory *d = &dw->d;
-+
-+ reclen = d->d_rec_len;
-+ d->d_rec_len = sizeof(directory) + rndup(d->d_name_len, 4);
-+ preclen = d->d_rec_len;
-+ reclen -= preclen;
-+ if (dw->fs->swapit)
-+ swap_dir(&dw->d);
-+ memcpy(dw->last_d, &dw->d, sizeof(directory));
-+
-+ dw->last_d = (directory *) (((int8 *) dw->last_d) + preclen);
-+ d->d_rec_len = reclen;
-+ d->d_inode = nod;
-+ d->d_name_len = nlen;
-+ strncpy(((char *) dw->last_d) + sizeof(directory), name, nlen);
-+
-+ return d;
-+}
-+
-+// Return the current block the directory is walking
-+static inline uint8 *
-+dir_data(dirwalker *dw)
-+{
-+ return dw->b;
-+}
-+
-+// Return the pointer to the name for the current directory
-+static inline char *
-+dir_name(dirwalker *dw)
-+{
-+ return ((char *) dw->last_d) + sizeof(directory);
-+}
-+
-+// Set the name for the current directory. Note that this doesn't
-+// verify that there is space for the directory name, you must do
-+// that yourself.
-+static void
-+dir_set_name(dirwalker *dw, const char *name, int nlen)
-+{
-+ dw->d.d_name_len = nlen;
-+ strncpy(((char *) dw->last_d) + sizeof(directory), name, nlen);
- }
-
- // allocate a given block/inode in the bitmap
-@@ -870,21 +1404,34 @@
- {
- uint32 bk=0;
- uint32 grp,nbgroups;
-+ blk_info *bi;
-+ groupdescriptor *gd;
-+ gd_info *gi;
-
- grp = GRP_GROUP_OF_INODE(fs,nod);
- nbgroups = GRP_NBGROUPS(fs);
-- if(!(bk = allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap), 0))) {
-- for(grp=0;grp<nbgroups && !bk;grp++)
-- bk=allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap),0);
-+ gd = get_gd(fs, grp, &gi);
-+ bk = allocate(GRP_GET_GROUP_BBM(fs, gd, &bi), 0);
-+ GRP_PUT_GROUP_BBM(bi);
-+ put_gd(gi);
-+ if (!bk) {
-+ for (grp=0; grp<nbgroups && !bk; grp++) {
-+ gd = get_gd(fs, grp, &gi);
-+ bk = allocate(GRP_GET_GROUP_BBM(fs, gd, &bi), 0);
-+ GRP_PUT_GROUP_BBM(bi);
-+ put_gd(gi);
-+ }
- grp--;
- }
- if (!bk)
- error_msg_and_die("couldn't allocate a block (no free space)");
-- if(!(fs->gd[grp].bg_free_blocks_count--))
-+ gd = get_gd(fs, grp, &gi);
-+ if(!(gd->bg_free_blocks_count--))
- error_msg_and_die("group descr %d. free blocks count == 0 (corrupted fs?)",grp);
-- if(!(fs->sb.s_free_blocks_count--))
-+ put_gd(gi);
-+ if(!(fs->sb->s_free_blocks_count--))
- error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
-- return fs->sb.s_blocks_per_group*grp + bk;
-+ return fs->sb->s_first_data_block + fs->sb->s_blocks_per_group*grp + (bk-1);
- }
-
- // free a block
-@@ -892,12 +1439,18 @@
- free_blk(filesystem *fs, uint32 bk)
- {
- uint32 grp;
--
-- grp = bk / fs->sb.s_blocks_per_group;
-- bk %= fs->sb.s_blocks_per_group;
-- deallocate(get_blk(fs,fs->gd[grp].bg_block_bitmap), bk);
-- fs->gd[grp].bg_free_blocks_count++;
-- fs->sb.s_free_blocks_count++;
-+ blk_info *bi;
-+ gd_info *gi;
-+ groupdescriptor *gd;
-+
-+ grp = bk / fs->sb->s_blocks_per_group;
-+ bk %= fs->sb->s_blocks_per_group;
-+ gd = get_gd(fs, grp, &gi);
-+ deallocate(GRP_GET_GROUP_BBM(fs, gd, &bi), bk);
-+ GRP_PUT_GROUP_BBM(bi);
-+ gd->bg_free_blocks_count++;
-+ put_gd(gi);
-+ fs->sb->s_free_blocks_count++;
- }
-
- // allocate an inode
-@@ -906,6 +1459,9 @@
- {
- uint32 nod,best_group=0;
- uint32 grp,nbgroups,avefreei;
-+ blk_info *bi;
-+ gd_info *gi, *bestgi;
-+ groupdescriptor *gd, *bestgd;
-
- nbgroups = GRP_NBGROUPS(fs);
-
-@@ -914,22 +1470,32 @@
- /* find the one with the most free blocks and allocate node there */
- /* Idea from find_group_dir in fs/ext2/ialloc.c in 2.4.19 kernel */
- /* We do it for all inodes. */
-- avefreei = fs->sb.s_free_inodes_count / nbgroups;
-+ avefreei = fs->sb->s_free_inodes_count / nbgroups;
-+ bestgd = get_gd(fs, best_group, &bestgi);
- for(grp=0; grp<nbgroups; grp++) {
-- if (fs->gd[grp].bg_free_inodes_count < avefreei ||
-- fs->gd[grp].bg_free_inodes_count == 0)
-+ gd = get_gd(fs, grp, &gi);
-+ if (gd->bg_free_inodes_count < avefreei ||
-+ gd->bg_free_inodes_count == 0) {
-+ put_gd(gi);
- continue;
-- if (!best_group ||
-- fs->gd[grp].bg_free_blocks_count > fs->gd[best_group].bg_free_blocks_count)
-+ }
-+ if (!best_group || gd->bg_free_blocks_count > bestgd->bg_free_blocks_count) {
-+ put_gd(bestgi);
- best_group = grp;
-+ bestgd = gd;
-+ bestgi = gi;
-+ } else
-+ put_gd(gi);
- }
-- if (!(nod = allocate(get_blk(fs,fs->gd[best_group].bg_inode_bitmap),0)))
-+ if (!(nod = allocate(GRP_GET_GROUP_IBM(fs, bestgd, &bi), 0)))
- error_msg_and_die("couldn't allocate an inode (no free inode)");
-- if(!(fs->gd[best_group].bg_free_inodes_count--))
-+ GRP_PUT_GROUP_IBM(bi);
-+ if(!(bestgd->bg_free_inodes_count--))
- error_msg_and_die("group descr. free blocks count == 0 (corrupted fs?)");
-- if(!(fs->sb.s_free_inodes_count--))
-+ put_gd(bestgi);
-+ if(!(fs->sb->s_free_inodes_count--))
- error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
-- return fs->sb.s_inodes_per_group*best_group+nod;
-+ return fs->sb->s_inodes_per_group*best_group+nod;
- }
-
- // print a bitmap allocation
-@@ -962,30 +1528,40 @@
- // used after being freed, so once you start
- // freeing blocks don't stop until the end of
- // the file. moreover, i_blocks isn't updated.
--// in fact, don't do that, just use extend_blk
- // if hole!=0, create a hole in the file
- static uint32
- walk_bw(filesystem *fs, uint32 nod, blockwalker *bw, int32 *create, uint32 hole)
- {
- uint32 *bkref = 0;
-+ uint32 bk = 0;
-+ blkmap_info *bmi1 = NULL, *bmi2 = NULL, *bmi3 = NULL;
- uint32 *b;
- int extend = 0, reduce = 0;
-+ inode *inod;
-+ nod_info *ni;
-+ uint32 *iblk;
-+
- if(create && (*create) < 0)
- reduce = 1;
-- if(bw->bnum >= get_nod(fs, nod)->i_blocks / INOBLK)
-+ inod = get_nod(fs, nod, &ni);
-+ if(bw->bnum >= inod->i_blocks / INOBLK)
- {
- if(create && (*create) > 0)
- {
- (*create)--;
- extend = 1;
- }
-- else
-+ else
-+ {
-+ put_nod(ni);
- return WALK_END;
-+ }
- }
-+ iblk = inod->i_block;
- // first direct block
- if(bw->bpdir == EXT2_INIT_BLOCK)
- {
-- bkref = &get_nod(fs, nod)->i_block[bw->bpdir = 0];
-+ bkref = &iblk[bw->bpdir = 0];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free first block
-@@ -994,7 +1570,7 @@
- // direct block
- else if(bw->bpdir < EXT2_NDIR_BLOCKS)
- {
-- bkref = &get_nod(fs, nod)->i_block[++bw->bpdir];
-+ bkref = &iblk[++bw->bpdir];
- if(extend) // allocate block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
- if(reduce) // free block
-@@ -1007,10 +1583,10 @@
- bw->bpdir = EXT2_IND_BLOCK;
- bw->bpind = 0;
- if(extend) // allocate indirect block
-- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
-+ iblk[bw->bpdir] = alloc_blk(fs,nod);
- if(reduce) // free indirect block
-- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ free_blk(fs, iblk[bw->bpdir]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
- bkref = &b[bw->bpind];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1021,7 +1597,7 @@
- else if((bw->bpdir == EXT2_IND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1))
- {
- bw->bpind++;
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
- bkref = &b[bw->bpind];
- if(extend) // allocate block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1036,15 +1612,15 @@
- bw->bpind = 0;
- bw->bpdind = 0;
- if(extend) // allocate double indirect block
-- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
-+ iblk[bw->bpdir] = alloc_blk(fs,nod);
- if(reduce) // free double indirect block
-- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ free_blk(fs, iblk[bw->bpdir]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
- if(extend) // allocate first indirect block
- b[bw->bpind] = alloc_blk(fs,nod);
- if(reduce) // free firstindirect block
- free_blk(fs, b[bw->bpind]);
-- b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ b = get_blkmap(fs, b[bw->bpind], &bmi2);
- bkref = &b[bw->bpdind];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1055,8 +1631,8 @@
- else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpdind < BLOCKSIZE/4 - 1))
- {
- bw->bpdind++;
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-- b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
-+ b = get_blkmap(fs, b[bw->bpind], &bmi2);
- bkref = &b[bw->bpdind];
- if(extend) // allocate block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1069,12 +1645,12 @@
- bw->bnum++;
- bw->bpdind = 0;
- bw->bpind++;
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
- if(extend) // allocate indirect block
- b[bw->bpind] = alloc_blk(fs,nod);
- if(reduce) // free indirect block
- free_blk(fs, b[bw->bpind]);
-- b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ b = get_blkmap(fs, b[bw->bpind], &bmi2);
- bkref = &b[bw->bpdind];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1094,20 +1670,20 @@
- bw->bpdind = 0;
- bw->bptind = 0;
- if(extend) // allocate triple indirect block
-- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
-+ iblk[bw->bpdir] = alloc_blk(fs,nod);
- if(reduce) // free triple indirect block
-- free_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ free_blk(fs, iblk[bw->bpdir]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
- if(extend) // allocate first double indirect block
- b[bw->bpind] = alloc_blk(fs,nod);
- if(reduce) // free first double indirect block
- free_blk(fs, b[bw->bpind]);
-- b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ b = get_blkmap(fs, b[bw->bpind], &bmi2);
- if(extend) // allocate first indirect block
- b[bw->bpdind] = alloc_blk(fs,nod);
- if(reduce) // free first indirect block
- free_blk(fs, b[bw->bpind]);
-- b = (uint32*)get_blk(fs, b[bw->bpdind]);
-+ b = get_blkmap(fs, b[bw->bpdind], &bmi3);
- bkref = &b[bw->bptind];
- if(extend) // allocate first data block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1121,9 +1697,9 @@
- (bw->bptind < BLOCKSIZE/4 -1) )
- {
- bw->bptind++;
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-- b = (uint32*)get_blk(fs, b[bw->bpind]);
-- b = (uint32*)get_blk(fs, b[bw->bpdind]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
-+ b = get_blkmap(fs, b[bw->bpind], &bmi2);
-+ b = get_blkmap(fs, b[bw->bpdind], &bmi3);
- bkref = &b[bw->bptind];
- if(extend) // allocate data block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1140,13 +1716,13 @@
- bw->bnum++;
- bw->bptind = 0;
- bw->bpdind++;
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-- b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
-+ b = get_blkmap(fs, b[bw->bpind], &bmi2);
- if(extend) // allocate single indirect block
- b[bw->bpdind] = alloc_blk(fs,nod);
- if(reduce) // free indirect block
- free_blk(fs, b[bw->bpind]);
-- b = (uint32*)get_blk(fs, b[bw->bpdind]);
-+ b = get_blkmap(fs, b[bw->bpdind], &bmi3);
- bkref = &b[bw->bptind];
- if(extend) // allocate first data block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1163,17 +1739,17 @@
- bw->bpdind = 0;
- bw->bptind = 0;
- bw->bpind++;
-- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ b = get_blkmap(fs, iblk[bw->bpdir], &bmi1);
- if(extend) // allocate double indirect block
- b[bw->bpind] = alloc_blk(fs,nod);
- if(reduce) // free double indirect block
- free_blk(fs, b[bw->bpind]);
-- b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ b = get_blkmap(fs, b[bw->bpind], &bmi2);
- if(extend) // allocate single indirect block
- b[bw->bpdind] = alloc_blk(fs,nod);
- if(reduce) // free indirect block
- free_blk(fs, b[bw->bpind]);
-- b = (uint32*)get_blk(fs, b[bw->bpdind]);
-+ b = get_blkmap(fs, b[bw->bpdind], &bmi3);
- bkref = &b[bw->bptind];
- if(extend) // allocate first block
- *bkref = hole ? 0 : alloc_blk(fs,nod);
-@@ -1184,56 +1760,105 @@
- error_msg_and_die("file too big !");
- /* End change for walking triple indirection */
-
-- if(*bkref)
-- {
-+ bk = *bkref;
-+ if (bmi3)
-+ put_blkmap(bmi3);
-+ if (bmi2)
-+ put_blkmap(bmi2);
-+ if (bmi1)
-+ put_blkmap(bmi1);
-+
-+ if(bk)
-+ {
-+ blk_info *bi;
-+ gd_info *gi;
-+ uint8 *block;
- bw->bnum++;
-- if(!reduce && !allocated(GRP_GET_BLOCK_BITMAP(fs,*bkref), GRP_BBM_OFFSET(fs,*bkref)))
-- error_msg_and_die("[block %d of inode %d is unallocated !]", *bkref, nod);
-+ block = GRP_GET_BLOCK_BITMAP(fs,bk,&bi,&gi);
-+ if(!reduce && !allocated(block, GRP_BBM_OFFSET(fs,bk)))
-+ error_msg_and_die("[block %d of inode %d is unallocated !]", bk, nod);
-+ GRP_PUT_BLOCK_BITMAP(bi, gi);
- }
- if(extend)
-- get_nod(fs, nod)->i_blocks = bw->bnum * INOBLK;
-- return *bkref;
-+ inod->i_blocks = bw->bnum * INOBLK;
-+ put_nod(ni);
-+ return bk;
- }
-
--// add blocks to an inode (file/dir/etc...)
--static void
--extend_blk(filesystem *fs, uint32 nod, block b, int amount)
-+typedef struct
- {
-- int create = amount;
-- blockwalker bw, lbw;
-- uint32 bk;
-- init_bw(&bw);
-- if(amount < 0)
-- {
-- uint32 i;
-- for(i = 0; i < get_nod(fs, nod)->i_blocks / INOBLK + amount; i++)
-- walk_bw(fs, nod, &bw, 0, 0);
-- while(walk_bw(fs, nod, &bw, &create, 0) != WALK_END)
-+ blockwalker bw;
-+ uint32 nod;
-+ nod_info *ni;
-+ inode *inod;
-+} inode_pos;
-+#define INODE_POS_TRUNCATE 0
-+#define INODE_POS_EXTEND 1
-+
-+// Call this to set up an ipos structure for future use with
-+// extend_inode_blk to append blocks to the given inode. If
-+// op is INODE_POS_TRUNCATE, the inode is truncated to zero size.
-+// If op is INODE_POS_EXTEND, the position is moved to the end
-+// of the inode's data blocks.
-+// Call inode_pos_finish when done with the inode_pos structure.
-+static void
-+inode_pos_init(filesystem *fs, inode_pos *ipos, uint32 nod, int op,
-+ blockwalker *endbw)
-+{
-+ blockwalker lbw;
-+
-+ init_bw(&ipos->bw);
-+ ipos->nod = nod;
-+ ipos->inod = get_nod(fs, nod, &ipos->ni);
-+ if (op == INODE_POS_TRUNCATE) {
-+ int32 create = -1;
-+ while(walk_bw(fs, nod, &ipos->bw, &create, 0) != WALK_END)
- /*nop*/;
-- get_nod(fs, nod)->i_blocks += amount * INOBLK;
-+ ipos->inod->i_blocks = 0;
- }
-- else
-+
-+ if (endbw)
-+ ipos->bw = *endbw;
-+ else {
-+ /* Seek to the end */
-+ init_bw(&ipos->bw);
-+ lbw = ipos->bw;
-+ while(walk_bw(fs, nod, &ipos->bw, 0, 0) != WALK_END)
-+ lbw = ipos->bw;
-+ ipos->bw = lbw;
-+ }
-+}
-+
-+// Clean up the inode_pos structure.
-+static void
-+inode_pos_finish(filesystem *fs, inode_pos *ipos)
-+{
-+ put_nod(ipos->ni);
-+}
-+
-+// add blocks to an inode (file/dir/etc...) at the given position.
-+// This will only work when appending to the end of an inode.
-+static void
-+extend_inode_blk(filesystem *fs, inode_pos *ipos, block b, int amount)
-+{
-+ uint32 bk;
-+ uint32 pos;
-+
-+ if (amount < 0)
-+ error_msg_and_die("extend_inode_blk: Got negative amount");
-+
-+ for (pos = 0; amount; pos += BLOCKSIZE)
- {
-- lbw = bw;
-- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
-- lbw = bw;
-- bw = lbw;
-- while(create)
-- {
-- int i, copyb = 0;
-- if(!(fs->sb.s_reserved[200] & OP_HOLES))
-- copyb = 1;
-- else
-- for(i = 0; i < BLOCKSIZE / 4; i++)
-- if(((int32*)(b + BLOCKSIZE * (amount - create)))[i])
-- {
-- copyb = 1;
-- break;
-- }
-- if((bk = walk_bw(fs, nod, &bw, &create, !copyb)) == WALK_END)
-- break;
-- if(copyb)
-- memcpy(get_blk(fs, bk), b + BLOCKSIZE * (amount - create - 1), BLOCKSIZE);
-+ int hole = (fs->holes && is_blk_empty(b + pos));
-+
-+ bk = walk_bw(fs, ipos->nod, &ipos->bw, &amount, hole);
-+ if (bk == WALK_END)
-+ error_msg_and_die("extend_inode_blk: extend failed");
-+ if (!hole) {
-+ blk_info *bi;
-+ uint8 *block = get_blk(fs, bk, &bi);
-+ memcpy(block, b + pos, BLOCKSIZE);
-+ put_blk(bi);
- }
- }
- }
-@@ -1242,15 +1867,17 @@
- static void
- add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name)
- {
-- blockwalker bw;
-+ blockwalker bw, lbw;
- uint32 bk;
-- uint8 *b;
- directory *d;
-+ dirwalker dw;
- int reclen, nlen;
- inode *node;
- inode *pnode;
-+ nod_info *dni, *ni;
-+ inode_pos ipos;
-
-- pnode = get_nod(fs, dnod);
-+ pnode = get_nod(fs, dnod, &dni);
- if((pnode->i_mode & FM_IFMT) != FM_IFDIR)
- error_msg_and_die("can't add '%s' to a non-directory", name);
- if(!*name)
-@@ -1262,52 +1889,52 @@
- if(reclen > BLOCKSIZE)
- error_msg_and_die("bad name '%s' (too long)", name);
- init_bw(&bw);
-+ lbw = bw;
- while((bk = walk_bw(fs, dnod, &bw, 0, 0)) != WALK_END) // for all blocks in dir
- {
-- b = get_blk(fs, bk);
- // for all dir entries in block
-- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
-+ for(d = get_dir(fs, bk, &dw); d; d = next_dir(&dw))
- {
- // if empty dir entry, large enough, use it
- if((!d->d_inode) && (d->d_rec_len >= reclen))
- {
- d->d_inode = nod;
-- node = get_nod(fs, nod);
-+ node = get_nod(fs, nod, &ni);
-+ dir_set_name(&dw, name, nlen);
-+ put_dir(&dw);
- node->i_links_count++;
-- d->d_name_len = nlen;
-- strncpy(d->d_name, name, nlen);
-- return;
-+ put_nod(ni);
-+ goto out;
- }
- // if entry with enough room (last one?), shrink it & use it
- if(d->d_rec_len >= (sizeof(directory) + rndup(d->d_name_len, 4) + reclen))
- {
-- reclen = d->d_rec_len;
-- d->d_rec_len = sizeof(directory) + rndup(d->d_name_len, 4);
-- reclen -= d->d_rec_len;
-- d = (directory*) (((int8*)d) + d->d_rec_len);
-- d->d_rec_len = reclen;
-- d->d_inode = nod;
-- node = get_nod(fs, nod);
-+ d = shrink_dir(&dw, nod, name, nlen);
-+ put_dir(&dw);
-+ node = get_nod(fs, nod, &ni);
- node->i_links_count++;
-- d->d_name_len = nlen;
-- strncpy(d->d_name, name, nlen);
-- return;
-+ put_nod(ni);
-+ goto out;
- }
- }
-+ put_dir(&dw);
-+ lbw = bw;
- }
- // we found no free entry in the directory, so we add a block
-- if(!(b = get_workblk()))
-- error_msg_and_die("get_workblk() failed.");
-- d = (directory*)b;
-- d->d_inode = nod;
-- node = get_nod(fs, nod);
-+ node = get_nod(fs, nod, &ni);
-+ d = new_dir(fs, nod, name, nlen, &dw);
- node->i_links_count++;
-- d->d_rec_len = BLOCKSIZE;
-- d->d_name_len = nlen;
-- strncpy(d->d_name, name, nlen);
-- extend_blk(fs, dnod, b, 1);
-- get_nod(fs, dnod)->i_size += BLOCKSIZE;
-- free_workblk(b);
-+ put_nod(ni);
-+ next_dir(&dw); // Force the data into the buffer
-+
-+ inode_pos_init(fs, &ipos, dnod, INODE_POS_EXTEND, &lbw);
-+ extend_inode_blk(fs, &ipos, dir_data(&dw), 1);
-+ inode_pos_finish(fs, &ipos);
-+
-+ put_dir(&dw);
-+ pnode->i_size += BLOCKSIZE;
-+out:
-+ put_nod(dni);
- }
-
- // find an entry in a directory
-@@ -1321,11 +1948,13 @@
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- {
- directory *d;
-- uint8 *b;
-- b = get_blk(fs, bk);
-- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
-- if(d->d_inode && (nlen == d->d_name_len) && !strncmp(d->d_name, name, nlen))
-+ dirwalker dw;
-+ for (d = get_dir(fs, bk, &dw); d; d=next_dir(&dw))
-+ if(d->d_inode && (nlen == d->d_name_len) && !strncmp(dir_name(&dw), name, nlen)) {
-+ put_dir(&dw);
- return d->d_inode;
-+ }
-+ put_dir(&dw);
- }
- return 0;
- }
-@@ -1356,47 +1985,55 @@
- return nod;
- }
-
-+// chmod an inode
-+void
-+chmod_fs(filesystem *fs, uint32 nod, uint16 mode, uint16 uid, uint16 gid)
-+{
-+ inode *node;
-+ nod_info *ni;
-+ node = get_nod(fs, nod, &ni);
-+ node->i_mode = (node->i_mode & ~FM_IMASK) | (mode & FM_IMASK);
-+ node->i_uid = uid;
-+ node->i_gid = gid;
-+ put_nod(ni);
-+}
-+
- // create a simple inode
- static uint32
- mknod_fs(filesystem *fs, uint32 parent_nod, const char *name, uint16 mode, uint16 uid, uint16 gid, uint8 major, uint8 minor, uint32 ctime, uint32 mtime)
- {
- uint32 nod;
- inode *node;
-- if((nod = find_dir(fs, parent_nod, name)))
-- {
-- node = get_nod(fs, nod);
-- if((node->i_mode & FM_IFMT) != (mode & FM_IFMT))
-- error_msg_and_die("node '%s' already exists and isn't of the same type", name);
-- node->i_mode = mode;
-- }
-- else
-+ nod_info *ni;
-+ gd_info *gi;
-+
-+ nod = alloc_nod(fs);
-+ node = get_nod(fs, nod, &ni);
-+ node->i_mode = mode;
-+ add2dir(fs, parent_nod, nod, name);
-+ switch(mode & FM_IFMT)
- {
-- nod = alloc_nod(fs);
-- node = get_nod(fs, nod);
-- node->i_mode = mode;
-- add2dir(fs, parent_nod, nod, name);
-- switch(mode & FM_IFMT)
-- {
-- case FM_IFLNK:
-- mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
-- break;
-- case FM_IFBLK:
-- case FM_IFCHR:
-- ((uint8*)get_nod(fs, nod)->i_block)[0] = minor;
-- ((uint8*)get_nod(fs, nod)->i_block)[1] = major;
-- break;
-- case FM_IFDIR:
-- add2dir(fs, nod, nod, ".");
-- add2dir(fs, nod, parent_nod, "..");
-- fs->gd[GRP_GROUP_OF_INODE(fs,nod)].bg_used_dirs_count++;
-- break;
-- }
-+ case FM_IFLNK:
-+ mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
-+ break;
-+ case FM_IFBLK:
-+ case FM_IFCHR:
-+ ((uint8*)node->i_block)[0] = minor;
-+ ((uint8*)node->i_block)[1] = major;
-+ break;
-+ case FM_IFDIR:
-+ add2dir(fs, nod, nod, ".");
-+ add2dir(fs, nod, parent_nod, "..");
-+ get_gd(fs,GRP_GROUP_OF_INODE(fs,nod),&gi)->bg_used_dirs_count++;
-+ put_gd(gi);
-+ break;
- }
- node->i_uid = uid;
- node->i_gid = gid;
- node->i_atime = mtime;
- node->i_ctime = ctime;
- node->i_mtime = mtime;
-+ put_nod(ni);
- return nod;
- }
-
-@@ -1413,33 +2050,73 @@
- mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 *b, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
- {
- uint32 nod = mknod_fs(fs, parent_nod, name, FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO, uid, gid, 0, 0, ctime, mtime);
-- extend_blk(fs, nod, 0, - (int)get_nod(fs, nod)->i_blocks / INOBLK);
-- get_nod(fs, nod)->i_size = size;
-- if(size <= 4 * (EXT2_TIND_BLOCK+1))
-- {
-- strncpy((char*)get_nod(fs, nod)->i_block, (char*)b, size);
-+ nod_info *ni;
-+ inode *node = get_nod(fs, nod, &ni);
-+ inode_pos ipos;
-+
-+ inode_pos_init(fs, &ipos, nod, INODE_POS_TRUNCATE, NULL);
-+ node->i_size = size;
-+ if(size < 4 * (EXT2_TIND_BLOCK+1))
-+ {
-+ strncpy((char*)node->i_block, (char*)b, size);
-+ ((char*)node->i_block)[size+1] = '\0';
-+ inode_pos_finish(fs, &ipos);
-+ put_nod(ni);
- return nod;
- }
-- extend_blk(fs, nod, b, rndup(size, BLOCKSIZE) / BLOCKSIZE);
-+ extend_inode_blk(fs, &ipos, b, rndup(size, BLOCKSIZE) / BLOCKSIZE);
-+ inode_pos_finish(fs, &ipos);
-+ put_nod(ni);
- return nod;
- }
-
-+static void
-+fs_upgrade_rev1_largefile(filesystem *fs)
-+{
-+ fs->sb->s_rev_level = 1;
-+ fs->sb->s_first_ino = EXT2_GOOD_OLD_FIRST_INO;
-+ fs->sb->s_inode_size = EXT2_GOOD_OLD_INODE_SIZE;
-+}
-+
-+#define COPY_BLOCKS 16
-+#define CB_SIZE (COPY_BLOCKS * BLOCKSIZE)
-+
- // make a file from a FILE*
- static uint32
--mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
-+mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, FILE *f, uid_t uid, gid_t gid, uint32 ctime, uint32 mtime)
- {
- uint8 * b;
- uint32 nod = mknod_fs(fs, parent_nod, name, mode|FM_IFREG, uid, gid, 0, 0, ctime, mtime);
-- extend_blk(fs, nod, 0, - (int)get_nod(fs, nod)->i_blocks / INOBLK);
-- get_nod(fs, nod)->i_size = size;
-- if (size) {
-- if(!(b = (uint8*)calloc(rndup(size, BLOCKSIZE), 1)))
-- error_msg_and_die("not enough mem to read file '%s'", name);
-- if(f)
-- fread(b, size, 1, f); // FIXME: ugly. use mmap() ...
-- extend_blk(fs, nod, b, rndup(size, BLOCKSIZE) / BLOCKSIZE);
-- free(b);
-- }
-+ nod_info *ni;
-+ inode *node = get_nod(fs, nod, &ni);
-+ off_t size = 0;
-+ size_t readbytes;
-+ inode_pos ipos;
-+ int fullsize;
-+
-+ b = malloc(CB_SIZE);
-+ if (!b)
-+ error_msg_and_die("mkfile_fs: out of memory");
-+ inode_pos_init(fs, &ipos, nod, INODE_POS_TRUNCATE, NULL);
-+ readbytes = fread(b, 1, CB_SIZE, f);
-+ while (readbytes) {
-+ fullsize = rndup(readbytes, BLOCKSIZE);
-+ // Fill to end of block with zeros.
-+ memset(b + readbytes, 0, fullsize - readbytes);
-+ extend_inode_blk(fs, &ipos, b, fullsize / BLOCKSIZE);
-+ size += readbytes;
-+ readbytes = fread(b, 1, CB_SIZE, f);
-+ }
-+ if (size > 0x7fffffff) {
-+ if (fs->sb->s_rev_level < 1)
-+ fs_upgrade_rev1_largefile(fs);
-+ fs->sb->s_feature_ro_compat |= EXT2_FEATURE_RO_COMPAT_LARGE_FILE;
-+ }
-+ node->i_dir_acl = size >> 32;
-+ node->i_size = size;
-+ inode_pos_finish(fs, &ipos);
-+ put_nod(ni);
-+ free(b);
- return nod;
- }
-
-@@ -1591,13 +2268,24 @@
- dname = malloc(len + 1);
- for(i = start; i < count; i++)
- {
-+ uint32 oldnod;
- SNPRINTF(dname, len, "%s%lu", name, i);
-- mknod_fs(fs, nod, dname, mode, uid, gid, major, minor + (i * increment - start), ctime, mtime);
-+ oldnod = find_dir(fs, nod, dname);
-+ if(oldnod)
-+ chmod_fs(fs, oldnod, mode, uid, gid);
-+ else
-+ mknod_fs(fs, nod, dname, mode, uid, gid, major, minor + (i * increment - start), ctime, mtime);
- }
- free(dname);
- }
- else
-- mknod_fs(fs, nod, name, mode, uid, gid, major, minor, ctime, mtime);
-+ {
-+ uint32 oldnod = find_dir(fs, nod, name);
-+ if(oldnod)
-+ chmod_fs(fs, oldnod, mode, uid, gid);
-+ else
-+ mknod_fs(fs, nod, name, mode, uid, gid, major, minor, ctime, mtime);
-+ }
- }
- }
- if (line)
-@@ -1643,6 +2331,10 @@
- switch(st.st_mode & S_IFMT)
- {
- case S_IFLNK:
-+ if((st.st_mode & S_IFMT) == S_IFREG || st.st_size >= 4 * (EXT2_TIND_BLOCK+1))
-+ stats->nblocks += (st.st_size + BLOCKSIZE - 1) / BLOCKSIZE;
-+ stats->ninodes++;
-+ break;
- case S_IFREG:
- if((st.st_mode & S_IFMT) == S_IFREG || st.st_size > 4 * (EXT2_TIND_BLOCK+1))
- stats->nblocks += (st.st_size + BLOCKSIZE - 1) / BLOCKSIZE;
-@@ -1657,19 +2349,33 @@
- if(chdir(dent->d_name) < 0)
- perror_msg_and_die(dent->d_name);
- add2fs_from_dir(fs, this_nod, squash_uids, squash_perms, fs_timestamp, stats);
-- chdir("..");
-+ if (chdir("..") == -1)
-+ perror_msg_and_die("..");
-+
- break;
- default:
- break;
- }
- else
- {
-+ if((nod = find_dir(fs, this_nod, name)))
-+ {
-+ error_msg("ignoring duplicate entry %s", name);
-+ if(S_ISDIR(st.st_mode)) {
-+ if(chdir(dent->d_name) < 0)
-+ perror_msg_and_die(name);
-+ add2fs_from_dir(fs, nod, squash_uids, squash_perms, fs_timestamp, stats);
-+ if (chdir("..") == -1)
-+ perror_msg_and_die("..");
-+ }
-+ continue;
-+ }
- save_nod = 0;
- /* Check for hardlinks */
- if (!S_ISDIR(st.st_mode) && !S_ISLNK(st.st_mode) && st.st_nlink > 1) {
-- int32 hdlink = is_hardlink(st.st_ino);
-+ int32 hdlink = is_hardlink(fs, st.st_ino);
- if (hdlink >= 0) {
-- add2dir(fs, this_nod, hdlinks.hdl[hdlink].dst_nod, name);
-+ add2dir(fs, this_nod, fs->hdlinks.hdl[hdlink].dst_nod, name);
- continue;
- } else {
- save_nod = 1;
-@@ -1697,8 +2403,12 @@
- free(lnk);
- break;
- case S_IFREG:
-- fh = xfopen(dent->d_name, "rb");
-- nod = mkfile_fs(fs, this_nod, name, mode, st.st_size, fh, uid, gid, ctime, mtime);
-+ fh = fopen(dent->d_name, "rb");
-+ if (!fh) {
-+ error_msg("Unable to open file %s", dent->d_name);
-+ break;
-+ }
-+ nod = mkfile_fs(fs, this_nod, name, mode, fh, uid, gid, ctime, mtime);
- fclose(fh);
- break;
- case S_IFDIR:
-@@ -1706,199 +2416,128 @@
- if(chdir(dent->d_name) < 0)
- perror_msg_and_die(name);
- add2fs_from_dir(fs, nod, squash_uids, squash_perms, fs_timestamp, stats);
-- chdir("..");
-+ if (chdir("..") == -1)
-+ perror_msg_and_die("..");
- break;
- default:
- error_msg("ignoring entry %s", name);
- }
- if (save_nod) {
-- if (hdlinks.count == hdlink_cnt) {
-- if ((hdlinks.hdl =
-- realloc (hdlinks.hdl, (hdlink_cnt + HDLINK_CNT) *
-+ if (fs->hdlinks.count == fs->hdlink_cnt) {
-+ if ((fs->hdlinks.hdl =
-+ realloc (fs->hdlinks.hdl, (fs->hdlink_cnt + HDLINK_CNT) *
- sizeof (struct hdlink_s))) == NULL) {
- error_msg_and_die("Not enough memory");
- }
-- hdlink_cnt += HDLINK_CNT;
-+ fs->hdlink_cnt += HDLINK_CNT;
- }
-- hdlinks.hdl[hdlinks.count].src_inode = st.st_ino;
-- hdlinks.hdl[hdlinks.count].dst_nod = nod;
-- hdlinks.count++;
-+ fs->hdlinks.hdl[fs->hdlinks.count].src_inode = st.st_ino;
-+ fs->hdlinks.hdl[fs->hdlinks.count].dst_nod = nod;
-+ fs->hdlinks.count++;
- }
- }
- }
- closedir(dh);
- }
-
--// endianness swap of x-indirect blocks
-+// Copy size blocks from src to dst, putting holes in the output
-+// file (if possible) if the input block is all zeros.
-+// Copy size blocks from src to dst, putting holes in the output
-+// file (if possible) if the input block is all zeros.
- static void
--swap_goodblocks(filesystem *fs, inode *nod)
-+copy_file(filesystem *fs, FILE *dst, FILE *src, size_t size)
- {
-- uint32 i,j;
-- int done=0;
-- uint32 *b,*b2;
-+ uint8 *b;
-
-- uint32 nblk = nod->i_blocks / INOBLK;
-- if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
-- for(i = 0; i <= EXT2_TIND_BLOCK; i++)
-- nod->i_block[i] = swab32(nod->i_block[i]);
-- if(nblk <= EXT2_IND_BLOCK)
-- return;
-- swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
-- if(nblk <= EXT2_DIND_BLOCK + BLOCKSIZE/4)
-- return;
-- /* Currently this will fail b'cos the number of blocks as stored
-- in i_blocks also includes the indirection blocks (see
-- walk_bw). But this function assumes that i_blocks only
-- stores the count of data blocks ( Actually according to
-- "Understanding the Linux Kernel" (Table 17-3 p502 1st Ed)
-- i_blocks IS supposed to store the count of data blocks). so
-- with a file of size 268K nblk would be 269.The above check
-- will be false even though double indirection hasn't been
-- started.This is benign as 0 means block 0 which has been
-- zeroed out and therefore points back to itself from any offset
-- */
-- // FIXME: I have fixed that, but I have the feeling the rest of
-- // ths function needs to be fixed for the same reasons - Xav
-- assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
-- for(i = 0; i < BLOCKSIZE/4; i++)
-- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i )
-- swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
-- swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
-- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
-- return;
-- /* Adding support for triple indirection */
-- b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
-- for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
-- b2 = (uint32*)get_blk(fs,b[i]);
-- for(j=0; j<BLOCKSIZE/4;j++) {
-- if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
-- (BLOCKSIZE/4)*(BLOCKSIZE/4) +
-- i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
-- j*(BLOCKSIZE/4)) )
-- swap_block(get_blk(fs,b2[j]));
-- else {
-- done = 1;
-- break;
-- }
-+ b = malloc(BLOCKSIZE);
-+ if (!b)
-+ error_msg_and_die("copy_file: out of memory");
-+ if (fseek(src, 0, SEEK_SET))
-+ perror_msg_and_die("fseek");
-+ if (ftruncate(fileno(dst), 0))
-+ perror_msg_and_die("copy_file: ftruncate");
-+ while (size > 0) {
-+ if (fread(b, BLOCKSIZE, 1, src) != 1)
-+ perror_msg_and_die("copy failed on read");
-+ if ((dst != stdout) && fs->holes && is_blk_empty(b)) {
-+ /* Empty block, just skip it */
-+ if (fseek(dst, BLOCKSIZE, SEEK_CUR))
-+ perror_msg_and_die("fseek");
-+ } else {
-+ if (fwrite(b, BLOCKSIZE, 1, dst) != 1)
-+ perror_msg_and_die("copy failed on write");
- }
-- swap_block((uint8 *)b2);
-+ size--;
- }
-- swap_block((uint8 *)b);
-- return;
-+ free(b);
- }
-
--static void
--swap_badblocks(filesystem *fs, inode *nod)
-+// Allocate a new filesystem structure, allocate internal memory,
-+// and initialize the contents.
-+static filesystem *
-+alloc_fs(int swapit, char *fname, uint32 nbblocks, FILE *srcfile)
- {
-- uint32 i,j;
-- int done=0;
-- uint32 *b,*b2;
-+ filesystem *fs;
-+ struct stat srcstat, dststat;
-
-- uint32 nblk = nod->i_blocks / INOBLK;
-- if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
-- for(i = 0; i <= EXT2_TIND_BLOCK; i++)
-- nod->i_block[i] = swab32(nod->i_block[i]);
-- if(nblk <= EXT2_IND_BLOCK)
-- return;
-- swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
-- if(nblk <= EXT2_DIND_BLOCK + BLOCKSIZE/4)
-- return;
-- /* See comment in swap_goodblocks */
-- assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
-- swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
-- for(i = 0; i < BLOCKSIZE/4; i++)
-- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i )
-- swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
-- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
-- return;
-- /* Adding support for triple indirection */
-- b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
-- swap_block((uint8 *)b);
-- for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
-- b2 = (uint32*)get_blk(fs,b[i]);
-- swap_block((uint8 *)b2);
-- for(j=0; j<BLOCKSIZE/4;j++) {
-- if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
-- (BLOCKSIZE/4)*(BLOCKSIZE/4) +
-- i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
-- j*(BLOCKSIZE/4)) )
-- swap_block(get_blk(fs,b2[j]));
-- else {
-- done = 1;
-- break;
-- }
-- }
-- }
-- return;
--}
-+ fs = malloc(sizeof(*fs));
-+ if (!fs)
-+ error_msg_and_die("not enough memory for filesystem");
-+ memset(fs, 0, sizeof(*fs));
-+ fs->swapit = swapit;
-+ cache_init(&fs->blks, MAX_FREE_CACHE_BLOCKS, blk_elem_val, blk_freed);
-+ cache_init(&fs->gds, MAX_FREE_CACHE_GDS, gd_elem_val, gd_freed);
-+ cache_init(&fs->blkmaps, MAX_FREE_CACHE_BLOCKMAPS,
-+ blkmap_elem_val, blkmap_freed);
-+ cache_init(&fs->inodes, MAX_FREE_CACHE_INODES,
-+ inode_elem_val, inode_freed);
-+ fs->hdlink_cnt = HDLINK_CNT;
-+ fs->hdlinks.hdl = calloc(sizeof(struct hdlink_s), fs->hdlink_cnt);
-+ if (!fs->hdlinks.hdl)
-+ error_msg_and_die("Not enough memory");
-+ fs->hdlinks.count = 0 ;
-
--// endianness swap of the whole filesystem
--static void
--swap_goodfs(filesystem *fs)
--{
-- uint32 i;
-- for(i = 1; i < fs->sb.s_inodes_count; i++)
-- {
-- inode *nod = get_nod(fs, i);
-- if(nod->i_mode & FM_IFDIR)
-- {
-- blockwalker bw;
-- uint32 bk;
-- init_bw(&bw);
-- while((bk = walk_bw(fs, i, &bw, 0, 0)) != WALK_END)
-- {
-- directory *d;
-- uint8 *b;
-- b = get_blk(fs, bk);
-- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + swab16(d->d_rec_len)))
-- swap_dir(d);
-- }
-- }
-- swap_goodblocks(fs, nod);
-- swap_nod(nod);
-- }
-- for(i=0;i<GRP_NBGROUPS(fs);i++)
-- swap_gd(&(fs->gd[i]));
-- swap_sb(&fs->sb);
-+ if (strcmp(fname, "-") == 0)
-+ fs->f = tmpfile();
-+ else if (srcfile) {
-+ if (fstat(fileno(srcfile), &srcstat))
-+ perror_msg_and_die("fstat srcfile");
-+ if (stat(fname, &dststat) == 0
-+ && srcstat.st_ino == dststat.st_ino
-+ && srcstat.st_dev == dststat.st_dev)
-+ {
-+ // source and destination are the same file, don't
-+ // truncate or copy, just use the file.
-+ fs->f = fopen(fname, "r+b");
-+ } else {
-+ fs->f = fopen(fname, "w+b");
-+ if (fs->f)
-+ copy_file(fs, fs->f, srcfile, nbblocks);
-+ }
-+ } else
-+ fs->f = fopen(fname, "w+b");
-+ if (!fs->f)
-+ perror_msg_and_die("opening %s", fname);
-+ return fs;
- }
-
-+/* Make sure the output file is the right size */
- static void
--swap_badfs(filesystem *fs)
-+set_file_size(filesystem *fs)
- {
-- uint32 i;
-- swap_sb(&fs->sb);
-- for(i=0;i<GRP_NBGROUPS(fs);i++)
-- swap_gd(&(fs->gd[i]));
-- for(i = 1; i < fs->sb.s_inodes_count; i++)
-- {
-- inode *nod = get_nod(fs, i);
-- swap_nod(nod);
-- swap_badblocks(fs, nod);
-- if(nod->i_mode & FM_IFDIR)
-- {
-- blockwalker bw;
-- uint32 bk;
-- init_bw(&bw);
-- while((bk = walk_bw(fs, i, &bw, 0, 0)) != WALK_END)
-- {
-- directory *d;
-- uint8 *b;
-- b = get_blk(fs, bk);
-- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
-- swap_dir(d);
-- }
-- }
-- }
-+ if (ftruncate(fileno(fs->f),
-+ ((off_t) fs->sb->s_blocks_count) * BLOCKSIZE))
-+ perror_msg_and_die("set_file_size: ftruncate");
- }
-
- // initialize an empty filesystem
- static filesystem *
--init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes, uint32 fs_timestamp)
-+init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes,
-+ uint32 fs_timestamp, uint32 creator_os, int swapit, char *fname)
- {
- uint32 i;
- filesystem *fs;
-- directory *d;
-- uint8 * b;
-+ dirwalker dw;
- uint32 nod, first_block;
- uint32 nbgroups,nbinodes_per_group,overhead_per_group,free_blocks,
- free_blocks_per_group,nbblocks_per_group,min_nbgroups;
-@@ -1906,6 +2545,11 @@
- uint32 j;
- uint8 *bbm,*ibm;
- inode *itab0;
-+ blk_info *bi;
-+ nod_info *ni;
-+ groupdescriptor *gd;
-+ gd_info *gi;
-+ inode_pos ipos;
-
- if(nbresrvd < 0)
- error_msg_and_die("reserved blocks value is invalid. Note: options have changed, see --help or the man page.");
-@@ -1919,10 +2563,14 @@
- */
- min_nbgroups = (nbinodes + INODES_PER_GROUP - 1) / INODES_PER_GROUP;
-
-+ /* On filesystems with 1k block size, the bootloader area uses a full
-+ * block. For 2048 and up, the superblock can be fitted into block 0.
-+ */
-+ first_block = (BLOCKSIZE == 1024);
-+
- /* nbblocks is the total number of blocks in the filesystem.
- * a block group can have no more than 8192 blocks.
- */
-- first_block = (BLOCKSIZE == 1024);
- nbgroups = (nbblocks - first_block + BLOCKS_PER_GROUP - 1) / BLOCKS_PER_GROUP;
- if(nbgroups < min_nbgroups) nbgroups = min_nbgroups;
- nbblocks_per_group = rndup((nbblocks - first_block + nbgroups - 1)/nbgroups, 8);
-@@ -1934,51 +2582,59 @@
- gdsz = rndup(nbgroups*sizeof(groupdescriptor),BLOCKSIZE)/BLOCKSIZE;
- itblsz = nbinodes_per_group * sizeof(inode)/BLOCKSIZE;
- overhead_per_group = 3 /*sb,bbm,ibm*/ + gdsz + itblsz;
-- if((uint32)nbblocks - 1 < overhead_per_group * nbgroups)
-- error_msg_and_die("too much overhead, try fewer inodes or more blocks. Note: options have changed, see --help or the man page.");
-- free_blocks = nbblocks - overhead_per_group*nbgroups - 1 /*boot block*/;
-+ free_blocks = nbblocks - overhead_per_group*nbgroups - first_block;
- free_blocks_per_group = nbblocks_per_group - overhead_per_group;
-+ if(free_blocks < 0)
-+ error_msg_and_die("too much overhead, try fewer inodes or more blocks. Note: options have changed, see --help or the man page.");
-
-- if(!(fs = (filesystem*)calloc(nbblocks, BLOCKSIZE)))
-- error_msg_and_die("not enough memory for filesystem");
-+ fs = alloc_fs(swapit, fname, nbblocks, NULL);
-+ fs->sb = calloc(1, SUPERBLOCK_SIZE);
-+ if (!fs->sb)
-+ error_msg_and_die("error allocating header memory");
-
- // create the superblock for an empty filesystem
-- fs->sb.s_inodes_count = nbinodes_per_group * nbgroups;
-- fs->sb.s_blocks_count = nbblocks;
-- fs->sb.s_r_blocks_count = nbresrvd;
-- fs->sb.s_free_blocks_count = free_blocks;
-- fs->sb.s_free_inodes_count = fs->sb.s_inodes_count - EXT2_FIRST_INO + 1;
-- fs->sb.s_first_data_block = first_block;
-- fs->sb.s_log_block_size = BLOCKSIZE >> 11;
-- fs->sb.s_log_frag_size = BLOCKSIZE >> 11;
-- fs->sb.s_blocks_per_group = nbblocks_per_group;
-- fs->sb.s_frags_per_group = nbblocks_per_group;
-- fs->sb.s_inodes_per_group = nbinodes_per_group;
-- fs->sb.s_wtime = fs_timestamp;
-- fs->sb.s_magic = EXT2_MAGIC_NUMBER;
-- fs->sb.s_lastcheck = fs_timestamp;
-+ fs->sb->s_inodes_count = nbinodes_per_group * nbgroups;
-+ fs->sb->s_blocks_count = nbblocks;
-+ fs->sb->s_r_blocks_count = nbresrvd;
-+ fs->sb->s_free_blocks_count = free_blocks;
-+ fs->sb->s_free_inodes_count = fs->sb->s_inodes_count - EXT2_FIRST_INO + 1;
-+ fs->sb->s_first_data_block = first_block;
-+ fs->sb->s_log_block_size = BLOCKSIZE >> 11;
-+ fs->sb->s_log_frag_size = BLOCKSIZE >> 11;
-+ fs->sb->s_blocks_per_group = nbblocks_per_group;
-+ fs->sb->s_frags_per_group = nbblocks_per_group;
-+ fs->sb->s_inodes_per_group = nbinodes_per_group;
-+ fs->sb->s_wtime = fs_timestamp;
-+ fs->sb->s_magic = EXT2_MAGIC_NUMBER;
-+ fs->sb->s_lastcheck = fs_timestamp;
-+ fs->sb->s_creator_os = creator_os;
-+
-+ set_file_size(fs);
-
- // set up groupdescriptors
-- for(i=0, bbmpos=gdsz+2, ibmpos=bbmpos+1, itblpos=ibmpos+1;
-+ for(i=0, bbmpos=first_block+1+gdsz, ibmpos=bbmpos+1, itblpos=ibmpos+1;
- i<nbgroups;
- i++, bbmpos+=nbblocks_per_group, ibmpos+=nbblocks_per_group, itblpos+=nbblocks_per_group)
- {
-+ gd = get_gd(fs, i, &gi);
-+
- if(free_blocks > free_blocks_per_group) {
-- fs->gd[i].bg_free_blocks_count = free_blocks_per_group;
-+ gd->bg_free_blocks_count = free_blocks_per_group;
- free_blocks -= free_blocks_per_group;
- } else {
-- fs->gd[i].bg_free_blocks_count = free_blocks;
-+ gd->bg_free_blocks_count = free_blocks;
- free_blocks = 0; // this is the last block group
- }
- if(i)
-- fs->gd[i].bg_free_inodes_count = nbinodes_per_group;
-+ gd->bg_free_inodes_count = nbinodes_per_group;
- else
-- fs->gd[i].bg_free_inodes_count = nbinodes_per_group -
-+ gd->bg_free_inodes_count = nbinodes_per_group -
- EXT2_FIRST_INO + 2;
-- fs->gd[i].bg_used_dirs_count = 0;
-- fs->gd[i].bg_block_bitmap = bbmpos;
-- fs->gd[i].bg_inode_bitmap = ibmpos;
-- fs->gd[i].bg_inode_table = itblpos;
-+ gd->bg_used_dirs_count = 0;
-+ gd->bg_block_bitmap = bbmpos;
-+ gd->bg_inode_bitmap = ibmpos;
-+ gd->bg_inode_table = itblpos;
-+ put_gd(gi);
- }
-
- /* Mark non-filesystem blocks and inodes as allocated */
-@@ -1984,110 +2640,143 @@
- /* Mark non-filesystem blocks and inodes as allocated */
- /* Mark system blocks and inodes as allocated */
- for(i = 0; i<nbgroups;i++) {
--
- /* Block bitmap */
-- bbm = get_blk(fs,fs->gd[i].bg_block_bitmap);
-+ gd = get_gd(fs, i, &gi);
-+ bbm = GRP_GET_GROUP_BBM(fs, gd, &bi);
- //non-filesystem blocks
-- for(j = fs->gd[i].bg_free_blocks_count
-+ for(j = gd->bg_free_blocks_count
- + overhead_per_group + 1; j <= BLOCKSIZE * 8; j++)
- allocate(bbm, j);
- //system blocks
- for(j = 1; j <= overhead_per_group; j++)
- allocate(bbm, j);
--
-+ GRP_PUT_GROUP_BBM(bi);
-+
- /* Inode bitmap */
-- ibm = get_blk(fs,fs->gd[i].bg_inode_bitmap);
-+ ibm = GRP_GET_GROUP_IBM(fs, gd, &bi);
- //non-filesystem inodes
-- for(j = fs->sb.s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++)
-+ for(j = fs->sb->s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++)
- allocate(ibm, j);
-
- //system inodes
- if(i == 0)
- for(j = 1; j < EXT2_FIRST_INO; j++)
- allocate(ibm, j);
-+ GRP_PUT_GROUP_IBM(bi);
-+ put_gd(gi);
- }
-
- // make root inode and directory
- /* We have groups now. Add the root filesystem in group 0 */
- /* Also increment the directory count for group 0 */
-- fs->gd[0].bg_free_inodes_count--;
-- fs->gd[0].bg_used_dirs_count = 1;
-- itab0 = (inode *)get_blk(fs,fs->gd[0].bg_inode_table);
-- itab0[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRGRP | FM_IROTH | FM_IXGRP | FM_IXOTH;
-- itab0[EXT2_ROOT_INO-1].i_ctime = fs_timestamp;
-- itab0[EXT2_ROOT_INO-1].i_mtime = fs_timestamp;
-- itab0[EXT2_ROOT_INO-1].i_atime = fs_timestamp;
-- itab0[EXT2_ROOT_INO-1].i_size = BLOCKSIZE;
-- itab0[EXT2_ROOT_INO-1].i_links_count = 2;
--
-- if(!(b = get_workblk()))
-- error_msg_and_die("get_workblk() failed.");
-- d = (directory*)b;
-- d->d_inode = EXT2_ROOT_INO;
-- d->d_rec_len = sizeof(directory)+4;
-- d->d_name_len = 1;
-- strcpy(d->d_name, ".");
-- d = (directory*)(b + d->d_rec_len);
-- d->d_inode = EXT2_ROOT_INO;
-- d->d_rec_len = BLOCKSIZE - (sizeof(directory)+4);
-- d->d_name_len = 2;
-- strcpy(d->d_name, "..");
-- extend_blk(fs, EXT2_ROOT_INO, b, 1);
-+ gd = get_gd(fs, 0, &gi);
-+ gd->bg_free_inodes_count--;
-+ gd->bg_used_dirs_count = 1;
-+ put_gd(gi);
-+ itab0 = get_nod(fs, EXT2_ROOT_INO, &ni);
-+ itab0->i_mode = FM_IFDIR | FM_IRWXU | FM_IRGRP | FM_IROTH | FM_IXGRP | FM_IXOTH;
-+ itab0->i_ctime = fs_timestamp;
-+ itab0->i_mtime = fs_timestamp;
-+ itab0->i_atime = fs_timestamp;
-+ itab0->i_size = BLOCKSIZE;
-+ itab0->i_links_count = 2;
-+ put_nod(ni);
-+
-+ new_dir(fs, EXT2_ROOT_INO, ".", 1, &dw);
-+ shrink_dir(&dw, EXT2_ROOT_INO, "..", 2);
-+ next_dir(&dw); // Force the data into the buffer
-+ inode_pos_init(fs, &ipos, EXT2_ROOT_INO, INODE_POS_EXTEND, NULL);
-+ extend_inode_blk(fs, &ipos, dir_data(&dw), 1);
-+ inode_pos_finish(fs, &ipos);
-+ put_dir(&dw);
-
-- // make lost+found directory and reserve blocks
-- if(fs->sb.s_r_blocks_count)
-+ // make lost+found directory
-+ if(fs->sb->s_r_blocks_count)
- {
-- nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU, 0, 0, fs_timestamp, fs_timestamp);
-+ inode *node;
-+ uint8 *b;
-+
-+ nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU,
-+ 0, 0, fs_timestamp, fs_timestamp);
-+ b = get_workblk();
- memset(b, 0, BLOCKSIZE);
- ((directory*)b)->d_rec_len = BLOCKSIZE;
-- /* We run into problems with e2fsck if directory lost+found grows
-- * bigger than this. Need to find out why this happens - sundar
-- */
-- if (fs->sb.s_r_blocks_count > fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS )
-- fs->sb.s_r_blocks_count = fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS;
-- for(i = 1; i < fs->sb.s_r_blocks_count; i++)
-- extend_blk(fs, nod, b, 1);
-- get_nod(fs, nod)->i_size = fs->sb.s_r_blocks_count * BLOCKSIZE;
-+ inode_pos_init(fs, &ipos, nod, INODE_POS_EXTEND, NULL);
-+ // It is always 16 blocks to start out with
-+ for(i = 1; i < 16; i++)
-+ extend_inode_blk(fs, &ipos, b, 1);
-+ inode_pos_finish(fs, &ipos);
-+ free_workblk(b);
-+ node = get_nod(fs, nod, &ni);
-+ node->i_size = 16 * BLOCKSIZE;
-+ put_nod(ni);
- }
-- free_workblk(b);
-
- // administrative info
-- fs->sb.s_state = 1;
-- fs->sb.s_max_mnt_count = 20;
-+ fs->sb->s_state = 1;
-+ fs->sb->s_max_mnt_count = 20;
-
- // options for me
-- if(holes)
-- fs->sb.s_reserved[200] |= OP_HOLES;
-+ fs->holes = holes;
-
- return fs;
- }
-
- // loads a filesystem from disk
- static filesystem *
--load_fs(FILE * fh, int swapit)
-+load_fs(FILE *fh, int swapit, char *fname)
- {
-- size_t fssize;
-+ off_t fssize;
- filesystem *fs;
-- if((fseek(fh, 0, SEEK_END) < 0) || ((ssize_t)(fssize = ftell(fh)) == -1))
-+
-+ if((fseek(fh, 0, SEEK_END) < 0) || ((fssize = ftello(fh)) == -1))
- perror_msg_and_die("input filesystem image");
- rewind(fh);
-- fssize = (fssize + BLOCKSIZE - 1) / BLOCKSIZE;
-+ if ((fssize % BLOCKSIZE) != 0)
-+ error_msg_and_die("Input file not a multiple of block size");
-+ fssize /= BLOCKSIZE;
- if(fssize < 16) // totally arbitrary
- error_msg_and_die("too small filesystem");
-- if(!(fs = (filesystem*)calloc(fssize, BLOCKSIZE)))
-- error_msg_and_die("not enough memory for filesystem");
-- if(fread(fs, BLOCKSIZE, fssize, fh) != fssize)
-- perror_msg_and_die("input filesystem image");
-+ fs = alloc_fs(swapit, fname, fssize, fh);
-+
-+ /* Read and check the superblock, then read the superblock
-+ * and all the group descriptors */
-+ fs->sb = malloc(SUPERBLOCK_SIZE);
-+ if (!fs->sb)
-+ error_msg_and_die("error allocating header memory");
-+ if (fseek(fs->f, SUPERBLOCK_OFFSET, SEEK_SET))
-+ perror_msg_and_die("fseek");
-+ if (fread(fs->sb, SUPERBLOCK_SIZE, 1, fs->f) != 1)
-+ perror_msg_and_die("fread filesystem image superblock");
- if(swapit)
-- swap_badfs(fs);
-- if(fs->sb.s_rev_level || (fs->sb.s_magic != EXT2_MAGIC_NUMBER))
-+ swap_sb(fs->sb);
-+
-+ if((fs->sb->s_rev_level > 1) || (fs->sb->s_magic != EXT2_MAGIC_NUMBER))
- error_msg_and_die("not a suitable ext2 filesystem");
-+ if (fs->sb->s_rev_level > 0) {
-+ if (fs->sb->s_first_ino != EXT2_GOOD_OLD_FIRST_INO)
-+ error_msg_and_die("First inode incompatible");
-+ if (fs->sb->s_inode_size != EXT2_GOOD_OLD_INODE_SIZE)
-+ error_msg_and_die("inode size incompatible");
-+ if (fs->sb->s_feature_compat)
-+ error_msg_and_die("Unsupported compat features");
-+ if (fs->sb->s_feature_incompat)
-+ error_msg_and_die("Unsupported incompat features");
-+ if (fs->sb->s_feature_ro_compat
-+ & ~EXT2_FEATURE_RO_COMPAT_LARGE_FILE)
-+ error_msg_and_die("Unsupported ro compat features");
-+ }
-+
-+ set_file_size(fs);
- return fs;
- }
-
- static void
- free_fs(filesystem *fs)
- {
-+ free(fs->hdlinks.hdl);
-+ fclose(fs->f);
-+ free(fs->sb);
- free(fs);
- }
-
-@@ -2123,16 +2812,23 @@
- {
- blockwalker bw;
- uint32 bk;
-- int32 fsize = get_nod(fs, nod)->i_size;
-+ nod_info *ni;
-+ inode *node = get_nod(fs, nod, &ni);
-+ int32 fsize = node->i_size;
-+ blk_info *bi;
-+
- init_bw(&bw);
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- {
- if(fsize <= 0)
- error_msg_and_die("wrong size while saving inode %d", nod);
-- if(fwrite(get_blk(fs, bk), (fsize > BLOCKSIZE) ? BLOCKSIZE : fsize, 1, f) != 1)
-+ if(fwrite(get_blk(fs, bk, &bi),
-+ (fsize > BLOCKSIZE) ? BLOCKSIZE : fsize, 1, f) != 1)
- error_msg_and_die("error while saving inode %d", nod);
-+ put_blk(bi);
- fsize -= BLOCKSIZE;
- }
-+ put_nod(ni);
- }
-
-
-@@ -2141,8 +2837,11 @@
- print_dev(filesystem *fs, uint32 nod)
- {
- int minor, major;
-- minor = ((uint8*)get_nod(fs, nod)->i_block)[0];
-- major = ((uint8*)get_nod(fs, nod)->i_block)[1];
-+ nod_info *ni;
-+ inode *node = get_nod(fs, nod, &ni);
-+ minor = ((uint8*)node->i_block)[0];
-+ major = ((uint8*)node->i_block)[1];
-+ put_nod(ni);
- printf("major: %d, minor: %d\n", major, minor);
- }
-
-@@ -2157,17 +2856,15 @@
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- {
- directory *d;
-- uint8 *b;
-- b = get_blk(fs, bk);
-- for(d = (directory*)b; (int8*)d + sizeof(*d) < (int8*)b + BLOCKSIZE; d = (directory*)((int8*)d + d->d_rec_len))
-+ dirwalker dw;
-+ for (d = get_dir(fs, bk, &dw); d; d = next_dir(&dw))
- if(d->d_inode)
- {
-- int i;
- printf("entry '");
-- for(i = 0; i < d->d_name_len; i++)
-- putchar(d->d_name[i]);
-+ fwrite(dir_name(&dw), 1, d->d_name_len, stdout);
- printf("' (inode %d): rec_len: %d (name_len: %d)\n", d->d_inode, d->d_rec_len, d->d_name_len);
- }
-+ put_dir(&dw);
- }
- }
-
-@@ -2175,14 +2872,18 @@
- static void
- print_link(filesystem *fs, uint32 nod)
- {
-- if(!get_nod(fs, nod)->i_blocks)
-- printf("links to '%s'\n", (char*)get_nod(fs, nod)->i_block);
-+ nod_info *ni;
-+ inode *node = get_nod(fs, nod, &ni);
-+
-+ if(!node->i_blocks)
-+ printf("links to '%s'\n", (char*)node->i_block);
- else
- {
- printf("links to '");
- write_blocks(fs, nod, stdout);
- printf("'\n");
- }
-+ put_nod(ni);
- }
-
- // make a ls-like printout of permissions
-@@ -2251,8 +2952,13 @@
- {
- char *s;
- char perms[11];
-- if(!get_nod(fs, nod)->i_mode)
-- return;
-+ nod_info *ni;
-+ inode *node = get_nod(fs, nod, &ni);
-+ blk_info *bi;
-+ gd_info *gi;
-+
-+ if(!node->i_mode)
-+ goto out;
- switch(nod)
- {
- case EXT2_BAD_INO:
-@@ -2274,15 +2980,18 @@
- default:
- s = (nod >= EXT2_FIRST_INO) ? "normal" : "unknown reserved";
- }
-- printf("inode %d (%s, %d links): ", nod, s, get_nod(fs, nod)->i_links_count);
-- if(!allocated(GRP_GET_INODE_BITMAP(fs,nod), GRP_IBM_OFFSET(fs,nod)))
-+ printf("inode %d (%s, %d links): ", nod, s, node->i_links_count);
-+ if(!allocated(GRP_GET_INODE_BITMAP(fs,nod,&bi,&gi), GRP_IBM_OFFSET(fs,nod)))
- {
-+ GRP_PUT_INODE_BITMAP(bi,gi);
- printf("unallocated\n");
-- return;
-+ goto out;
- }
-- make_perms(get_nod(fs, nod)->i_mode, perms);
-- printf("%s, size: %d byte%s (%d block%s)\n", perms, plural(get_nod(fs, nod)->i_size), plural(get_nod(fs, nod)->i_blocks / INOBLK));
-- switch(get_nod(fs, nod)->i_mode & FM_IFMT)
-+ GRP_PUT_INODE_BITMAP(bi,gi);
-+ make_perms(node->i_mode, perms);
-+ printf("%s, size: %d byte%s (%d block%s)\n", perms,
-+ plural(node->i_size), plural(node->i_blocks / INOBLK));
-+ switch(node->i_mode & FM_IFMT)
- {
- case FM_IFSOCK:
- list_blocks(fs, nod);
-@@ -2310,6 +3019,8 @@
- list_blocks(fs, nod);
- }
- printf("Done with inode %d\n",nod);
-+out:
-+ put_nod(ni);
- }
-
- // describes various fields in a filesystem
-@@ -2317,49 +3028,65 @@
- print_fs(filesystem *fs)
- {
- uint32 i;
-+ blk_info *bi;
-+ groupdescriptor *gd;
-+ gd_info *gi;
- uint8 *ibm;
-
- printf("%d blocks (%d free, %d reserved), first data block: %d\n",
-- fs->sb.s_blocks_count, fs->sb.s_free_blocks_count,
-- fs->sb.s_r_blocks_count, fs->sb.s_first_data_block);
-- printf("%d inodes (%d free)\n", fs->sb.s_inodes_count,
-- fs->sb.s_free_inodes_count);
-+ fs->sb->s_blocks_count, fs->sb->s_free_blocks_count,
-+ fs->sb->s_r_blocks_count, fs->sb->s_first_data_block);
-+ printf("%d inodes (%d free)\n", fs->sb->s_inodes_count,
-+ fs->sb->s_free_inodes_count);
- printf("block size = %d, frag size = %d\n",
-- fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024,
-- fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024);
-+ fs->sb->s_log_block_size ? (fs->sb->s_log_block_size << 11) : 1024,
-+ fs->sb->s_log_frag_size ? (fs->sb->s_log_frag_size << 11) : 1024);
- printf("number of groups: %d\n",GRP_NBGROUPS(fs));
- printf("%d blocks per group,%d frags per group,%d inodes per group\n",
-- fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group,
-- fs->sb.s_inodes_per_group);
-+ fs->sb->s_blocks_per_group, fs->sb->s_frags_per_group,
-+ fs->sb->s_inodes_per_group);
- printf("Size of inode table: %d blocks\n",
-- (int)(fs->sb.s_inodes_per_group * sizeof(inode) / BLOCKSIZE));
-+ (int)(fs->sb->s_inodes_per_group * sizeof(inode) / BLOCKSIZE));
- for (i = 0; i < GRP_NBGROUPS(fs); i++) {
- printf("Group No: %d\n", i+1);
-+ gd = get_gd(fs, i, &gi);
- printf("block bitmap: block %d,inode bitmap: block %d, inode table: block %d\n",
-- fs->gd[i].bg_block_bitmap, fs->gd[i].bg_inode_bitmap,
-- fs->gd[i].bg_inode_table);
-+ gd->bg_block_bitmap,
-+ gd->bg_inode_bitmap,
-+ gd->bg_inode_table);
- printf("block bitmap allocation:\n");
-- print_bm(GRP_GET_GROUP_BBM(fs, i),fs->sb.s_blocks_per_group);
-+ print_bm(GRP_GET_GROUP_BBM(fs, gd, &bi),fs->sb->s_blocks_per_group);
-+ GRP_PUT_GROUP_BBM(bi);
- printf("inode bitmap allocation:\n");
-- ibm = GRP_GET_GROUP_IBM(fs, i);
-- print_bm(ibm, fs->sb.s_inodes_per_group);
-- for (i = 1; i <= fs->sb.s_inodes_per_group; i++)
-+ ibm = GRP_GET_GROUP_IBM(fs, gd, &bi);
-+ print_bm(ibm, fs->sb->s_inodes_per_group);
-+ for (i = 1; i <= fs->sb->s_inodes_per_group; i++)
- if (allocated(ibm, i))
- print_inode(fs, i);
-+ GRP_PUT_GROUP_IBM(bi);
-+ put_gd(gi);
- }
- }
-
- static void
--dump_fs(filesystem *fs, FILE * fh, int swapit)
-+finish_fs(filesystem *fs)
- {
-- uint32 nbblocks = fs->sb.s_blocks_count;
-- fs->sb.s_reserved[200] = 0;
-- if(swapit)
-- swap_goodfs(fs);
-- if(fwrite(fs, BLOCKSIZE, nbblocks, fh) < nbblocks)
-- perror_msg_and_die("output filesystem image");
-- if(swapit)
-- swap_badfs(fs);
-+ if (cache_flush(&fs->inodes))
-+ error_msg_and_die("entry mismatch on inode cache flush");
-+ if (cache_flush(&fs->blkmaps))
-+ error_msg_and_die("entry mismatch on blockmap cache flush");
-+ if (cache_flush(&fs->gds))
-+ error_msg_and_die("entry mismatch on gd cache flush");
-+ if (cache_flush(&fs->blks))
-+ error_msg_and_die("entry mismatch on block cache flush");
-+ if(fs->swapit)
-+ swap_sb(fs->sb);
-+ if (fseek(fs->f, SUPERBLOCK_OFFSET, SEEK_SET))
-+ perror_msg_and_die("fseek");
-+ if(fwrite(fs->sb, SUPERBLOCK_SIZE, 1, fs->f) != 1)
-+ perror_msg_and_die("output filesystem superblock");
-+ if(fs->swapit)
-+ swap_sb(fs->sb);
- }
-
- static void
-@@ -2419,10 +3146,12 @@
- " -x, --starting-image <image>\n"
- " -d, --root <directory>\n"
- " -D, --devtable <file>\n"
-+ " -B, --block-size <bytes>\n"
- " -b, --size-in-blocks <blocks>\n"
- " -i, --bytes-per-inode <bytes per inode>\n"
- " -N, --number-of-inodes <number of inodes>\n"
- " -m, --reserved-percentage <percentage of blocks to reserve>\n"
-+ " -o, --creator-os <os> 'linux' (default), 'hurd', 'freebsd' or number.\n"
- " -g, --block-map <path> Generate a block map file for this path.\n"
- " -e, --fill-value <value> Fill unallocated blocks with value.\n"
- " -z, --allow-holes Allow files with holes.\n"
-@@ -2444,15 +3173,34 @@
- extern char* optarg;
- extern int optind, opterr, optopt;
-
-+// parse the value for -o <os>
-+int
-+lookup_creator_os(const char *name)
-+{
-+ if (isdigit (*name))
-+ return atoi(name);
-+ else if (strcasecmp(name, "linux") == 0)
-+ return EXT2_OS_LINUX;
-+ else if (strcasecmp(name, "GNU") == 0 || strcasecmp(name, "hurd") == 0)
-+ return EXT2_OS_HURD;
-+ else if (strcasecmp(name, "freebsd") == 0)
-+ return EXT2_OS_FREEBSD;
-+ else if (strcasecmp(name, "lites") == 0)
-+ return EXT2_OS_LITES;
-+ else
-+ return EXT2_OS_LINUX;
-+}
-+
- int
- main(int argc, char **argv)
- {
-- int nbblocks = -1;
-+ long long nbblocks = -1;
- int nbinodes = -1;
- int nbresrvd = -1;
- float bytes_per_inode = -1;
- float reserved_frac = -1;
- int fs_timestamp = -1;
-+ int creator_os = CREATOR_OS;
- char * fsout = "-";
- char * fsin = 0;
- char * dopt[MAX_DOPT];
-@@ -2466,6 +3214,7 @@
- int squash_perms = 0;
- uint16 endian = 1;
- int bigendian = !*(char*)&endian;
-+ char *volumelabel = NULL;
- filesystem *fs;
- int i;
- int c;
-@@ -2476,13 +3225,16 @@
- { "starting-image", required_argument, NULL, 'x' },
- { "root", required_argument, NULL, 'd' },
- { "devtable", required_argument, NULL, 'D' },
-+ { "block-size", required_argument, NULL, 'B' },
- { "size-in-blocks", required_argument, NULL, 'b' },
- { "bytes-per-inode", required_argument, NULL, 'i' },
- { "number-of-inodes", required_argument, NULL, 'N' },
-+ { "volume-label", required_argument, NULL, 'L' },
- { "reserved-percentage", required_argument, NULL, 'm' },
-+ { "creator-os", required_argument, NULL, 'o' },
- { "block-map", required_argument, NULL, 'g' },
- { "fill-value", required_argument, NULL, 'e' },
-- { "allow-holes", no_argument, NULL, 'z' },
-+ { "allow-holes", no_argument, NULL, 'z' },
- { "faketime", no_argument, NULL, 'f' },
- { "squash", no_argument, NULL, 'q' },
- { "squash-uids", no_argument, NULL, 'U' },
-@@ -2495,11 +3247,11 @@
-
- app_name = argv[0];
-
-- while((c = getopt_long(argc, argv, "x:d:D:b:i:N:m:g:e:zfqUPhVv", longopts, NULL)) != EOF) {
-+ while((c = getopt_long(argc, argv, "x:d:D:B:b:i:N:L:m:o:g:e:zfqUPhVv", longopts, NULL)) != EOF) {
- #else
- app_name = argv[0];
-
-- while((c = getopt(argc, argv, "x:d:D:b:i:N:m:g:e:zfqUPhVv")) != EOF) {
-+ while((c = getopt(argc, argv, "x:d:D:B:b:i:N:L:m:o:g:e:zfqUPhVv")) != EOF) {
- #endif /* HAVE_GETOPT_LONG */
- switch(c)
- {
-@@ -2510,6 +3262,9 @@
- case 'D':
- dopt[didx++] = optarg;
- break;
-+ case 'B':
-+ blocksize = SI_atof(optarg);
-+ break;
- case 'b':
- nbblocks = SI_atof(optarg);
- break;
-@@ -2519,9 +3274,15 @@
- case 'N':
- nbinodes = SI_atof(optarg);
- break;
-+ case 'L':
-+ volumelabel = optarg;
-+ break;
- case 'm':
- reserved_frac = SI_atof(optarg) / 100;
- break;
-+ case 'o':
-+ creator_os = lookup_creator_os(optarg);
-+ break;
- case 'g':
- gopt[gidx++] = optarg;
- break;
-@@ -2565,21 +3326,21 @@
- error_msg_and_die("Not enough arguments. Try --help or else see the man page.");
- fsout = argv[optind];
-
-- hdlinks.hdl = (struct hdlink_s *)malloc(hdlink_cnt * sizeof(struct hdlink_s));
-- if (!hdlinks.hdl)
-- error_msg_and_die("Not enough memory");
-- hdlinks.count = 0 ;
-+ if(blocksize != 1024 && blocksize != 2048 && blocksize != 4096)
-+ error_msg_and_die("Valid block sizes: 1024, 2048 or 4096.");
-+ if(creator_os < 0)
-+ error_msg_and_die("Creator OS unknown.");
-
- if(fsin)
- {
- if(strcmp(fsin, "-"))
- {
- FILE * fh = xfopen(fsin, "rb");
-- fs = load_fs(fh, bigendian);
-+ fs = load_fs(fh, bigendian, fsout);
- fclose(fh);
- }
- else
-- fs = load_fs(stdin, bigendian);
-+ fs = load_fs(stdin, bigendian, fsout);
- }
- else
- {
-@@ -2609,16 +3370,29 @@
- }
- if(fs_timestamp == -1)
- fs_timestamp = time(NULL);
-- fs = init_fs(nbblocks, nbinodes, nbresrvd, holes, fs_timestamp);
-+ fs = init_fs(nbblocks, nbinodes, nbresrvd, holes,
-+ fs_timestamp, creator_os, bigendian, fsout);
- }
-+ if (volumelabel != NULL)
-+ strncpy((char *)fs->sb->s_volume_name, volumelabel,
-+ sizeof(fs->sb->s_volume_name));
-
- populate_fs(fs, dopt, didx, squash_uids, squash_perms, fs_timestamp, NULL);
-
- if(emptyval) {
- uint32 b;
-- for(b = 1; b < fs->sb.s_blocks_count; b++)
-- if(!allocated(GRP_GET_BLOCK_BITMAP(fs,b),GRP_BBM_OFFSET(fs,b)))
-- memset(get_blk(fs, b), emptyval, BLOCKSIZE);
-+ for(b = 1; b < fs->sb->s_blocks_count; b++) {
-+ blk_info *bi;
-+ gd_info *gi;
-+ if(!allocated(GRP_GET_BLOCK_BITMAP(fs,b,&bi,&gi),
-+ GRP_BBM_OFFSET(fs,b))) {
-+ blk_info *bi2;
-+ memset(get_blk(fs, b, &bi2), emptyval,
-+ BLOCKSIZE);
-+ put_blk(bi2);
-+ }
-+ GRP_PUT_BLOCK_BITMAP(bi,gi);
-+ }
- }
- if(verbose)
- print_fs(fs);
-@@ -2628,24 +3402,22 @@
- char fname[MAX_FILENAME];
- char *p;
- FILE *fh;
-+ nod_info *ni;
- if(!(nod = find_path(fs, EXT2_ROOT_INO, gopt[i])))
- error_msg_and_die("path %s not found in filesystem", gopt[i]);
- while((p = strchr(gopt[i], '/')))
- *p = '_';
- SNPRINTF(fname, MAX_FILENAME-1, "%s.blk", gopt[i]);
- fh = xfopen(fname, "wb");
-- fprintf(fh, "%d:", get_nod(fs, nod)->i_size);
-+ fprintf(fh, "%d:", get_nod(fs, nod, &ni)->i_size);
-+ put_nod(ni);
- flist_blocks(fs, nod, fh);
- fclose(fh);
- }
-- if(strcmp(fsout, "-"))
-- {
-- FILE * fh = xfopen(fsout, "wb");
-- dump_fs(fs, fh, bigendian);
-- fclose(fh);
-- }
-- else
-- dump_fs(fs, stdout, bigendian);
-+ finish_fs(fs);
-+ if(strcmp(fsout, "-") == 0)
-+ copy_file(fs, stdout, fs->f, fs->sb->s_blocks_count);
-+
- free_fs(fs);
- return 0;
- }
-Index: genext2fs-1.4.1/cache.h
-===================================================================
---- /dev/null
-+++ genext2fs-1.4.1/cache.h
-@@ -0,0 +1,128 @@
-+#ifndef __CACHE_H__
-+#define __CACHE_H__
-+
-+#include "list.h"
-+
-+#define CACHE_LISTS 256
-+
-+typedef struct
-+{
-+ list_elem link;
-+ list_elem lru_link;
-+} cache_link;
-+
-+typedef struct
-+{
-+ /* LRU list holds unused items */
-+ unsigned int lru_entries;
-+ list_elem lru_list;
-+ unsigned int max_free_entries;
-+
-+ unsigned int entries;
-+ list_elem lists[CACHE_LISTS];
-+ unsigned int (*elem_val)(cache_link *elem);
-+ void (*freed)(cache_link *elem);
-+} listcache;
-+
-+static inline void
-+cache_add(listcache *c, cache_link *elem)
-+{
-+ unsigned int hash = c->elem_val(elem) % CACHE_LISTS;
-+ int delcount = c->lru_entries - c->max_free_entries;
-+
-+ if (delcount > 0) {
-+ /* Delete some unused items. */
-+ list_elem *lru, *next;
-+ cache_link *l;
-+ list_for_each_elem_safe(&c->lru_list, lru, next) {
-+ l = container_of(lru, cache_link, lru_link);
-+ list_del(lru);
-+ list_del(&l->link);
-+ c->entries--;
-+ c->lru_entries--;
-+ c->freed(l);
-+ delcount--;
-+ if (delcount <= 0)
-+ break;
-+ }
-+ }
-+
-+ c->entries++;
-+ list_item_init(&elem->lru_link); /* Mark it not in the LRU list */
-+ list_add_after(&c->lists[hash], &elem->link);
-+}
-+
-+static inline void
-+cache_item_set_unused(listcache *c, cache_link *elem)
-+{
-+ list_add_before(&c->lru_list, &elem->lru_link);
-+ c->lru_entries++;
-+}
-+
-+static inline cache_link *
-+cache_find(listcache *c, unsigned int val)
-+{
-+ unsigned int hash = val % CACHE_LISTS;
-+ list_elem *elem;
-+
-+ list_for_each_elem(&c->lists[hash], elem) {
-+ cache_link *l = container_of(elem, cache_link, link);
-+ if (c->elem_val(l) == val) {
-+ if (!list_empty(&l->lru_link)) {
-+ /* It's in the unused list, remove it. */
-+ list_del(&l->lru_link);
-+ list_item_init(&l->lru_link);
-+ c->lru_entries--;
-+ }
-+ return l;
-+ }
-+ }
-+ return NULL;
-+}
-+
-+static inline int
-+cache_flush(listcache *c)
-+{
-+ list_elem *elem, *next;
-+ cache_link *l;
-+ int i;
-+
-+ list_for_each_elem_safe(&c->lru_list, elem, next) {
-+ l = container_of(elem, cache_link, lru_link);
-+ list_del(elem);
-+ list_del(&l->link);
-+ c->entries--;
-+ c->lru_entries--;
-+ c->freed(l);
-+ }
-+
-+ for (i = 0; i < CACHE_LISTS; i++) {
-+ list_for_each_elem_safe(&c->lists[i], elem, next) {
-+ l = container_of(elem, cache_link, link);
-+ list_del(&l->link);
-+ c->entries--;
-+ c->freed(l);
-+ }
-+ }
-+
-+ return c->entries || c->lru_entries;
-+}
-+
-+static inline void
-+cache_init(listcache *c, unsigned int max_free_entries,
-+ unsigned int (*elem_val)(cache_link *elem),
-+ void (*freed)(cache_link *elem))
-+{
-+ int i;
-+
-+ c->entries = 0;
-+ c->lru_entries = 0;
-+ c->max_free_entries = max_free_entries;
-+ list_init(&c->lru_list);
-+ for (i = 0; i < CACHE_LISTS; i++)
-+ list_init(&c->lists[i]);
-+ c->elem_val = elem_val;
-+ c->freed = freed;
-+}
-+
-+#endif /* __CACHE_H__ */
-Index: genext2fs-1.4.1/list.h
-===================================================================
---- /dev/null
-+++ genext2fs-1.4.1/list.h
-@@ -0,0 +1,78 @@
-+#ifndef __LIST_H__
-+#define __LIST_H__
-+
-+#if STDC_HEADERS
-+# include <stdlib.h>
-+# include <stddef.h>
-+#else
-+# if HAVE_STDLIB_H
-+# include <stdlib.h>
-+# endif
-+# if HAVE_STDDEF_H
-+# include <stddef.h>
-+# endif
-+#endif
-+
-+#ifndef offsetof
-+#define offsetof(st, m) \
-+ ((size_t) ( (char *)&((st *)(0))->m - (char *)0 ))
-+#endif
-+
-+#define container_of(ptr, type, member) ({ \
-+ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
-+ (type *)( (char *)__mptr - offsetof(type,member) );})
-+
-+typedef struct list_elem
-+{
-+ struct list_elem *next;
-+ struct list_elem *prev;
-+} list_elem;
-+
-+static inline void list_init(list_elem *list)
-+{
-+ list->next = list;
-+ list->prev = list;
-+}
-+
-+static inline void list_add_after(list_elem *pos, list_elem *elem)
-+{
-+ elem->next = pos->next;
-+ elem->prev = pos;
-+ pos->next->prev = elem;
-+ pos->next = elem;
-+}
-+
-+static inline void list_add_before(list_elem *pos, list_elem *elem)
-+{
-+ elem->prev = pos->prev;
-+ elem->next = pos;
-+ pos->prev->next = elem;
-+ pos->prev = elem;
-+}
-+
-+static inline void list_del(list_elem *elem)
-+{
-+ elem->next->prev = elem->prev;
-+ elem->prev->next = elem->next;
-+}
-+
-+static inline void list_item_init(list_elem *elem)
-+{
-+ elem->next = elem;
-+ elem->prev = elem;
-+}
-+
-+static inline int list_empty(list_elem *elem)
-+{
-+ return elem->next == elem;
-+}
-+
-+#define list_for_each_elem(list, curr) \
-+ for ((curr) = (list)->next; (curr) != (list); (curr) = (curr)->next)
-+
-+#define list_for_each_elem_safe(list, curr, next) \
-+ for ((curr) = (list)->next, (next) = (curr)->next; \
-+ (curr) != (list); \
-+ (curr) = (next), (next) = (curr)->next)
-+
-+#endif /* __LIST_H__ */
--- /dev/null
+genpart: return 0 if partition writen OK, with no do_magic
+
+If do_magic is false, we don't won't write the 0xaa55 magic.
+However, if we succesfully wrote the partition entry, we still
+want to return 0 to indicate success.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Cc: Robert Schwebel <r.schwebel@pengutronix.de>
+
+--
+Patch sent upstream, but no mailing list.
+Status: accepted upstream, not yet released.
+
+diff -durN host-genpart-1.0.2.orig/src/genpart.c host-genpart-1.0.2/src/genpart.c
+--- host-genpart-1.0.2.orig/src/genpart.c 2009-12-20 21:54:56.000000000 +0100
++++ host-genpart-1.0.2/src/genpart.c 2013-01-22 23:13:24.109752579 +0100
+@@ -92,6 +92,8 @@
+ if (do_magic) {
+ if (fwrite(&magic, 2, 1, stdout) > 0)
+ rc=0;
++ } else {
++ rc=0;
+ }
+ }
+ return rc;
+++ /dev/null
-genpart: return 0 if partition writen OK, with no do_magic
-
-If do_magic is false, we don't won't write the 0xaa55 magic.
-However, if we succesfully wrote the partition entry, we still
-want to return 0 to indicate success.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Cc: Robert Schwebel <r.schwebel@pengutronix.de>
-
---
-Patch sent upstream, but no mailing list.
-Status: accepted upstream, not yet released.
-
-diff -durN host-genpart-1.0.2.orig/src/genpart.c host-genpart-1.0.2/src/genpart.c
---- host-genpart-1.0.2.orig/src/genpart.c 2009-12-20 21:54:56.000000000 +0100
-+++ host-genpart-1.0.2/src/genpart.c 2013-01-22 23:13:24.109752579 +0100
-@@ -92,6 +92,8 @@
- if (do_magic) {
- if (fwrite(&magic, 2, 1, stdout) > 0)
- rc=0;
-+ } else {
-+ rc=0;
- }
- }
- return rc;
--- /dev/null
+---
+ Makefile | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+Index: genromfs-0.5.2/Makefile
+===================================================================
+--- genromfs-0.5.2.orig/Makefile
++++ genromfs-0.5.2/Makefile
+@@ -6,8 +6,6 @@
+ PACKAGE = genromfs
+ VERSION = 0.5.2
+ CC = gcc
+-CFLAGS = -O2 -Wall -DVERSION=\"$(VERSION)\"#-g#
+-LDFLAGS = -s#-g
+
+ DISTDIR = $(PACKAGE)-$(VERSION)
+
+@@ -24,7 +22,7 @@
+ $(CC) $(LDFLAGS) genromfs.o -o genromfs
+
+ .c.o:
+- $(CC) $(CFLAGS) $< -c -o $@
++ $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" $< -c -o $@
+
+ clean:
+ rm -f genromfs *.o
+++ /dev/null
----
- Makefile | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-Index: genromfs-0.5.2/Makefile
-===================================================================
---- genromfs-0.5.2.orig/Makefile
-+++ genromfs-0.5.2/Makefile
-@@ -6,8 +6,6 @@
- PACKAGE = genromfs
- VERSION = 0.5.2
- CC = gcc
--CFLAGS = -O2 -Wall -DVERSION=\"$(VERSION)\"#-g#
--LDFLAGS = -s#-g
-
- DISTDIR = $(PACKAGE)-$(VERSION)
-
-@@ -24,7 +22,7 @@
- $(CC) $(LDFLAGS) genromfs.o -o genromfs
-
- .c.o:
-- $(CC) $(CFLAGS) $< -c -o $@
-+ $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" $< -c -o $@
-
- clean:
- rm -f genromfs *.o
--- /dev/null
+--- gettext-0.16.1.oorig/gettext-tools/gnulib-lib/error.h 2006-11-27 18:14:50.000000000 +0100
++++ gettext-0.16.1/gettext-tools/gnulib-lib/error.h 2007-06-20 13:29:32.000000000 +0200
+@@ -50,7 +50,10 @@ extern void error_at_line (int __status,
+ /* If NULL, error will flush stdout, then print on stderr the program
+ name, a colon and a space. Otherwise, error will call this
+ function without parameters instead. */
+-extern DLL_VARIABLE void (*error_print_progname) (void);
++#ifndef __UCLIBC__
++extern DLL_VARIABLE
++#endif
++void (*error_print_progname) (void);
+
+ /* This variable is incremented each time `error' is called. */
+ extern DLL_VARIABLE unsigned int error_message_count;
+++ /dev/null
---- gettext-0.16.1.oorig/gettext-tools/gnulib-lib/error.h 2006-11-27 18:14:50.000000000 +0100
-+++ gettext-0.16.1/gettext-tools/gnulib-lib/error.h 2007-06-20 13:29:32.000000000 +0200
-@@ -50,7 +50,10 @@ extern void error_at_line (int __status,
- /* If NULL, error will flush stdout, then print on stderr the program
- name, a colon and a space. Otherwise, error will call this
- function without parameters instead. */
--extern DLL_VARIABLE void (*error_print_progname) (void);
-+#ifndef __UCLIBC__
-+extern DLL_VARIABLE
-+#endif
-+void (*error_print_progname) (void);
-
- /* This variable is incremented each time `error' is called. */
- extern DLL_VARIABLE unsigned int error_message_count;
--- /dev/null
+configure.ac + Makefile.am: fix the imlib2 detection
+
+Although imlib2 is correctly checked for, the variables used to get
+the CFLAGS and LIBS are wrong (perhaps a remnant of the pre-imlib2
+era, when giblib was using imlib).
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff --git a/configure.ac b/configure.ac
+index 6807d86..c8874f0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -18,16 +18,10 @@ AM_MAINTAINER_MODE
+ AM_WITH_DMALLOC
+
+ AC_PATH_GENERIC(imlib2, 1.0.0, [
+- AC_SUBST(IMLIB_LIBS)
+- AC_SUBST(IMLIB_CFLAGS) ],
++ AC_SUBST(IMLIB2_LIBS)
++ AC_SUBST(IMLIB2_CFLAGS) ],
+ AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in the path?) )
+
+-dnl the above doesn't work for some reason :/
+-IMLIB_LIBS=`imlib2-config --libs`
+-IMLIB_CFLAGS=`imlib2-config --cflags`
+-AC_SUBST(IMLIB_LIBS)
+-AC_SUBST(IMLIB_CFLAGS)
+-
+ LIBS="$LIBS -lm"
+ CFLAGS="$CFLAGS -Wall"
+
+@@ -48,7 +42,7 @@ $PACKAGE $VERSION
+ Configuration:
+ --------------
+
+-Imlib2 libs: $IMLIB_LIBS
+-Imlib2 cflags: $IMLIB_CFLAGS
++Imlib2 libs: $IMLIB2_LIBS
++Imlib2 cflags: $IMLIB2_CFLAGS
+ CFLAGS: $CFLAGS
+ "
+diff --git a/configure.in b/configure.in
+index 432cb16..6999095 100644
+--- a/configure.in
++++ b/configure.in
+@@ -17,16 +17,10 @@ AM_MAINTAINER_MODE
+ AM_WITH_DMALLOC
+
+ AC_PATH_GENERIC(imlib2, 1.0.0, [
+- AC_SUBST(IMLIB_LIBS)
+- AC_SUBST(IMLIB_CFLAGS) ],
++ AC_SUBST(IMLIB2_LIBS)
++ AC_SUBST(IMLIB2_CFLAGS) ],
+ AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in the path?) )
+
+-dnl the above doesn't work for some reason :/
+-IMLIB_LIBS=`imlib2-config --libs`
+-IMLIB_CFLAGS=`imlib2-config --cflags`
+-AC_SUBST(IMLIB_LIBS)
+-AC_SUBST(IMLIB_CFLAGS)
+-
+ LIBS="$LIBS -lm"
+ CFLAGS="$CFLAGS -Wall"
+
+@@ -45,7 +39,7 @@ $PACKAGE $VERSION
+ Configuration:
+ --------------
+
+-Imlib2 libs: $IMLIB_LIBS
+-Imlib2 cflags: $IMLIB_CFLAGS
++Imlib2 libs: $IMLIB2_LIBS
++Imlib2 cflags: $IMLIB2_CFLAGS
+ CFLAGS: $CFLAGS
+ "
+diff --git a/giblib-config.in b/giblib-config.in
+index f3a7db6..cef1620 100644
+--- a/giblib-config.in
++++ b/giblib-config.in
+@@ -42,11 +42,11 @@ while test $# -gt 0; do
+ if test @includedir@ != /usr/include ; then
+ includes=-I@includedir@
+ fi
+- echo $includes -I$prefix/include/giblib @IMLIB_CFLAGS@
++ echo $includes -I$prefix/include/giblib @IMLIB2_CFLAGS@
+ ;;
+ --libs)
+ libdirs=-L@libdir@
+- echo $libdirs -lgiblib @LDFLAGS@ @IMLIB_LIBS@
++ echo $libdirs -lgiblib @LDFLAGS@ @IMLIB2_LIBS@
+ ;;
+ *)
+ echo "${usage}" 1>&2
+diff --git a/giblib.pc.in b/giblib.pc.in
+index df520ae..783e6e1 100644
+--- a/giblib.pc.in
++++ b/giblib.pc.in
+@@ -6,6 +6,6 @@ includedir=@includedir@
+ Name: giblib
+ Description: wrapper library for imlib2, and other stuff
+ Version: @VERSION@
+-Libs: -L${libdir} -lgiblib @LDFLAGS@ @IMLIB_LIBS@
+-Cflags: -I${includedir} -I${includedir}/giblib @IMLIB_CFLAGS@
++Libs: -L${libdir} -lgiblib @LDFLAGS@ @IMLIB2_LIBS@
++Cflags: -I${includedir} -I${includedir}/giblib @IMLIB2_CFLAGS@
+
+diff --git a/giblib/Makefile.am b/giblib/Makefile.am
+index d1edc09..49d8ac4 100644
+--- a/giblib/Makefile.am
++++ b/giblib/Makefile.am
+@@ -3,7 +3,7 @@ MAINTAINERCLEANFILES = Makefile.in
+
+ INCLUDES = \
+ -I. -I$(top_srcdir) \
+--DPREFIX=\""$(prefix)"\" @IMLIB_CFLAGS@
++-DPREFIX=\""$(prefix)"\" @IMLIB2_CFLAGS@
+
+ lib_LTLIBRARIES = libgiblib.la
+
+@@ -24,7 +24,7 @@ libgiblib_la_SOURCES = \
+ gib_utils.c gib_utils.h \
+ gib_queue.c gib_queue.h
+
+-libgiblib_la_LIBADD = @IMLIB_LIBS@
++libgiblib_la_LIBADD = @IMLIB2_LIBS@
+ libgiblib_la_DEPENDENCIES = giblib_config.h
+ libgiblib_la_LDFLAGS = -version-info 1:6:0
+
+++ /dev/null
-configure.ac + Makefile.am: fix the imlib2 detection
-
-Although imlib2 is correctly checked for, the variables used to get
-the CFLAGS and LIBS are wrong (perhaps a remnant of the pre-imlib2
-era, when giblib was using imlib).
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff --git a/configure.ac b/configure.ac
-index 6807d86..c8874f0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -18,16 +18,10 @@ AM_MAINTAINER_MODE
- AM_WITH_DMALLOC
-
- AC_PATH_GENERIC(imlib2, 1.0.0, [
-- AC_SUBST(IMLIB_LIBS)
-- AC_SUBST(IMLIB_CFLAGS) ],
-+ AC_SUBST(IMLIB2_LIBS)
-+ AC_SUBST(IMLIB2_CFLAGS) ],
- AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in the path?) )
-
--dnl the above doesn't work for some reason :/
--IMLIB_LIBS=`imlib2-config --libs`
--IMLIB_CFLAGS=`imlib2-config --cflags`
--AC_SUBST(IMLIB_LIBS)
--AC_SUBST(IMLIB_CFLAGS)
--
- LIBS="$LIBS -lm"
- CFLAGS="$CFLAGS -Wall"
-
-@@ -48,7 +42,7 @@ $PACKAGE $VERSION
- Configuration:
- --------------
-
--Imlib2 libs: $IMLIB_LIBS
--Imlib2 cflags: $IMLIB_CFLAGS
-+Imlib2 libs: $IMLIB2_LIBS
-+Imlib2 cflags: $IMLIB2_CFLAGS
- CFLAGS: $CFLAGS
- "
-diff --git a/configure.in b/configure.in
-index 432cb16..6999095 100644
---- a/configure.in
-+++ b/configure.in
-@@ -17,16 +17,10 @@ AM_MAINTAINER_MODE
- AM_WITH_DMALLOC
-
- AC_PATH_GENERIC(imlib2, 1.0.0, [
-- AC_SUBST(IMLIB_LIBS)
-- AC_SUBST(IMLIB_CFLAGS) ],
-+ AC_SUBST(IMLIB2_LIBS)
-+ AC_SUBST(IMLIB2_CFLAGS) ],
- AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in the path?) )
-
--dnl the above doesn't work for some reason :/
--IMLIB_LIBS=`imlib2-config --libs`
--IMLIB_CFLAGS=`imlib2-config --cflags`
--AC_SUBST(IMLIB_LIBS)
--AC_SUBST(IMLIB_CFLAGS)
--
- LIBS="$LIBS -lm"
- CFLAGS="$CFLAGS -Wall"
-
-@@ -45,7 +39,7 @@ $PACKAGE $VERSION
- Configuration:
- --------------
-
--Imlib2 libs: $IMLIB_LIBS
--Imlib2 cflags: $IMLIB_CFLAGS
-+Imlib2 libs: $IMLIB2_LIBS
-+Imlib2 cflags: $IMLIB2_CFLAGS
- CFLAGS: $CFLAGS
- "
-diff --git a/giblib-config.in b/giblib-config.in
-index f3a7db6..cef1620 100644
---- a/giblib-config.in
-+++ b/giblib-config.in
-@@ -42,11 +42,11 @@ while test $# -gt 0; do
- if test @includedir@ != /usr/include ; then
- includes=-I@includedir@
- fi
-- echo $includes -I$prefix/include/giblib @IMLIB_CFLAGS@
-+ echo $includes -I$prefix/include/giblib @IMLIB2_CFLAGS@
- ;;
- --libs)
- libdirs=-L@libdir@
-- echo $libdirs -lgiblib @LDFLAGS@ @IMLIB_LIBS@
-+ echo $libdirs -lgiblib @LDFLAGS@ @IMLIB2_LIBS@
- ;;
- *)
- echo "${usage}" 1>&2
-diff --git a/giblib.pc.in b/giblib.pc.in
-index df520ae..783e6e1 100644
---- a/giblib.pc.in
-+++ b/giblib.pc.in
-@@ -6,6 +6,6 @@ includedir=@includedir@
- Name: giblib
- Description: wrapper library for imlib2, and other stuff
- Version: @VERSION@
--Libs: -L${libdir} -lgiblib @LDFLAGS@ @IMLIB_LIBS@
--Cflags: -I${includedir} -I${includedir}/giblib @IMLIB_CFLAGS@
-+Libs: -L${libdir} -lgiblib @LDFLAGS@ @IMLIB2_LIBS@
-+Cflags: -I${includedir} -I${includedir}/giblib @IMLIB2_CFLAGS@
-
-diff --git a/giblib/Makefile.am b/giblib/Makefile.am
-index d1edc09..49d8ac4 100644
---- a/giblib/Makefile.am
-+++ b/giblib/Makefile.am
-@@ -3,7 +3,7 @@ MAINTAINERCLEANFILES = Makefile.in
-
- INCLUDES = \
- -I. -I$(top_srcdir) \
---DPREFIX=\""$(prefix)"\" @IMLIB_CFLAGS@
-+-DPREFIX=\""$(prefix)"\" @IMLIB2_CFLAGS@
-
- lib_LTLIBRARIES = libgiblib.la
-
-@@ -24,7 +24,7 @@ libgiblib_la_SOURCES = \
- gib_utils.c gib_utils.h \
- gib_queue.c gib_queue.h
-
--libgiblib_la_LIBADD = @IMLIB_LIBS@
-+libgiblib_la_LIBADD = @IMLIB2_LIBS@
- libgiblib_la_DEPENDENCIES = giblib_config.h
- libgiblib_la_LDFLAGS = -version-info 1:6:0
-
--- /dev/null
+
+# HG changeset patch
+# User Torbjorn Granlund <tege@gmplib.org>
+# Date 1396035313 -3600
+# Node ID c56ea318eb6435bdd28dbfef657b2fe372134f1f
+# Parent c6fe20ab62acc266ff5ad3629bef447bc43dcd1b
+Conditionalise ARM asm on !__thumb__.
+
+diff -r c6fe20ab62ac -r c56ea318eb64 mpn/generic/mod_1_1.c
+--- a/mpn/generic/mod_1_1.c Wed Mar 26 12:58:33 2014 +0100
++++ b/mpn/generic/mod_1_1.c Fri Mar 28 20:35:13 2014 +0100
+@@ -129,7 +129,7 @@
+ "%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
+ #endif
+
+-#if defined (__arm__) && W_TYPE_SIZE == 32
++#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
+ #define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
+ __asm__ ( "adds %2, %5, %6\n\t" \
+ "adcs %1, %3, %4\n\t" \
+
--- /dev/null
+
+# HG changeset patch
+# User Torbjorn Granlund <tege@gmplib.org>
+# Date 1396602422 -7200
+# Node ID 676e2d0f0e4dd301a7066079d2c9326c25c34a40
+# Parent 0194a75b56b21a9196626430af86c5bd9110c42d
+Conditionalise ARM asm on !__thumb__.
+
+diff -r 0194a75b56b2 -r 676e2d0f0e4d mpn/generic/div_qr_1n_pi1.c
+--- a/mpn/generic/div_qr_1n_pi1.c Thu Apr 03 23:58:51 2014 +0200
++++ b/mpn/generic/div_qr_1n_pi1.c Fri Apr 04 11:07:02 2014 +0200
+@@ -130,7 +130,7 @@
+ "%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
+ #endif
+
+-#if defined (__arm__) && W_TYPE_SIZE == 32
++#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
+ #define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
+ __asm__ ( "adds %2, %5, %6\n\t" \
+ "adcs %1, %3, %4\n\t" \
+
--- /dev/null
+
+# HG changeset patch
+# User Torbjorn Granlund <tege@gmplib.org>
+# Date 1395835068 -3600
+# Node ID 4a6d258b467f661da0894cc60ecd060f2e3c67c7
+# Parent 301ce2788826a2d4d2725bd5cf01e998638db37a
+Provide default for BMOD_1_TO_MOD_1_THRESHOLD.
+
+diff -r 301ce2788826 -r 4a6d258b467f mpn/powerpc64/mode64/gcd_1.asm
+--- a/mpn/powerpc64/mode64/gcd_1.asm Tue Mar 25 15:34:52 2014 +0100
++++ b/mpn/powerpc64/mode64/gcd_1.asm Wed Mar 26 12:57:48 2014 +0100
+@@ -43,6 +43,9 @@
+ define(`n', `r4')
+ define(`v0', `r5')
+
++ifdef(`BMOD_1_TO_MOD_1_THRESHOLD',,
++ `define(`BMOD_1_TO_MOD_1_THRESHOLD',30)')
++
+ EXTERN_FUNC(mpn_mod_1)
+ EXTERN_FUNC(mpn_modexact_1c_odd)
+
+
+++ /dev/null
-
-# HG changeset patch
-# User Torbjorn Granlund <tege@gmplib.org>
-# Date 1396035313 -3600
-# Node ID c56ea318eb6435bdd28dbfef657b2fe372134f1f
-# Parent c6fe20ab62acc266ff5ad3629bef447bc43dcd1b
-Conditionalise ARM asm on !__thumb__.
-
-diff -r c6fe20ab62ac -r c56ea318eb64 mpn/generic/mod_1_1.c
---- a/mpn/generic/mod_1_1.c Wed Mar 26 12:58:33 2014 +0100
-+++ b/mpn/generic/mod_1_1.c Fri Mar 28 20:35:13 2014 +0100
-@@ -129,7 +129,7 @@
- "%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
- #endif
-
--#if defined (__arm__) && W_TYPE_SIZE == 32
-+#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
- #define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
- __asm__ ( "adds %2, %5, %6\n\t" \
- "adcs %1, %3, %4\n\t" \
-
+++ /dev/null
-
-# HG changeset patch
-# User Torbjorn Granlund <tege@gmplib.org>
-# Date 1396602422 -7200
-# Node ID 676e2d0f0e4dd301a7066079d2c9326c25c34a40
-# Parent 0194a75b56b21a9196626430af86c5bd9110c42d
-Conditionalise ARM asm on !__thumb__.
-
-diff -r 0194a75b56b2 -r 676e2d0f0e4d mpn/generic/div_qr_1n_pi1.c
---- a/mpn/generic/div_qr_1n_pi1.c Thu Apr 03 23:58:51 2014 +0200
-+++ b/mpn/generic/div_qr_1n_pi1.c Fri Apr 04 11:07:02 2014 +0200
-@@ -130,7 +130,7 @@
- "%2" ((UDItype)(a0)), "r" ((UDItype)(b0)) __CLOBBER_CC)
- #endif
-
--#if defined (__arm__) && W_TYPE_SIZE == 32
-+#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
- #define add_mssaaaa(m, sh, sl, ah, al, bh, bl) \
- __asm__ ( "adds %2, %5, %6\n\t" \
- "adcs %1, %3, %4\n\t" \
-
+++ /dev/null
-
-# HG changeset patch
-# User Torbjorn Granlund <tege@gmplib.org>
-# Date 1395835068 -3600
-# Node ID 4a6d258b467f661da0894cc60ecd060f2e3c67c7
-# Parent 301ce2788826a2d4d2725bd5cf01e998638db37a
-Provide default for BMOD_1_TO_MOD_1_THRESHOLD.
-
-diff -r 301ce2788826 -r 4a6d258b467f mpn/powerpc64/mode64/gcd_1.asm
---- a/mpn/powerpc64/mode64/gcd_1.asm Tue Mar 25 15:34:52 2014 +0100
-+++ b/mpn/powerpc64/mode64/gcd_1.asm Wed Mar 26 12:57:48 2014 +0100
-@@ -43,6 +43,9 @@
- define(`n', `r4')
- define(`v0', `r5')
-
-+ifdef(`BMOD_1_TO_MOD_1_THRESHOLD',,
-+ `define(`BMOD_1_TO_MOD_1_THRESHOLD',30)')
-+
- EXTERN_FUNC(mpn_mod_1)
- EXTERN_FUNC(mpn_modexact_1c_odd)
-
-
--- /dev/null
+This patch fixes a conflict between the C library getline() function
+and gnuchess getline() function.
+
+Patch borrowed from the gnuchess Debian package.
+
+Index: gnuchess-5.07/src/input.c
+===================================================================
+--- gnuchess-5.07.orig/src/input.c 2009-09-29 16:01:38.000000000 +0200
++++ gnuchess-5.07/src/input.c 2009-09-29 16:02:57.000000000 +0200
+@@ -127,7 +127,7 @@
+ (RealGameCnt+1)/2 + 1 );
+ }
+ pthread_mutex_lock(&input_mutex);
+- getline(prompt);
++ get_line(prompt);
+ input_status = INPUT_AVAILABLE;
+ pthread_cond_signal(&input_cond);
+ pthread_mutex_unlock(&input_mutex);
+@@ -173,13 +173,13 @@
+ {
+ #ifdef HAVE_LIBREADLINE
+ if (isatty(STDIN_FILENO)) {
+- getline = getline_readline;
++ get_line = getline_readline;
+ using_history();
+ } else {
+- getline = getline_standard;
++ get_line = getline_standard;
+ }
+ #else
+- getline = getline_standard;
++ get_line = getline_standard;
+ #endif
+ /* Start input thread */
+ pthread_create(&input_thread, NULL, input_func, NULL);
+Index: gnuchess-5.07/src/common.h
+===================================================================
+--- gnuchess-5.07.orig/src/common.h 2009-09-29 16:06:17.000000000 +0200
++++ gnuchess-5.07/src/common.h 2009-09-29 16:06:40.000000000 +0200
+@@ -745,7 +745,7 @@
+ * Input routine, initialized to one of the specific
+ * input routines. The given argument is the prompt.
+ */
+-void (*getline) (char *);
++void (*get_line) (char *);
+
+ #define MAXSTR 128
+ extern char inputstr[MAXSTR];
--- /dev/null
+--- a/src/input.c 2003-07-01 13:06:43.000000000 -0400
++++ a/src/input.c 2008-02-13 12:24:43.000000000 -0500
+@@ -92,7 +92,7 @@ void getline_standard(char *p)
+ fgets(inputstr, MAXSTR, stdin);
+ }
+
+-static pthread_t input_thread;
++pthread_t input_thread;
+
+ /* Mutex and condition variable for thread communication */
+
+++ /dev/null
-This patch fixes a conflict between the C library getline() function
-and gnuchess getline() function.
-
-Patch borrowed from the gnuchess Debian package.
-
-Index: gnuchess-5.07/src/input.c
-===================================================================
---- gnuchess-5.07.orig/src/input.c 2009-09-29 16:01:38.000000000 +0200
-+++ gnuchess-5.07/src/input.c 2009-09-29 16:02:57.000000000 +0200
-@@ -127,7 +127,7 @@
- (RealGameCnt+1)/2 + 1 );
- }
- pthread_mutex_lock(&input_mutex);
-- getline(prompt);
-+ get_line(prompt);
- input_status = INPUT_AVAILABLE;
- pthread_cond_signal(&input_cond);
- pthread_mutex_unlock(&input_mutex);
-@@ -173,13 +173,13 @@
- {
- #ifdef HAVE_LIBREADLINE
- if (isatty(STDIN_FILENO)) {
-- getline = getline_readline;
-+ get_line = getline_readline;
- using_history();
- } else {
-- getline = getline_standard;
-+ get_line = getline_standard;
- }
- #else
-- getline = getline_standard;
-+ get_line = getline_standard;
- #endif
- /* Start input thread */
- pthread_create(&input_thread, NULL, input_func, NULL);
-Index: gnuchess-5.07/src/common.h
-===================================================================
---- gnuchess-5.07.orig/src/common.h 2009-09-29 16:06:17.000000000 +0200
-+++ gnuchess-5.07/src/common.h 2009-09-29 16:06:40.000000000 +0200
-@@ -745,7 +745,7 @@
- * Input routine, initialized to one of the specific
- * input routines. The given argument is the prompt.
- */
--void (*getline) (char *);
-+void (*get_line) (char *);
-
- #define MAXSTR 128
- extern char inputstr[MAXSTR];
+++ /dev/null
---- a/src/input.c 2003-07-01 13:06:43.000000000 -0400
-+++ a/src/input.c 2008-02-13 12:24:43.000000000 -0500
-@@ -92,7 +92,7 @@ void getline_standard(char *p)
- fgets(inputstr, MAXSTR, stdin);
- }
-
--static pthread_t input_thread;
-+pthread_t input_thread;
-
- /* Mutex and condition variable for thread communication */
-
--- /dev/null
+Fix usage of PTH_CONFIG to work with pthsem
+
+The pthsem re-implement of pth provides a compatibility layer for pth,
+but its pth-config script behaves slightly differently than the
+original one when reporting the version number. This patch to gnupg2's
+configure script adjusts the version checking to support this
+difference, since Buildroot uses pth-config from pthsem.
+
+We patch directly the configure script, because triggering the entire
+autoreconf dance for just a one byte change in the configure script
+seems a bit silly.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure
+===================================================================
+--- a/configure
++++ b/configure
+@@ -8346,7 +8346,7 @@
+ tmp=1.3.7
+ if test "$PTH_CONFIG" != "no"; then
+
+- _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print $3}'`
++ _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print $2}'`
+ _req_version="$tmp"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTH - version >= $_req_version" >&5
+++ /dev/null
-Fix usage of PTH_CONFIG to work with pthsem
-
-The pthsem re-implement of pth provides a compatibility layer for pth,
-but its pth-config script behaves slightly differently than the
-original one when reporting the version number. This patch to gnupg2's
-configure script adjusts the version checking to support this
-difference, since Buildroot uses pth-config from pthsem.
-
-We patch directly the configure script, because triggering the entire
-autoreconf dance for just a one byte change in the configure script
-seems a bit silly.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure
-===================================================================
---- a/configure
-+++ b/configure
-@@ -8346,7 +8346,7 @@
- tmp=1.3.7
- if test "$PTH_CONFIG" != "no"; then
-
-- _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print $3}'`
-+ _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print $2}'`
- _req_version="$tmp"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTH - version >= $_req_version" >&5
--- /dev/null
+Add options to enable/disable docs and demos
+
+Originally written by Anthony Viallard
+<viallard@syscom-instruments.com>.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: gnuplot-4.6.0/configure.in
+===================================================================
+--- gnuplot-4.6.0.orig/configure.in 2012-03-08 05:34:42.000000000 +0100
++++ gnuplot-4.6.0/configure.in 2013-01-07 11:50:03.003804463 +0100
+@@ -748,6 +748,16 @@
+ AC_ARG_WITH(lisp-files,dnl
+ [ --without-lisp-files do not build emacs lisp files])
+
++dnl Whether we want to build the demo files
++dnl Does nothing here, is passed on to the demo subdir
++AC_ARG_ENABLE(demo,dnl
++[ --disable-demo do not build demo files])
++
++dnl Whether we want to build the doc files
++dnl Does nothing here, is passed on to the doc subdir
++AC_ARG_ENABLE(doc,dnl
++[ --disable-doc do not build doc files])
++
+ dnl Sort help/subtopic tables by row or column
+ AC_ARG_WITH(row-help,dnl
+ [ --with-row-help format help and subtopic tables by row (default)
+@@ -1200,6 +1210,24 @@
+ fi
+ AC_SUBST(LISPDIR)
+
++dnl build demo files
++if test "$enable_demo" != no; then
++ AC_CONFIG_SUBDIRS(demo)
++ DEMOSUBDIR=demo
++else
++ DEMOSUBDIR=
++fi
++AC_SUBST(DEMOSUBDIR)
++
++dnl build doc files
++if test "$enable_doc" != no; then
++ AC_CONFIG_SUBDIRS(docs)
++ DOCSUBDIR=docs
++else
++ DOCSUBDIR=
++fi
++AC_SUBST(DOCSUBDIR)
++
+ dnl Substitute variables
+ AC_SUBST(PACKAGE)
+ AC_SUBST(VERSION_MAJOR)
+Index: gnuplot-4.6.0/Makefile.am
+===================================================================
+--- gnuplot-4.6.0.orig/Makefile.am 2013-01-04 14:07:02.239120935 +0100
++++ gnuplot-4.6.0/Makefile.am 2013-01-07 11:51:12.034846363 +0100
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in -*-Makefile-*-
+ AUTOMAKE_OPTIONS = foreign 1.2h
+
+-SUBDIRS = config m4 term src docs $(LISPDIR) man demo tutorial share
++SUBDIRS = config m4 term src $(DOCSUBDIR) $(LISPDIR) man $(DEMOSUBDIR) tutorial share
+
+ EXTRA_DIST = BUGS CodeStyle Copyright FAQ.pdf GNUmakefile INSTALL INSTALL.gnu \
+ Makefile.maint PATCHLEVEL PGPKEYS PORTING README README.1ST \
--- /dev/null
+Fix usage of gdlib-config
+
+gnuplot configure.in script properly takes care of finding
+gdlib-config using AC_PATH_PROG... but then directly uses gdlib-config
+instead of going through the GDLIB_CONFIG variable that AC_PATH_PROG
+has defined. Which means that whenever a gdlib-config binary not in
+the PATH is being used, it does not use it.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -537,9 +537,9 @@
+ if test "$with_gd" != no; then
+ AC_PATH_PROG([GDLIB_CONFIG], [gdlib-config])
+ if test -n "$GDLIB_CONFIG"; then
+- libgd_CPPFLAGS=`gdlib-config --cflags`
+- libgd_LDFLAGS=`gdlib-config --ldflags`
+- libgd_LIBS=`gdlib-config --libs`
++ libgd_CPPFLAGS=`$GDLIB_CONFIG --cflags`
++ libgd_LDFLAGS=`$GDLIB_CONFIG --ldflags`
++ libgd_LIBS=`$GDLIB_CONFIG --libs`
+ elif test -d "$with_gd"; then
+ libgd_CPPFLAGS="-I$with_gd/include"
+ libgd_LDFLAGS="-L$with_gd/lib"
+++ /dev/null
-Add options to enable/disable docs and demos
-
-Originally written by Anthony Viallard
-<viallard@syscom-instruments.com>.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: gnuplot-4.6.0/configure.in
-===================================================================
---- gnuplot-4.6.0.orig/configure.in 2012-03-08 05:34:42.000000000 +0100
-+++ gnuplot-4.6.0/configure.in 2013-01-07 11:50:03.003804463 +0100
-@@ -748,6 +748,16 @@
- AC_ARG_WITH(lisp-files,dnl
- [ --without-lisp-files do not build emacs lisp files])
-
-+dnl Whether we want to build the demo files
-+dnl Does nothing here, is passed on to the demo subdir
-+AC_ARG_ENABLE(demo,dnl
-+[ --disable-demo do not build demo files])
-+
-+dnl Whether we want to build the doc files
-+dnl Does nothing here, is passed on to the doc subdir
-+AC_ARG_ENABLE(doc,dnl
-+[ --disable-doc do not build doc files])
-+
- dnl Sort help/subtopic tables by row or column
- AC_ARG_WITH(row-help,dnl
- [ --with-row-help format help and subtopic tables by row (default)
-@@ -1200,6 +1210,24 @@
- fi
- AC_SUBST(LISPDIR)
-
-+dnl build demo files
-+if test "$enable_demo" != no; then
-+ AC_CONFIG_SUBDIRS(demo)
-+ DEMOSUBDIR=demo
-+else
-+ DEMOSUBDIR=
-+fi
-+AC_SUBST(DEMOSUBDIR)
-+
-+dnl build doc files
-+if test "$enable_doc" != no; then
-+ AC_CONFIG_SUBDIRS(docs)
-+ DOCSUBDIR=docs
-+else
-+ DOCSUBDIR=
-+fi
-+AC_SUBST(DOCSUBDIR)
-+
- dnl Substitute variables
- AC_SUBST(PACKAGE)
- AC_SUBST(VERSION_MAJOR)
-Index: gnuplot-4.6.0/Makefile.am
-===================================================================
---- gnuplot-4.6.0.orig/Makefile.am 2013-01-04 14:07:02.239120935 +0100
-+++ gnuplot-4.6.0/Makefile.am 2013-01-07 11:51:12.034846363 +0100
-@@ -1,7 +1,7 @@
- ## Process this file with automake to produce Makefile.in -*-Makefile-*-
- AUTOMAKE_OPTIONS = foreign 1.2h
-
--SUBDIRS = config m4 term src docs $(LISPDIR) man demo tutorial share
-+SUBDIRS = config m4 term src $(DOCSUBDIR) $(LISPDIR) man $(DEMOSUBDIR) tutorial share
-
- EXTRA_DIST = BUGS CodeStyle Copyright FAQ.pdf GNUmakefile INSTALL INSTALL.gnu \
- Makefile.maint PATCHLEVEL PGPKEYS PORTING README README.1ST \
+++ /dev/null
-Fix usage of gdlib-config
-
-gnuplot configure.in script properly takes care of finding
-gdlib-config using AC_PATH_PROG... but then directly uses gdlib-config
-instead of going through the GDLIB_CONFIG variable that AC_PATH_PROG
-has defined. Which means that whenever a gdlib-config binary not in
-the PATH is being used, it does not use it.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.in
-===================================================================
---- a/configure.in
-+++ b/configure.in
-@@ -537,9 +537,9 @@
- if test "$with_gd" != no; then
- AC_PATH_PROG([GDLIB_CONFIG], [gdlib-config])
- if test -n "$GDLIB_CONFIG"; then
-- libgd_CPPFLAGS=`gdlib-config --cflags`
-- libgd_LDFLAGS=`gdlib-config --ldflags`
-- libgd_LIBS=`gdlib-config --libs`
-+ libgd_CPPFLAGS=`$GDLIB_CONFIG --cflags`
-+ libgd_LDFLAGS=`$GDLIB_CONFIG --ldflags`
-+ libgd_LIBS=`$GDLIB_CONFIG --libs`
- elif test -d "$with_gd"; then
- libgd_CPPFLAGS="-I$with_gd/include"
- libgd_LDFLAGS="-L$with_gd/lib"
--- /dev/null
+From 8e081f1bd5c82b842ee317cd55e70f646ae31f05 Mon Sep 17 00:00:00 2001
+From: Simon Dawson <spdawson@gmail.com>
+Date: Mon, 25 Aug 2014 10:26:11 +0100
+Subject: [PATCH] Fix build error when ntpshm is false
+To: gpsd-dev@nongnu.org
+
+The build fails as follows
+
+libgpsd_core.c: In function 'ntpshm_latch':
+libgpsd_core.c:1660:24: error: 'const struct gps_type_t' has no member named 'time_offset'
+ || device->device_type->time_offset == NULL)
+ ^
+libgpsd_core.c:1663:33: error: 'const struct gps_type_t' has no member named 'time_offset'
+ fix_time += device->device_type->time_offset(device);
+ ^
+scons: *** [libgpsd_core.os] Error 1
+
+The solution is to wrap #ifdef NTPSHM_ENABLE around the ntpshm_latch function
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+---
+diff -Nurp a/libgpsd_core.c b/libgpsd_core.c
+--- a/libgpsd_core.c 2014-08-22 21:33:55.000000000 +0100
++++ b/libgpsd_core.c 2014-09-03 18:48:34.184931741 +0100
+@@ -1642,6 +1642,7 @@ void gpsd_zero_satellites( /*@out@*/ str
+ #endif
+ }
+
++#ifdef NTPSHM_ENABLE
+ void ntpshm_latch(struct gps_device_t *device, struct timedrift_t /*@out@*/*td)
+ /* latch the fact that we've saved a fix */
+ {
+@@ -1672,5 +1673,6 @@ void ntpshm_latch(struct gps_device_t *d
+ device->last_fixtime.clock = td->clock.tv_sec + td->clock.tv_nsec / 1e9;
+ #endif /* S_SPLINT_S */
+ }
++#endif /* NTPSHM_ENABLE */
+
+ /* end */
--- /dev/null
+Disable addition of RPATH to the generated libraries
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+diff -Nurp a/SConstruct b/SConstruct
+--- a/SConstruct 2014-08-23 18:41:09.000000000 +0100
++++ b/SConstruct 2014-08-25 09:46:53.754364989 +0100
+@@ -300,9 +300,6 @@ if env["sysroot"]:
+
+ # Don't hack RPATH unless libdir points somewhere that is not on the
+ # minimum default load path.
+-if env["shared"]:
+- if env["libdir"] not in ["/usr/lib", "/lib"]:
+- env.Prepend(RPATH=[installdir('libdir')])
+
+ # Give deheader a way to set compiler flags
+ if 'MORECFLAGS' in os.environ:
--- /dev/null
+From 519314d488624885a73f6204e3113aab850a36a0 Mon Sep 17 00:00:00 2001
+From: Simon Dawson <spdawson@gmail.com>
+Date: Wed, 3 Sep 2014 18:39:22 +0100
+Subject: [PATCH] Complete wrapping of ntpshm_latch function in #ifdef
+ NTPSHM_ENABLE
+To: gpsd-dev@nongnu.org
+
+Currently, the build fails as follows
+
+gpsmon.o: In function `gpsmon_hook':
+gpsmon.c:(.text+0x8b0): undefined reference to `ntpshm_latch'
+collect2: error: ld returned 1 exit status
+scons: *** [gpsmon] Error 1
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+---
+diff -Nurp a/gpsd.h-tail b/gpsd.h-tail
+--- a/gpsd.h-tail 2014-08-22 21:35:56.000000000 +0100
++++ b/gpsd.h-tail 2014-09-03 18:52:04.048627518 +0100
+@@ -842,7 +842,9 @@ extern unsigned int ais_binary_encode(st
+ extern void ntpshm_context_init(struct gps_context_t *);
+ extern void ntpshm_session_init(struct gps_device_t *);
+ extern int ntpshm_put(struct gps_device_t *, int, struct timedrift_t *);
++#ifdef NTPSHM_ENABLE
+ extern void ntpshm_latch(struct gps_device_t *device, /*@out@*/struct timedrift_t *td);
++#endif /* NTPSHM_ENABLE */
+ extern void ntpshm_link_deactivate(struct gps_device_t *);
+ extern void ntpshm_link_activate(struct gps_device_t *);
+
+diff -Nurp a/gpsmon.c b/gpsmon.c
+--- a/gpsmon.c 2014-08-22 21:06:58.000000000 +0100
++++ b/gpsmon.c 2014-09-03 18:52:23.172628059 +0100
+@@ -778,8 +778,10 @@ static void gpsmon_hook(struct gps_devic
+
+ report_unlock();
+
++#ifdef NTPSHM_ENABLE
+ /* Update the last fix time seen for PPS. FIXME: do this here? */
+ ntpshm_latch(device, &td);
++#endif /* NTPSHM_ENABLE */
+ }
+ /*@+observertrans +nullpass +globstate +compdef +uniondef@*/
+
+++ /dev/null
-From 8e081f1bd5c82b842ee317cd55e70f646ae31f05 Mon Sep 17 00:00:00 2001
-From: Simon Dawson <spdawson@gmail.com>
-Date: Mon, 25 Aug 2014 10:26:11 +0100
-Subject: [PATCH] Fix build error when ntpshm is false
-To: gpsd-dev@nongnu.org
-
-The build fails as follows
-
-libgpsd_core.c: In function 'ntpshm_latch':
-libgpsd_core.c:1660:24: error: 'const struct gps_type_t' has no member named 'time_offset'
- || device->device_type->time_offset == NULL)
- ^
-libgpsd_core.c:1663:33: error: 'const struct gps_type_t' has no member named 'time_offset'
- fix_time += device->device_type->time_offset(device);
- ^
-scons: *** [libgpsd_core.os] Error 1
-
-The solution is to wrap #ifdef NTPSHM_ENABLE around the ntpshm_latch function
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
----
-diff -Nurp a/libgpsd_core.c b/libgpsd_core.c
---- a/libgpsd_core.c 2014-08-22 21:33:55.000000000 +0100
-+++ b/libgpsd_core.c 2014-09-03 18:48:34.184931741 +0100
-@@ -1642,6 +1642,7 @@ void gpsd_zero_satellites( /*@out@*/ str
- #endif
- }
-
-+#ifdef NTPSHM_ENABLE
- void ntpshm_latch(struct gps_device_t *device, struct timedrift_t /*@out@*/*td)
- /* latch the fact that we've saved a fix */
- {
-@@ -1672,5 +1673,6 @@ void ntpshm_latch(struct gps_device_t *d
- device->last_fixtime.clock = td->clock.tv_sec + td->clock.tv_nsec / 1e9;
- #endif /* S_SPLINT_S */
- }
-+#endif /* NTPSHM_ENABLE */
-
- /* end */
+++ /dev/null
-Disable addition of RPATH to the generated libraries
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-diff -Nurp a/SConstruct b/SConstruct
---- a/SConstruct 2014-08-23 18:41:09.000000000 +0100
-+++ b/SConstruct 2014-08-25 09:46:53.754364989 +0100
-@@ -300,9 +300,6 @@ if env["sysroot"]:
-
- # Don't hack RPATH unless libdir points somewhere that is not on the
- # minimum default load path.
--if env["shared"]:
-- if env["libdir"] not in ["/usr/lib", "/lib"]:
-- env.Prepend(RPATH=[installdir('libdir')])
-
- # Give deheader a way to set compiler flags
- if 'MORECFLAGS' in os.environ:
+++ /dev/null
-From 519314d488624885a73f6204e3113aab850a36a0 Mon Sep 17 00:00:00 2001
-From: Simon Dawson <spdawson@gmail.com>
-Date: Wed, 3 Sep 2014 18:39:22 +0100
-Subject: [PATCH] Complete wrapping of ntpshm_latch function in #ifdef
- NTPSHM_ENABLE
-To: gpsd-dev@nongnu.org
-
-Currently, the build fails as follows
-
-gpsmon.o: In function `gpsmon_hook':
-gpsmon.c:(.text+0x8b0): undefined reference to `ntpshm_latch'
-collect2: error: ld returned 1 exit status
-scons: *** [gpsmon] Error 1
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
----
-diff -Nurp a/gpsd.h-tail b/gpsd.h-tail
---- a/gpsd.h-tail 2014-08-22 21:35:56.000000000 +0100
-+++ b/gpsd.h-tail 2014-09-03 18:52:04.048627518 +0100
-@@ -842,7 +842,9 @@ extern unsigned int ais_binary_encode(st
- extern void ntpshm_context_init(struct gps_context_t *);
- extern void ntpshm_session_init(struct gps_device_t *);
- extern int ntpshm_put(struct gps_device_t *, int, struct timedrift_t *);
-+#ifdef NTPSHM_ENABLE
- extern void ntpshm_latch(struct gps_device_t *device, /*@out@*/struct timedrift_t *td);
-+#endif /* NTPSHM_ENABLE */
- extern void ntpshm_link_deactivate(struct gps_device_t *);
- extern void ntpshm_link_activate(struct gps_device_t *);
-
-diff -Nurp a/gpsmon.c b/gpsmon.c
---- a/gpsmon.c 2014-08-22 21:06:58.000000000 +0100
-+++ b/gpsmon.c 2014-09-03 18:52:23.172628059 +0100
-@@ -778,8 +778,10 @@ static void gpsmon_hook(struct gps_devic
-
- report_unlock();
-
-+#ifdef NTPSHM_ENABLE
- /* Update the last fix time seen for PPS. FIXME: do this here? */
- ntpshm_latch(device, &td);
-+#endif /* NTPSHM_ENABLE */
- }
- /*@+observertrans +nullpass +globstate +compdef +uniondef@*/
-
--- /dev/null
+[PATCH] Make the UTF16 support configurable
+
+libicu is quite large, and unicode partition names are uncommon, so we
+may not necessarily want to have UTF16 support unconditionnally. This
+patch adds a USE_UTF16 environment variable to tell whether we want
+the UTF16 support or not.
+
+Signed-off-by: Justin Maggard <jmaggard10@gmail.com>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+[baruch: add $(LDLIBS)]
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,11 @@
+ CC=gcc
+ CXX=g++
+ CFLAGS+=-D_FILE_OFFSET_BITS=64
+-CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16
+-#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
++CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
++ifeq ($(USE_UTF16),y)
++CXXFLAGS+=-D USE_UTF16
++UTF16_LIBS=-licuio -licuuc
++endif
+ LDFLAGS+=
+ LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
+ MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
+@@ -14,16 +17,13 @@
+ all: cgdisk gdisk sgdisk fixparts
+
+ gdisk: $(LIB_OBJS) gdisk.o gpttext.o
+-# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk
+- $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
++ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) $(UTF16_LIBS) -luuid $(LDLIBS) -o gdisk
+
+ cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o
+-# $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -luuid -lncurses -o cgdisk
+- $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -licuio -licuuc -luuid -lncurses -o cgdisk
++ $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) $(UTF16_LIBS) -luuid -lncurses $(LDLIBS) -o cgdisk
+
+ sgdisk: $(LIB_OBJS) sgdisk.o gptcl.o
+-# $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk
+- $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
++ $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) $(UTF16_LIBS) -luuid -lpopt $(LDLIBS) -o sgdisk
+
+ fixparts: $(MBR_LIB_OBJS) fixparts.o
+ $(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
+++ /dev/null
-[PATCH] Make the UTF16 support configurable
-
-libicu is quite large, and unicode partition names are uncommon, so we
-may not necessarily want to have UTF16 support unconditionnally. This
-patch adds a USE_UTF16 environment variable to tell whether we want
-the UTF16 support or not.
-
-Signed-off-by: Justin Maggard <jmaggard10@gmail.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-[baruch: add $(LDLIBS)]
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -1,8 +1,11 @@
- CC=gcc
- CXX=g++
- CFLAGS+=-D_FILE_OFFSET_BITS=64
--CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16
--#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
-+CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
-+ifeq ($(USE_UTF16),y)
-+CXXFLAGS+=-D USE_UTF16
-+UTF16_LIBS=-licuio -licuuc
-+endif
- LDFLAGS+=
- LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
- MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
-@@ -14,16 +17,13 @@
- all: cgdisk gdisk sgdisk fixparts
-
- gdisk: $(LIB_OBJS) gdisk.o gpttext.o
--# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk
-- $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
-+ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) $(UTF16_LIBS) -luuid $(LDLIBS) -o gdisk
-
- cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o
--# $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -luuid -lncurses -o cgdisk
-- $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -licuio -licuuc -luuid -lncurses -o cgdisk
-+ $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) $(UTF16_LIBS) -luuid -lncurses $(LDLIBS) -o cgdisk
-
- sgdisk: $(LIB_OBJS) sgdisk.o gptcl.o
--# $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk
-- $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
-+ $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) $(UTF16_LIBS) -luuid -lpopt $(LDLIBS) -o sgdisk
-
- fixparts: $(MBR_LIB_OBJS) fixparts.o
- $(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
--- /dev/null
+--- a/src/Makefile.in 2006-12-02 20:41:25.000000000 -0500
++++ b/src/Makefile.in 2008-02-13 14:00:25.000000000 -0500
+@@ -200,7 +200,7 @@ SUBDIRS = icons
+ DIST_SUBDIRS = icons
+ INCLUDES = -I$(srcdir) -I$(builddir) \
+ -I$(top_srcdir) -I$(top_builddir) \
+- -I$(includedir) $(GTK_CFLAGS)
++ $(GTK_CFLAGS)
+
+ module_SLIK = \
+ intl.h \
+++ /dev/null
---- a/src/Makefile.in 2006-12-02 20:41:25.000000000 -0500
-+++ b/src/Makefile.in 2008-02-13 14:00:25.000000000 -0500
-@@ -200,7 +200,7 @@ SUBDIRS = icons
- DIST_SUBDIRS = icons
- INCLUDES = -I$(srcdir) -I$(builddir) \
- -I$(top_srcdir) -I$(top_builddir) \
-- -I$(includedir) $(GTK_CFLAGS)
-+ $(GTK_CFLAGS)
-
- module_SLIK = \
- intl.h \
--- /dev/null
+gst-ffmpeg libav: Fixes compiling gst-ffmpeg with gcc-4.7
+
+Fetch from: http://www.slackware.com/~alien/slackbuilds/gst-plugins-ffmpeg/build/gst-ffmpeg-0.10.13_gcc47.patch
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+---
+Submitted By: Andrew Benton <andy@benton.eu.com>
+Date: 2012-06-15
+Initial Package Version: 0.10.13
+Upstream Status: From upstream
+Origin:
+http://git.videolan.org/?p=ffmpeg.git;a=patch;h=5f654897e325349dacf2546674e0510bb72ecb50
+
+Description: Fixes compiling gst-ffmpeg with gcc-4.7
+
+libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
+libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
+
+Index: gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c
+===================================================================
+--- gst-ffmpeg-0.10.13.orig/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700
++++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700
+@@ -398,7 +398,7 @@
+ "2: \n\t"\
+ \
+ : "+a"(src), "+c"(dst)\
+- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
++ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
+ : "memory"\
+ );\
+ src += 4-(h+5)*srcStride;\
+@@ -446,7 +446,7 @@
+ QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
+ "2: \n\t"\
+ : "+a"(src)\
+- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\
++ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\
+ : "memory"\
+ );\
+ tmp += 4;\
+@@ -823,7 +823,7 @@
+ "2: \n\t"\
+ \
+ : "+a"(src), "+c"(dst)\
+- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
++ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
+ : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",)\
+ "memory"\
+@@ -878,7 +878,7 @@
+ QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
+ "2: \n\t"
+ : "+a"(src)
+- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)
++ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)
+ : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",)
+ "memory"
--- /dev/null
+Date: Mon, 1 Aug 2011 20:21:04 +0300
+Subject: [libavcodec] arm: Avoid using the movw instruction needlessly
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+This fixes building for ARM11 without Thumb2.
+
+Signed-off-by: Martin Storsjö <martin@martin.st>
+
+[Arnout: backported to gst-ffmpeg, from ffmpeg 9a83adaf3]
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S b/gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S
+index d3058ff..b6aee86 100644
+--- a/gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S
++++ b/gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S
+@@ -37,7 +37,7 @@ function ff_ac3_bit_alloc_calc_bap_armv6, export=1
+ ldrb r10, [r4], #1
+ 1:
+ ldrsh r9, [r0], #2 @ mask[band]
+- movw r8, #0x1fe0
++ mov r8, #0xff0
+ sub r9, r9, r12 @ - snr_offset
+ mov r11, r10
+ ldrb r10, [r4], #1 @ band_start_tab[band++]
+@@ -44,7 +44,7 @@ function ff_ac3_bit_alloc_calc_bap_armv6, export=1
+ subs r9, r9, r5 @ - floor
+ movlt r9, #0
+ cmp r10, r3 @ - end
+- and r9, r9, r8 @ & 0x1fe0
++ and r9, r9, r8, lsl #1 @ & 0x1fe0
+ subgt r8, r3, r11
+ suble r8, r10, r11
+ add r9, r9, r5 @ + floor => m
+--
+1.7.10.4
+
+++ /dev/null
-gst-ffmpeg libav: Fixes compiling gst-ffmpeg with gcc-4.7
-
-Fetch from: http://www.slackware.com/~alien/slackbuilds/gst-plugins-ffmpeg/build/gst-ffmpeg-0.10.13_gcc47.patch
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
----
-Submitted By: Andrew Benton <andy@benton.eu.com>
-Date: 2012-06-15
-Initial Package Version: 0.10.13
-Upstream Status: From upstream
-Origin:
-http://git.videolan.org/?p=ffmpeg.git;a=patch;h=5f654897e325349dacf2546674e0510bb72ecb50
-
-Description: Fixes compiling gst-ffmpeg with gcc-4.7
-
-libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
-libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
-libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
-libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
-libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
-libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
-libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
-libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
-make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
-
-Index: gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c
-===================================================================
---- gst-ffmpeg-0.10.13.orig/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700
-+++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700
-@@ -398,7 +398,7 @@
- "2: \n\t"\
- \
- : "+a"(src), "+c"(dst)\
-- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
-+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
- : "memory"\
- );\
- src += 4-(h+5)*srcStride;\
-@@ -446,7 +446,7 @@
- QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
- "2: \n\t"\
- : "+a"(src)\
-- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\
-+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\
- : "memory"\
- );\
- tmp += 4;\
-@@ -823,7 +823,7 @@
- "2: \n\t"\
- \
- : "+a"(src), "+c"(dst)\
-- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
-+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
- : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \
- "%xmm4", "%xmm5", "%xmm6", "%xmm7",)\
- "memory"\
-@@ -878,7 +878,7 @@
- QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
- "2: \n\t"
- : "+a"(src)
-- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)
-+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)
- : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
- "%xmm4", "%xmm5", "%xmm6", "%xmm7",)
- "memory"
+++ /dev/null
-Date: Mon, 1 Aug 2011 20:21:04 +0300
-Subject: [libavcodec] arm: Avoid using the movw instruction needlessly
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf8
-Content-Transfer-Encoding: 8bit
-
-This fixes building for ARM11 without Thumb2.
-
-Signed-off-by: Martin Storsjö <martin@martin.st>
-
-[Arnout: backported to gst-ffmpeg, from ffmpeg 9a83adaf3]
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
----
- gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S b/gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S
-index d3058ff..b6aee86 100644
---- a/gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S
-+++ b/gst-libs/ext/libav/libavcodec/arm/ac3dsp_armv6.S
-@@ -37,7 +37,7 @@ function ff_ac3_bit_alloc_calc_bap_armv6, export=1
- ldrb r10, [r4], #1
- 1:
- ldrsh r9, [r0], #2 @ mask[band]
-- movw r8, #0x1fe0
-+ mov r8, #0xff0
- sub r9, r9, r12 @ - snr_offset
- mov r11, r10
- ldrb r10, [r4], #1 @ band_start_tab[band++]
-@@ -44,7 +44,7 @@ function ff_ac3_bit_alloc_calc_bap_armv6, export=1
- subs r9, r9, r5 @ - floor
- movlt r9, #0
- cmp r10, r3 @ - end
-- and r9, r9, r8 @ & 0x1fe0
-+ and r9, r9, r8, lsl #1 @ & 0x1fe0
- subgt r8, r3, r11
- suble r8, r10, r11
- add r9, r9, r5 @ + floor => m
---
-1.7.10.4
-
--- /dev/null
+From ed649ccb8ddc724546172d329fca39b23c49b804 Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Mon, 17 Dec 2012 17:58:28 +0100
+Subject: [PATCH] gplay: add missing include
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ tools/gplay/gst_snapshot.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/gplay/gst_snapshot.c b/tools/gplay/gst_snapshot.c
+index 40dbb6f..596f399 100755
+--- a/tools/gplay/gst_snapshot.c
++++ b/tools/gplay/gst_snapshot.c
+@@ -22,6 +22,7 @@
+
+ #include <gst/gst.h>
+ #include <string.h>
++#include <stdio.h>
+ #include "gst_snapshot.h"
+
+ static void
+--
--- /dev/null
+From 83b4f84b1c490b9bb816e1ecbc743d80d48cc06d Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Tue, 18 Dec 2012 12:05:22 +0100
+Subject: [PATCH] Fix bashism in configure script.
+
+The configure script uses +=, which is not POSIX. Debians that
+have the default dash as /bin/sh define a variable ending with
++ instead of appending to it.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ configure.ac | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5968eb6..1a31a06 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -152,7 +152,7 @@ AC_SUBST(GST_PLUGINS_BASE_LIBS)
+ AC_CHECK_HEADERS([vpu_lib.h], [HAVE_VPU_LIB=yes], [HAVE_VPU_LIB=no])
+ if test "x$HAVE_VPU_LIB" = "xyes"; then
+ VPU_LIBS=`$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`
+- VPU_LIBS+=" -lvpu"
++ VPU_LIBS="$VPU_LIBS -lvpu"
+ fi
+ AC_SUBST(VPU_LIBS)
+
+@@ -176,15 +176,15 @@ AC_SUBST(RT_CFLAGS)
+ AC_SUBST(RT_LIBS)
+
+ FSL_MM_CORE_CFLAGS=`$PKG_CONFIG --cflags libfslaudiocodec 2>/dev/null`
+-FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslvideocodec 2>/dev/null`
+-FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslparser 2>/dev/null`
+-FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslvpuwrap 2>/dev/null`
++FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslvideocodec 2>/dev/null`"
++FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslparser 2>/dev/null`"
++FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslvpuwrap 2>/dev/null`"
+ AC_SUBST(FSL_MM_CORE_CFLAGS)
+
+ FSL_MM_CORE_LIBS=`$PKG_CONFIG --libs libfslaudiocodec 2>/dev/null`
+-FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslvideocodec 2>/dev/null`
+-FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslparser 2>/dev/null`
+-FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`
++FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslvideocodec 2>/dev/null`"
++FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslparser 2>/dev/null`"
++FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`"
+ AC_SUBST(FSL_MM_CORE_LIBS)
+
+ EXTRAPLATFORMCFLAGS="-DARM -D_GNUC_"
+--
--- /dev/null
+From c58b658a93b1b6d6e94ba0306d58de845012cef6 Mon Sep 17 00:00:00 2001
+From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
+Date: Tue, 18 Dec 2012 12:22:52 +0100
+Subject: [PATCH] Use proper objdump
+
+If the OBJDUMP environment variable is set, that should be used rather
+than the objdump in PATH.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1a31a06..cc7557d 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,7 +17,7 @@ AC_DEFUN([FIND_PARSER_SONAME],
+ AC_MSG_CHECKING([for lib_$1_parser_$2_elinux.3.0.so soname])
+ path=`$PKG_CONFIG --variable=libdir libfslparser`
+ SONAME=$( $CC -print-file-name=$PKG_CONFIG_SYSROOT_DIR$path/lib_$1_parser_$2_elinux.so | \
+- while read output; do objdump -p $output | \
++ while read output; do $OBJDUMP -p $output | \
+ grep "SONAME" | \
+ sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
+ if [[ -z "$SONAME" ]]; then
+@@ -36,7 +36,7 @@ AC_DEFUN([FIND_ACODEC_SONAME],
+ AC_MSG_CHECKING([for lib_$1_wrap_$2_elinux.so soname])
+ path=`$PKG_CONFIG --variable=libdir libfslaudiocodec`
+ SONAME=$( $CC -print-file-name=$PKG_CONFIG_SYSROOT_DIR$path/wrap/lib_$1_wrap_$2_elinux.so | \
+- while read output; do objdump -p $output | \
++ while read output; do $OBJDUMP -p $output | \
+ grep "SONAME" | \
+ sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
+ if [[ -z "$SONAME" ]]; then
+--
--- /dev/null
+From 1ca4251d1284f2cb56e31aaec4d369809e2139c9 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report@gmx.net>
+Date: Mon, 24 Feb 2014 16:30:39 +0100
+Subject: [PATCH] Fix libgstfsl linkage (add -lrt for shared memory functions).
+
+Fixes runtime failure of gst-fsl-plugins, e.g.:
+(gst-plugin-scanner:1700): GStreamer-WARNING **: Failed to load
+ plugin '/usr/lib/gstreamer-0.10/libmfw_vpu.so':
+ /usr/lib/libgstfsl-0.10.so.0: undefined symbol: shm_open)
+
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ configure.ac | 3 +++
+ libs/Makefile.am | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index a5d1655..7b5a7a6 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -170,6 +170,9 @@ AC_CHECK_LIB(ipu, mxc_ipu_lib_task_init, [IPU_LIBS=-lipu], [echo "No libipu arou
+ AC_SUBST(IPU_CFLAGS)
+ AC_SUBST(IPU_LIBS)
+
++AC_SEARCH_LIBS([shm_open], [rt], [SHM_LIBS="-lrt"])
++AC_SUBST(SHM_LIBS)
++
+ dnl of the POSIX Real-Time Extensions.
+ AC_CHECK_LIB(rt, clock_gettime)
+ AC_SUBST(RT_CFLAGS)
+diff --git a/libs/Makefile.am b/libs/Makefile.am
+index 2f56bba..5b30657 100755
+--- a/libs/Makefile.am
++++ b/libs/Makefile.am
+@@ -42,7 +42,7 @@ libgstfsl_@GST_MAJORMINOR@_la_CFLAGS += -DIPULIB
+ endif
+
+ libgstfsl_@GST_MAJORMINOR@_la_LDFLAGS = -version-info @GSTMXLIBS_VERSION@
+-libgstfsl_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ -lgstinterfaces-$(GST_MAJORMINOR) $(IPU_LIBS) $(RT_LIBS)
++libgstfsl_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ -lgstinterfaces-$(GST_MAJORMINOR) $(IPU_LIBS) $(RT_LIBS) $(SHM_LIBS)
+
+ libgstfsl_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/imx-mm
+ libgstfsl_@GST_MAJORMINOR@include_HEADERS = \
+--
+1.8.1.4
+
--- /dev/null
+From ce90794a3458af0aed43b8570cf44cd87900185d Mon Sep 17 00:00:00 2001
+From: Gary Bisson <bisson.gary@gmail.com>
+Date: Fri, 25 Jul 2014 16:44:53 -0700
+Subject: [PATCH] Remove use of obsolete VIDIOC_DBG_G_CHIP_IDENT
+
+This ioctl should never be used in application as
+stated in videodev2.h header.
+Moreover, its use in this plugin was very limited.
+
+Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
+---
+ src/misc/tvsrc/src/mfw_gst_tvsrc.c | 8 --------
+ src/misc/v4l_source/src/mfw_gst_v4lsrc.c | 7 -------
+ 2 files changed, 15 deletions(-)
+
+diff --git a/src/misc/tvsrc/src/mfw_gst_tvsrc.c b/src/misc/tvsrc/src/mfw_gst_tvsrc.c
+index 67e0cd2..f495b6f 100755
+--- a/src/misc/tvsrc/src/mfw_gst_tvsrc.c
++++ b/src/misc/tvsrc/src/mfw_gst_tvsrc.c
+@@ -450,7 +450,6 @@ mfw_gst_tvsrc_capture_setup (MFWGstTVSRC * v4l_src)
+ struct v4l2_format fmt;
+ struct v4l2_control ctrl;
+ struct v4l2_streamparm parm;
+- struct v4l2_dbg_chip_ident chip;
+ gint fd_v4l = 0;
+ struct v4l2_mxc_offset off;
+ gint in_width = 0, in_height = 0;
+@@ -461,13 +460,6 @@ mfw_gst_tvsrc_capture_setup (MFWGstTVSRC * v4l_src)
+ return 0;
+ }
+
+- if (ioctl (fd_v4l, VIDIOC_DBG_G_CHIP_IDENT, &chip)) {
+- g_print ("VIDIOC_DBG_G_CHIP_IDENT failed.\n");
+- } else
+- g_print ("sensor chip is %s\n", chip.match.name);
+-
+-
+-
+ if (ioctl (fd_v4l, VIDIOC_G_STD, &id) < 0) {
+ g_print ("VIDIOC_G_STD failed\n");
+ close (fd_v4l);
+diff --git a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
+index 2c2e838..85e7ff0 100755
+--- a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
++++ b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
+@@ -464,7 +464,6 @@ mfw_gst_v4lsrc_capture_setup (MFWGstV4LSrc * v4l_src)
+ struct v4l2_format fmt = {0};
+ struct v4l2_control ctrl = {0};
+ struct v4l2_streamparm parm = {0};
+- struct v4l2_dbg_chip_ident chip = {0};
+ struct v4l2_frmsizeenum fszenum = {0};
+ gint input;
+ gint fd_v4l = 0;
+@@ -476,12 +475,6 @@ mfw_gst_v4lsrc_capture_setup (MFWGstV4LSrc * v4l_src)
+ return 0;
+ }
+
+- if (ioctl (fd_v4l, VIDIOC_DBG_G_CHIP_IDENT, &chip)) {
+- GST_ERROR ("VIDIOC_DBG_G_CHIP_IDENT failed.");
+- } else
+- GST_INFO ("sensor chip is %s", chip.match.name);
+-
+-
+ if (v4l_src->crop_pixel) {
+ in_width = v4l_src->capture_width - (2 * v4l_src->crop_pixel);
+ in_height = v4l_src->capture_height - (2 * v4l_src->crop_pixel);
+--
+2.0.1
+
+++ /dev/null
-From ed649ccb8ddc724546172d329fca39b23c49b804 Mon Sep 17 00:00:00 2001
-From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
-Date: Mon, 17 Dec 2012 17:58:28 +0100
-Subject: [PATCH] gplay: add missing include
-
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
----
- tools/gplay/gst_snapshot.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tools/gplay/gst_snapshot.c b/tools/gplay/gst_snapshot.c
-index 40dbb6f..596f399 100755
---- a/tools/gplay/gst_snapshot.c
-+++ b/tools/gplay/gst_snapshot.c
-@@ -22,6 +22,7 @@
-
- #include <gst/gst.h>
- #include <string.h>
-+#include <stdio.h>
- #include "gst_snapshot.h"
-
- static void
---
+++ /dev/null
-From 83b4f84b1c490b9bb816e1ecbc743d80d48cc06d Mon Sep 17 00:00:00 2001
-From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
-Date: Tue, 18 Dec 2012 12:05:22 +0100
-Subject: [PATCH] Fix bashism in configure script.
-
-The configure script uses +=, which is not POSIX. Debians that
-have the default dash as /bin/sh define a variable ending with
-+ instead of appending to it.
-
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
----
- configure.ac | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5968eb6..1a31a06 100755
---- a/configure.ac
-+++ b/configure.ac
-@@ -152,7 +152,7 @@ AC_SUBST(GST_PLUGINS_BASE_LIBS)
- AC_CHECK_HEADERS([vpu_lib.h], [HAVE_VPU_LIB=yes], [HAVE_VPU_LIB=no])
- if test "x$HAVE_VPU_LIB" = "xyes"; then
- VPU_LIBS=`$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`
-- VPU_LIBS+=" -lvpu"
-+ VPU_LIBS="$VPU_LIBS -lvpu"
- fi
- AC_SUBST(VPU_LIBS)
-
-@@ -176,15 +176,15 @@ AC_SUBST(RT_CFLAGS)
- AC_SUBST(RT_LIBS)
-
- FSL_MM_CORE_CFLAGS=`$PKG_CONFIG --cflags libfslaudiocodec 2>/dev/null`
--FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslvideocodec 2>/dev/null`
--FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslparser 2>/dev/null`
--FSL_MM_CORE_CFLAGS+=`$PKG_CONFIG --cflags libfslvpuwrap 2>/dev/null`
-+FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslvideocodec 2>/dev/null`"
-+FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslparser 2>/dev/null`"
-+FSL_MM_CORE_CFLAGS="$FSL_MM_CORE_CFLAGS `$PKG_CONFIG --cflags libfslvpuwrap 2>/dev/null`"
- AC_SUBST(FSL_MM_CORE_CFLAGS)
-
- FSL_MM_CORE_LIBS=`$PKG_CONFIG --libs libfslaudiocodec 2>/dev/null`
--FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslvideocodec 2>/dev/null`
--FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslparser 2>/dev/null`
--FSL_MM_CORE_LIBS+=`$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`
-+FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslvideocodec 2>/dev/null`"
-+FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslparser 2>/dev/null`"
-+FSL_MM_CORE_LIBS="$FSL_MM_CORE_LIBS `$PKG_CONFIG --libs libfslvpuwrap 2>/dev/null`"
- AC_SUBST(FSL_MM_CORE_LIBS)
-
- EXTRAPLATFORMCFLAGS="-DARM -D_GNUC_"
---
+++ /dev/null
-From c58b658a93b1b6d6e94ba0306d58de845012cef6 Mon Sep 17 00:00:00 2001
-From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
-Date: Tue, 18 Dec 2012 12:22:52 +0100
-Subject: [PATCH] Use proper objdump
-
-If the OBJDUMP environment variable is set, that should be used rather
-than the objdump in PATH.
-
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1a31a06..cc7557d 100755
---- a/configure.ac
-+++ b/configure.ac
-@@ -17,7 +17,7 @@ AC_DEFUN([FIND_PARSER_SONAME],
- AC_MSG_CHECKING([for lib_$1_parser_$2_elinux.3.0.so soname])
- path=`$PKG_CONFIG --variable=libdir libfslparser`
- SONAME=$( $CC -print-file-name=$PKG_CONFIG_SYSROOT_DIR$path/lib_$1_parser_$2_elinux.so | \
-- while read output; do objdump -p $output | \
-+ while read output; do $OBJDUMP -p $output | \
- grep "SONAME" | \
- sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
- if [[ -z "$SONAME" ]]; then
-@@ -36,7 +36,7 @@ AC_DEFUN([FIND_ACODEC_SONAME],
- AC_MSG_CHECKING([for lib_$1_wrap_$2_elinux.so soname])
- path=`$PKG_CONFIG --variable=libdir libfslaudiocodec`
- SONAME=$( $CC -print-file-name=$PKG_CONFIG_SYSROOT_DIR$path/wrap/lib_$1_wrap_$2_elinux.so | \
-- while read output; do objdump -p $output | \
-+ while read output; do $OBJDUMP -p $output | \
- grep "SONAME" | \
- sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
- if [[ -z "$SONAME" ]]; then
---
+++ /dev/null
-From 1ca4251d1284f2cb56e31aaec4d369809e2139c9 Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Mon, 24 Feb 2014 16:30:39 +0100
-Subject: [PATCH] Fix libgstfsl linkage (add -lrt for shared memory functions).
-
-Fixes runtime failure of gst-fsl-plugins, e.g.:
-(gst-plugin-scanner:1700): GStreamer-WARNING **: Failed to load
- plugin '/usr/lib/gstreamer-0.10/libmfw_vpu.so':
- /usr/lib/libgstfsl-0.10.so.0: undefined symbol: shm_open)
-
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
----
- configure.ac | 3 +++
- libs/Makefile.am | 2 +-
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index a5d1655..7b5a7a6 100755
---- a/configure.ac
-+++ b/configure.ac
-@@ -170,6 +170,9 @@ AC_CHECK_LIB(ipu, mxc_ipu_lib_task_init, [IPU_LIBS=-lipu], [echo "No libipu arou
- AC_SUBST(IPU_CFLAGS)
- AC_SUBST(IPU_LIBS)
-
-+AC_SEARCH_LIBS([shm_open], [rt], [SHM_LIBS="-lrt"])
-+AC_SUBST(SHM_LIBS)
-+
- dnl of the POSIX Real-Time Extensions.
- AC_CHECK_LIB(rt, clock_gettime)
- AC_SUBST(RT_CFLAGS)
-diff --git a/libs/Makefile.am b/libs/Makefile.am
-index 2f56bba..5b30657 100755
---- a/libs/Makefile.am
-+++ b/libs/Makefile.am
-@@ -42,7 +42,7 @@ libgstfsl_@GST_MAJORMINOR@_la_CFLAGS += -DIPULIB
- endif
-
- libgstfsl_@GST_MAJORMINOR@_la_LDFLAGS = -version-info @GSTMXLIBS_VERSION@
--libgstfsl_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ -lgstinterfaces-$(GST_MAJORMINOR) $(IPU_LIBS) $(RT_LIBS)
-+libgstfsl_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ -lgstinterfaces-$(GST_MAJORMINOR) $(IPU_LIBS) $(RT_LIBS) $(SHM_LIBS)
-
- libgstfsl_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/imx-mm
- libgstfsl_@GST_MAJORMINOR@include_HEADERS = \
---
-1.8.1.4
-
+++ /dev/null
-From ce90794a3458af0aed43b8570cf44cd87900185d Mon Sep 17 00:00:00 2001
-From: Gary Bisson <bisson.gary@gmail.com>
-Date: Fri, 25 Jul 2014 16:44:53 -0700
-Subject: [PATCH] Remove use of obsolete VIDIOC_DBG_G_CHIP_IDENT
-
-This ioctl should never be used in application as
-stated in videodev2.h header.
-Moreover, its use in this plugin was very limited.
-
-Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
----
- src/misc/tvsrc/src/mfw_gst_tvsrc.c | 8 --------
- src/misc/v4l_source/src/mfw_gst_v4lsrc.c | 7 -------
- 2 files changed, 15 deletions(-)
-
-diff --git a/src/misc/tvsrc/src/mfw_gst_tvsrc.c b/src/misc/tvsrc/src/mfw_gst_tvsrc.c
-index 67e0cd2..f495b6f 100755
---- a/src/misc/tvsrc/src/mfw_gst_tvsrc.c
-+++ b/src/misc/tvsrc/src/mfw_gst_tvsrc.c
-@@ -450,7 +450,6 @@ mfw_gst_tvsrc_capture_setup (MFWGstTVSRC * v4l_src)
- struct v4l2_format fmt;
- struct v4l2_control ctrl;
- struct v4l2_streamparm parm;
-- struct v4l2_dbg_chip_ident chip;
- gint fd_v4l = 0;
- struct v4l2_mxc_offset off;
- gint in_width = 0, in_height = 0;
-@@ -461,13 +460,6 @@ mfw_gst_tvsrc_capture_setup (MFWGstTVSRC * v4l_src)
- return 0;
- }
-
-- if (ioctl (fd_v4l, VIDIOC_DBG_G_CHIP_IDENT, &chip)) {
-- g_print ("VIDIOC_DBG_G_CHIP_IDENT failed.\n");
-- } else
-- g_print ("sensor chip is %s\n", chip.match.name);
--
--
--
- if (ioctl (fd_v4l, VIDIOC_G_STD, &id) < 0) {
- g_print ("VIDIOC_G_STD failed\n");
- close (fd_v4l);
-diff --git a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
-index 2c2e838..85e7ff0 100755
---- a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
-+++ b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
-@@ -464,7 +464,6 @@ mfw_gst_v4lsrc_capture_setup (MFWGstV4LSrc * v4l_src)
- struct v4l2_format fmt = {0};
- struct v4l2_control ctrl = {0};
- struct v4l2_streamparm parm = {0};
-- struct v4l2_dbg_chip_ident chip = {0};
- struct v4l2_frmsizeenum fszenum = {0};
- gint input;
- gint fd_v4l = 0;
-@@ -476,12 +475,6 @@ mfw_gst_v4lsrc_capture_setup (MFWGstV4LSrc * v4l_src)
- return 0;
- }
-
-- if (ioctl (fd_v4l, VIDIOC_DBG_G_CHIP_IDENT, &chip)) {
-- GST_ERROR ("VIDIOC_DBG_G_CHIP_IDENT failed.");
-- } else
-- GST_INFO ("sensor chip is %s", chip.match.name);
--
--
- if (v4l_src->crop_pixel) {
- in_width = v4l_src->capture_width - (2 * v4l_src->crop_pixel);
- in_height = v4l_src->capture_height - (2 * v4l_src->crop_pixel);
---
-2.0.1
-
--- /dev/null
+The configure script is correctly getting the CFLAGS needed to compile a plugin
+for gstreamer and storing them in GST_BASE_CFLAGS but the Makefiles are never
+making use of those.
+
+We actually have to use AM_CPPFLAGS as AM_CFLAGS is used everywhere but on the
+real compiling rule...
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+---
+ src/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 8cb51d1..6af5d91 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -5,6 +5,8 @@
+ ##############################################################################
+ plugin_LTLIBRARIES = libgstx170.la
+
++AM_CPPFLAGS = @GST_BASE_CFLAGS@
++
+ ##############################################################################
+ # for the next set of variables, rename the prefix if you renamed the .la, #
+ # e.g. libgstplugin_la_SOURCES => libmysomething_la_SOURCES #
+--
+1.8.1.2
+
+++ /dev/null
-The configure script is correctly getting the CFLAGS needed to compile a plugin
-for gstreamer and storing them in GST_BASE_CFLAGS but the Makefiles are never
-making use of those.
-
-We actually have to use AM_CPPFLAGS as AM_CFLAGS is used everywhere but on the
-real compiling rule...
-
-Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
----
- src/Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 8cb51d1..6af5d91 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -5,6 +5,8 @@
- ##############################################################################
- plugin_LTLIBRARIES = libgstx170.la
-
-+AM_CPPFLAGS = @GST_BASE_CFLAGS@
-+
- ##############################################################################
- # for the next set of variables, rename the prefix if you renamed the .la, #
- # e.g. libgstplugin_la_SOURCES => libmysomething_la_SOURCES #
---
-1.8.1.2
-
--- /dev/null
+From 1725e702a3622cb45c8142622dd419fa0c410ac9 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Wed, 12 Sep 2012 09:10:35 +0200
+Subject: [PATCH] gst-plugins-bad: opus + jpegformat: unbreak non-debug build
+
+opus + jpegformat plugin builds fail when gstreamer is configured with
+--disable-gst-debug as they are checking the GST_DISABLE_DEBUG symbol
+instead of GST_DISABLE_GST_DEBUG.
+
+Submitted upstream as https://bugzilla.gnome.org/show_bug.cgi?id=683850
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ ext/opus/gstopusdec.c | 2 +-
+ ext/opus/gstopusenc.c | 4 ++--
+ gst/jpegformat/gstjpegparse.c | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c
+index 0e2805c..ab7221d 100644
+--- a/ext/opus/gstopusdec.c
++++ b/ext/opus/gstopusdec.c
+@@ -357,7 +357,7 @@ opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buffer)
+
+ GST_DEBUG_OBJECT (dec, "Creating decoder with %d channels, %d Hz",
+ dec->n_channels, dec->sample_rate);
+-#ifndef GST_DISABLE_DEBUG
++#ifndef GST_DISABLE_GST_DEBUG
+ gst_opus_common_log_channel_mapping_table (GST_ELEMENT (dec), opusdec_debug,
+ "Mapping table", dec->n_channels, dec->channel_mapping);
+ #endif
+diff --git a/ext/opus/gstopusenc.c b/ext/opus/gstopusenc.c
+index 240a2cb..d991795 100644
+--- a/ext/opus/gstopusenc.c
++++ b/ext/opus/gstopusenc.c
+@@ -589,7 +589,7 @@ gst_opus_enc_setup_channel_mappings (GstOpusEnc * enc,
+ }
+ }
+
+-#ifndef GST_DISABLE_DEBUG
++#ifndef GST_DISABLE_GST_DEBUG
+ GST_INFO_OBJECT (enc,
+ "Mapping tables built: %d channels, %d stereo streams", enc->n_channels,
+ enc->n_stereo_streams);
+@@ -654,7 +654,7 @@ gst_opus_enc_setup (GstOpusEnc * enc)
+ {
+ int error = OPUS_OK;
+
+-#ifndef GST_DISABLE_DEBUG
++#ifndef GST_DISABLE_GST_DEBUG
+ GST_DEBUG_OBJECT (enc,
+ "setup: %d Hz, %d channels, %d stereo streams, family %d",
+ enc->sample_rate, enc->n_channels, enc->n_stereo_streams,
+diff --git a/gst/jpegformat/gstjpegparse.c b/gst/jpegformat/gstjpegparse.c
+index f984a52..b4af9ed 100644
+--- a/gst/jpegformat/gstjpegparse.c
++++ b/gst/jpegformat/gstjpegparse.c
+@@ -545,7 +545,7 @@ gst_jpeg_parse_skip_marker (GstJpegParse * parse,
+ if (!gst_byte_reader_get_uint16_be (reader, &size))
+ return FALSE;
+
+-#ifndef GST_DISABLE_DEBUG
++#ifndef GST_DISABLE_GST_DEBUG
+ /* We'd pry the id of the skipped application segment */
+ if (marker >= APP0 && marker <= APP15) {
+ const gchar *id_str = NULL;
+@@ -561,7 +561,7 @@ gst_jpeg_parse_skip_marker (GstJpegParse * parse,
+ #else
+ GST_DEBUG_OBJECT (parse, "unhandled marker %x skiping %u bytes", marker,
+ size);
+-#endif // GST_DISABLE_DEBUG
++#endif // GST_DISABLE_GST_DEBUG
+
+ if (!gst_byte_reader_skip (reader, size - 2))
+ return FALSE;
+--
+1.7.10
+
--- /dev/null
+Fix dfb-example
+
+Order of inclusion gives a strange effect on the definition of
+gst_debug_log. Swapping the include statements solve it.
+
+Not upstreamed since there will be no more updates to this version
+of gst-plugins-bad.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+diff -rup gst-plugins-bad-0.10.23/ext/directfb/dfb-example.c gst-plugins-bad-0.10.23.fixed/ext/directfb/dfb-example.c
+--- gst-plugins-bad-0.10.23/ext/directfb/dfb-example.c 2011-12-11 19:49:11.000000000 +0100
++++ gst-plugins-bad-0.10.23.fixed/ext/directfb/dfb-example.c 2013-05-13 00:32:00.507469138 +0200
+@@ -1,7 +1,7 @@
+
+-#include <directfb.h>
+ #include <stdio.h>
+ #include <gst/gst.h>
++#include <directfb.h>
+
+ static IDirectFB *dfb = NULL;
+ static IDirectFBSurface *primary = NULL;
+++ /dev/null
-Fix dfb-example
-
-Order of inclusion gives a strange effect on the definition of
-gst_debug_log. Swapping the include statements solve it.
-
-Not upstreamed since there will be no more updates to this version
-of gst-plugins-bad.
-
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
----
-diff -rup gst-plugins-bad-0.10.23/ext/directfb/dfb-example.c gst-plugins-bad-0.10.23.fixed/ext/directfb/dfb-example.c
---- gst-plugins-bad-0.10.23/ext/directfb/dfb-example.c 2011-12-11 19:49:11.000000000 +0100
-+++ gst-plugins-bad-0.10.23.fixed/ext/directfb/dfb-example.c 2013-05-13 00:32:00.507469138 +0200
-@@ -1,7 +1,7 @@
-
--#include <directfb.h>
- #include <stdio.h>
- #include <gst/gst.h>
-+#include <directfb.h>
-
- static IDirectFB *dfb = NULL;
- static IDirectFBSurface *primary = NULL;
+++ /dev/null
-From 1725e702a3622cb45c8142622dd419fa0c410ac9 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Wed, 12 Sep 2012 09:10:35 +0200
-Subject: [PATCH] gst-plugins-bad: opus + jpegformat: unbreak non-debug build
-
-opus + jpegformat plugin builds fail when gstreamer is configured with
---disable-gst-debug as they are checking the GST_DISABLE_DEBUG symbol
-instead of GST_DISABLE_GST_DEBUG.
-
-Submitted upstream as https://bugzilla.gnome.org/show_bug.cgi?id=683850
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- ext/opus/gstopusdec.c | 2 +-
- ext/opus/gstopusenc.c | 4 ++--
- gst/jpegformat/gstjpegparse.c | 4 ++--
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c
-index 0e2805c..ab7221d 100644
---- a/ext/opus/gstopusdec.c
-+++ b/ext/opus/gstopusdec.c
-@@ -357,7 +357,7 @@ opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buffer)
-
- GST_DEBUG_OBJECT (dec, "Creating decoder with %d channels, %d Hz",
- dec->n_channels, dec->sample_rate);
--#ifndef GST_DISABLE_DEBUG
-+#ifndef GST_DISABLE_GST_DEBUG
- gst_opus_common_log_channel_mapping_table (GST_ELEMENT (dec), opusdec_debug,
- "Mapping table", dec->n_channels, dec->channel_mapping);
- #endif
-diff --git a/ext/opus/gstopusenc.c b/ext/opus/gstopusenc.c
-index 240a2cb..d991795 100644
---- a/ext/opus/gstopusenc.c
-+++ b/ext/opus/gstopusenc.c
-@@ -589,7 +589,7 @@ gst_opus_enc_setup_channel_mappings (GstOpusEnc * enc,
- }
- }
-
--#ifndef GST_DISABLE_DEBUG
-+#ifndef GST_DISABLE_GST_DEBUG
- GST_INFO_OBJECT (enc,
- "Mapping tables built: %d channels, %d stereo streams", enc->n_channels,
- enc->n_stereo_streams);
-@@ -654,7 +654,7 @@ gst_opus_enc_setup (GstOpusEnc * enc)
- {
- int error = OPUS_OK;
-
--#ifndef GST_DISABLE_DEBUG
-+#ifndef GST_DISABLE_GST_DEBUG
- GST_DEBUG_OBJECT (enc,
- "setup: %d Hz, %d channels, %d stereo streams, family %d",
- enc->sample_rate, enc->n_channels, enc->n_stereo_streams,
-diff --git a/gst/jpegformat/gstjpegparse.c b/gst/jpegformat/gstjpegparse.c
-index f984a52..b4af9ed 100644
---- a/gst/jpegformat/gstjpegparse.c
-+++ b/gst/jpegformat/gstjpegparse.c
-@@ -545,7 +545,7 @@ gst_jpeg_parse_skip_marker (GstJpegParse * parse,
- if (!gst_byte_reader_get_uint16_be (reader, &size))
- return FALSE;
-
--#ifndef GST_DISABLE_DEBUG
-+#ifndef GST_DISABLE_GST_DEBUG
- /* We'd pry the id of the skipped application segment */
- if (marker >= APP0 && marker <= APP15) {
- const gchar *id_str = NULL;
-@@ -561,7 +561,7 @@ gst_jpeg_parse_skip_marker (GstJpegParse * parse,
- #else
- GST_DEBUG_OBJECT (parse, "unhandled marker %x skiping %u bytes", marker,
- size);
--#endif // GST_DISABLE_DEBUG
-+#endif // GST_DISABLE_GST_DEBUG
-
- if (!gst_byte_reader_skip (reader, size - 2))
- return FALSE;
---
-1.7.10
-
--- /dev/null
+From 0088753651350de3060ece22c1be4153b6009515 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Wed, 25 Jan 2012 23:53:04 +0100
+Subject: [PATCH] base: vorbisdeclib: support modern Tremor versions
+
+Reported upstream as https://bugzilla.gnome.org/show_bug.cgi?id=668726
+
+Tremor changed to use standard libogg rather than its own incompatible
+copy back in Aug 2010 (r17375), causing gst-plugin-base build to fail.
+
+Tremolo so far unfortunately hasn't been updated. Restructure
+vorbisdeclib.h so the legacy _ogg_packet_wrapper code is only used for
+Tremolo.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ ext/vorbis/gstvorbisdeclib.h | 77 ++++++++++++++++++++++-------------------
+ 1 files changed, 41 insertions(+), 36 deletions(-)
+
+diff --git a/ext/vorbis/gstvorbisdeclib.h b/ext/vorbis/gstvorbisdeclib.h
+index ca00af9..e147591 100644
+--- a/ext/vorbis/gstvorbisdeclib.h
++++ b/ext/vorbis/gstvorbisdeclib.h
+@@ -29,11 +29,6 @@
+
+ #ifndef TREMOR
+
+-#include <vorbis/codec.h>
+-
+-typedef float vorbis_sample_t;
+-typedef ogg_packet ogg_packet_wrapper;
+-
+ #define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to float audio"
+
+ #define GST_VORBIS_DEC_SRC_CAPS \
+@@ -47,6 +42,42 @@ typedef ogg_packet ogg_packet_wrapper;
+
+ #define GST_VORBIS_DEC_GLIB_TYPE_NAME GstVorbisDec
+
++#else /* TREMOR */
++
++#define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to integer audio"
++
++#define GST_VORBIS_DEC_SRC_CAPS \
++ GST_STATIC_CAPS ("audio/x-raw-int, " \
++ "rate = (int) [ 1, MAX ], " \
++ "channels = (int) [ 1, 6 ], " \
++ "endianness = (int) BYTE_ORDER, " \
++ "width = (int) { 16, 32 }, " \
++ "depth = (int) 16, " \
++ "signed = (boolean) true")
++
++#define GST_VORBIS_DEC_DEFAULT_SAMPLE_WIDTH (16)
++
++/* we need a different type name here */
++#define GST_VORBIS_DEC_GLIB_TYPE_NAME GstIVorbisDec
++
++/* and still have it compile */
++typedef struct _GstVorbisDec GstIVorbisDec;
++typedef struct _GstVorbisDecClass GstIVorbisDecClass;
++
++#endif /* TREMOR */
++
++#ifndef USE_TREMOLO
++
++#ifdef TREMOR
++ #include <tremor/ivorbiscodec.h>
++ typedef ogg_int32_t vorbis_sample_t;
++#else
++ #include <vorbis/codec.h>
++ typedef float vorbis_sample_t;
++#endif
++
++typedef ogg_packet ogg_packet_wrapper;
++
+ static inline guint8 *
+ gst_ogg_packet_data (ogg_packet * p)
+ {
+@@ -72,17 +103,11 @@ gst_ogg_packet_from_wrapper (ogg_packet_wrapper * packet)
+ return packet;
+ }
+
+-#else
+-
+-#ifdef USE_TREMOLO
+- #include <Tremolo/ivorbiscodec.h>
+- #include <Tremolo/codec_internal.h>
+- typedef ogg_int16_t vorbis_sample_t;
+-#else
+- #include <tremor/ivorbiscodec.h>
+- typedef ogg_int32_t vorbis_sample_t;
+-#endif
++#else /* USE_TREMOLO */
+
++#include <Tremolo/ivorbiscodec.h>
++#include <Tremolo/codec_internal.h>
++typedef ogg_int16_t vorbis_sample_t;
+ typedef struct _ogg_packet_wrapper ogg_packet_wrapper;
+
+ struct _ogg_packet_wrapper {
+@@ -91,26 +116,6 @@ struct _ogg_packet_wrapper {
+ ogg_buffer buf;
+ };
+
+-#define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to integer audio"
+-
+-#define GST_VORBIS_DEC_SRC_CAPS \
+- GST_STATIC_CAPS ("audio/x-raw-int, " \
+- "rate = (int) [ 1, MAX ], " \
+- "channels = (int) [ 1, 6 ], " \
+- "endianness = (int) BYTE_ORDER, " \
+- "width = (int) { 16, 32 }, " \
+- "depth = (int) 16, " \
+- "signed = (boolean) true")
+-
+-#define GST_VORBIS_DEC_DEFAULT_SAMPLE_WIDTH (16)
+-
+-/* we need a different type name here */
+-#define GST_VORBIS_DEC_GLIB_TYPE_NAME GstIVorbisDec
+-
+-/* and still have it compile */
+-typedef struct _GstVorbisDec GstIVorbisDec;
+-typedef struct _GstVorbisDecClass GstIVorbisDecClass;
+-
+ /* compensate minor variation */
+ #define vorbis_synthesis(a, b) vorbis_synthesis (a, b, 1)
+
+@@ -154,7 +159,7 @@ gst_ogg_packet_from_wrapper (ogg_packet_wrapper * packet)
+ return &(packet->packet);
+ }
+
+-#endif
++#endif /* USE_TREMOLO */
+
+ typedef void (*CopySampleFunc)(vorbis_sample_t *out, vorbis_sample_t **in,
+ guint samples, gint channels, gint width);
+--
+1.7.8.3
+
+++ /dev/null
-From 0088753651350de3060ece22c1be4153b6009515 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Wed, 25 Jan 2012 23:53:04 +0100
-Subject: [PATCH] base: vorbisdeclib: support modern Tremor versions
-
-Reported upstream as https://bugzilla.gnome.org/show_bug.cgi?id=668726
-
-Tremor changed to use standard libogg rather than its own incompatible
-copy back in Aug 2010 (r17375), causing gst-plugin-base build to fail.
-
-Tremolo so far unfortunately hasn't been updated. Restructure
-vorbisdeclib.h so the legacy _ogg_packet_wrapper code is only used for
-Tremolo.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- ext/vorbis/gstvorbisdeclib.h | 77 ++++++++++++++++++++++-------------------
- 1 files changed, 41 insertions(+), 36 deletions(-)
-
-diff --git a/ext/vorbis/gstvorbisdeclib.h b/ext/vorbis/gstvorbisdeclib.h
-index ca00af9..e147591 100644
---- a/ext/vorbis/gstvorbisdeclib.h
-+++ b/ext/vorbis/gstvorbisdeclib.h
-@@ -29,11 +29,6 @@
-
- #ifndef TREMOR
-
--#include <vorbis/codec.h>
--
--typedef float vorbis_sample_t;
--typedef ogg_packet ogg_packet_wrapper;
--
- #define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to float audio"
-
- #define GST_VORBIS_DEC_SRC_CAPS \
-@@ -47,6 +42,42 @@ typedef ogg_packet ogg_packet_wrapper;
-
- #define GST_VORBIS_DEC_GLIB_TYPE_NAME GstVorbisDec
-
-+#else /* TREMOR */
-+
-+#define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to integer audio"
-+
-+#define GST_VORBIS_DEC_SRC_CAPS \
-+ GST_STATIC_CAPS ("audio/x-raw-int, " \
-+ "rate = (int) [ 1, MAX ], " \
-+ "channels = (int) [ 1, 6 ], " \
-+ "endianness = (int) BYTE_ORDER, " \
-+ "width = (int) { 16, 32 }, " \
-+ "depth = (int) 16, " \
-+ "signed = (boolean) true")
-+
-+#define GST_VORBIS_DEC_DEFAULT_SAMPLE_WIDTH (16)
-+
-+/* we need a different type name here */
-+#define GST_VORBIS_DEC_GLIB_TYPE_NAME GstIVorbisDec
-+
-+/* and still have it compile */
-+typedef struct _GstVorbisDec GstIVorbisDec;
-+typedef struct _GstVorbisDecClass GstIVorbisDecClass;
-+
-+#endif /* TREMOR */
-+
-+#ifndef USE_TREMOLO
-+
-+#ifdef TREMOR
-+ #include <tremor/ivorbiscodec.h>
-+ typedef ogg_int32_t vorbis_sample_t;
-+#else
-+ #include <vorbis/codec.h>
-+ typedef float vorbis_sample_t;
-+#endif
-+
-+typedef ogg_packet ogg_packet_wrapper;
-+
- static inline guint8 *
- gst_ogg_packet_data (ogg_packet * p)
- {
-@@ -72,17 +103,11 @@ gst_ogg_packet_from_wrapper (ogg_packet_wrapper * packet)
- return packet;
- }
-
--#else
--
--#ifdef USE_TREMOLO
-- #include <Tremolo/ivorbiscodec.h>
-- #include <Tremolo/codec_internal.h>
-- typedef ogg_int16_t vorbis_sample_t;
--#else
-- #include <tremor/ivorbiscodec.h>
-- typedef ogg_int32_t vorbis_sample_t;
--#endif
-+#else /* USE_TREMOLO */
-
-+#include <Tremolo/ivorbiscodec.h>
-+#include <Tremolo/codec_internal.h>
-+typedef ogg_int16_t vorbis_sample_t;
- typedef struct _ogg_packet_wrapper ogg_packet_wrapper;
-
- struct _ogg_packet_wrapper {
-@@ -91,26 +116,6 @@ struct _ogg_packet_wrapper {
- ogg_buffer buf;
- };
-
--#define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to integer audio"
--
--#define GST_VORBIS_DEC_SRC_CAPS \
-- GST_STATIC_CAPS ("audio/x-raw-int, " \
-- "rate = (int) [ 1, MAX ], " \
-- "channels = (int) [ 1, 6 ], " \
-- "endianness = (int) BYTE_ORDER, " \
-- "width = (int) { 16, 32 }, " \
-- "depth = (int) 16, " \
-- "signed = (boolean) true")
--
--#define GST_VORBIS_DEC_DEFAULT_SAMPLE_WIDTH (16)
--
--/* we need a different type name here */
--#define GST_VORBIS_DEC_GLIB_TYPE_NAME GstIVorbisDec
--
--/* and still have it compile */
--typedef struct _GstVorbisDec GstIVorbisDec;
--typedef struct _GstVorbisDecClass GstIVorbisDecClass;
--
- /* compensate minor variation */
- #define vorbis_synthesis(a, b) vorbis_synthesis (a, b, 1)
-
-@@ -154,7 +159,7 @@ gst_ogg_packet_from_wrapper (ogg_packet_wrapper * packet)
- return &(packet->packet);
- }
-
--#endif
-+#endif /* USE_TREMOLO */
-
- typedef void (*CopySampleFunc)(vorbis_sample_t *out, vorbis_sample_t **in,
- guint samples, gint channels, gint width);
---
-1.7.8.3
-
--- /dev/null
+Fix building with Linux headers 3.6
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+From bfb1ac952b4c3caaba0297bbe7dc73ea92f9b292 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Thu, 09 Aug 2012 07:35:23 +0000
+Subject: v4l2: fix build with recent kernels, the v4l2_buffer input field was removed
+
+This was unused apparently and removed in the kernel in commit:
+
+ From 2b719d7baf490e24ce7d817c6337b7c87fda84c1 Mon Sep 17 00:00:00 2001
+ From: Sakari Ailus <sakari.ailus@iki.fi>
+ Date: Wed, 2 May 2012 09:40:03 -0300
+ Subject: [PATCH] [media] v4l: drop v4l2_buffer.input and V4L2_BUF_FLAG_INPUT
+
+ Remove input field in struct v4l2_buffer and flag V4L2_BUF_FLAG_INPUT which
+ tells the former is valid. The flag is used by no driver currently.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=681491
+---
+(limited to 'sys/v4l2/gstv4l2bufferpool.c')
+
+diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
+index 2e3a563..5aaed5a 100644
+--- a/sys/v4l2/gstv4l2bufferpool.c
++++ b/sys/v4l2/gstv4l2bufferpool.c
+@@ -182,7 +182,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps)
+ GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u",
+ ret->vbuffer.m.offset);
+ GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length);
+- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input);
+
+ ret->mmap_length = ret->vbuffer.length;
+ data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
+--
+cgit v0.9.0.2-2-gbebe
--- /dev/null
+From 8e633d2059cb835448021cf79becb487aff10975 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Mon, 18 Mar 2013 14:59:35 +0000
+Subject: [PATCH] v4l2: fix compilation against newer kernel headers as on
+ FC19
+
+---
+ sys/v4l2/v4l2_calls.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
+index 07d390a..4c10f4f 100644
+--- a/sys/v4l2/v4l2_calls.c
++++ b/sys/v4l2/v4l2_calls.c
+@@ -291,8 +291,12 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
+ break;
+ case V4L2_CID_HFLIP:
+ case V4L2_CID_VFLIP:
++#ifndef V4L2_CID_PAN_RESET
+ case V4L2_CID_HCENTER:
++#endif
++#ifndef V4L2_CID_TILT_RESET
+ case V4L2_CID_VCENTER:
++#endif
+ #ifdef V4L2_CID_PAN_RESET
+ case V4L2_CID_PAN_RESET:
+ #endif
+--
+1.7.10.4
+
+++ /dev/null
-Fix building with Linux headers 3.6
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From bfb1ac952b4c3caaba0297bbe7dc73ea92f9b292 Mon Sep 17 00:00:00 2001
-From: Matthias Clasen <mclasen@redhat.com>
-Date: Thu, 09 Aug 2012 07:35:23 +0000
-Subject: v4l2: fix build with recent kernels, the v4l2_buffer input field was removed
-
-This was unused apparently and removed in the kernel in commit:
-
- From 2b719d7baf490e24ce7d817c6337b7c87fda84c1 Mon Sep 17 00:00:00 2001
- From: Sakari Ailus <sakari.ailus@iki.fi>
- Date: Wed, 2 May 2012 09:40:03 -0300
- Subject: [PATCH] [media] v4l: drop v4l2_buffer.input and V4L2_BUF_FLAG_INPUT
-
- Remove input field in struct v4l2_buffer and flag V4L2_BUF_FLAG_INPUT which
- tells the former is valid. The flag is used by no driver currently.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=681491
----
-(limited to 'sys/v4l2/gstv4l2bufferpool.c')
-
-diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
-index 2e3a563..5aaed5a 100644
---- a/sys/v4l2/gstv4l2bufferpool.c
-+++ b/sys/v4l2/gstv4l2bufferpool.c
-@@ -182,7 +182,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps)
- GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u",
- ret->vbuffer.m.offset);
- GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length);
-- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input);
-
- ret->mmap_length = ret->vbuffer.length;
- data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
---
-cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 8e633d2059cb835448021cf79becb487aff10975 Mon Sep 17 00:00:00 2001
-From: Bastien Nocera <hadess@hadess.net>
-Date: Mon, 18 Mar 2013 14:59:35 +0000
-Subject: [PATCH] v4l2: fix compilation against newer kernel headers as on
- FC19
-
----
- sys/v4l2/v4l2_calls.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
-index 07d390a..4c10f4f 100644
---- a/sys/v4l2/v4l2_calls.c
-+++ b/sys/v4l2/v4l2_calls.c
-@@ -291,8 +291,12 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
- break;
- case V4L2_CID_HFLIP:
- case V4L2_CID_VFLIP:
-+#ifndef V4L2_CID_PAN_RESET
- case V4L2_CID_HCENTER:
-+#endif
-+#ifndef V4L2_CID_TILT_RESET
- case V4L2_CID_VCENTER:
-+#endif
- #ifdef V4L2_CID_PAN_RESET
- case V4L2_CID_PAN_RESET:
- #endif
---
-1.7.10.4
-
--- /dev/null
+Fix deprecation from bison 3.0+
+From http://comments.gmane.org/gmane.linux.lfs.beyond.devel/24620
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura gstreamer-0.10.36.orig/gst/parse/grammar.y gstreamer-0.10.36/gst/parse/grammar.y
+--- gstreamer-0.10.36.orig/gst/parse/grammar.y 2013-10-04 09:52:21.685282055 -0300
++++ gstreamer-0.10.36/gst/parse/grammar.y 2013-10-04 10:21:54.800211238 -0300
+@@ -26,7 +26,6 @@
+ */
+
+ #define YYERROR_VERBOSE 1
+-#define YYLEX_PARAM scanner
+
+ #define YYENABLE_NLS 0
+
+@@ -648,6 +647,7 @@
+ %right '.'
+ %left '!' '='
+
++%lex-param { void *scanner }
+ %parse-param { void *scanner }
+ %parse-param { graph_t *graph }
+ %pure-parser
+++ /dev/null
-Fix deprecation from bison 3.0+
-From http://comments.gmane.org/gmane.linux.lfs.beyond.devel/24620
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura gstreamer-0.10.36.orig/gst/parse/grammar.y gstreamer-0.10.36/gst/parse/grammar.y
---- gstreamer-0.10.36.orig/gst/parse/grammar.y 2013-10-04 09:52:21.685282055 -0300
-+++ gstreamer-0.10.36/gst/parse/grammar.y 2013-10-04 10:21:54.800211238 -0300
-@@ -26,7 +26,6 @@
- */
-
- #define YYERROR_VERBOSE 1
--#define YYLEX_PARAM scanner
-
- #define YYENABLE_NLS 0
-
-@@ -648,6 +647,7 @@
- %right '.'
- %left '!' '='
-
-+%lex-param { void *scanner }
- %parse-param { void *scanner }
- %parse-param { graph_t *graph }
- %pure-parser
--- /dev/null
+Use newer version of gettext to match current buildroot gettext.
+
+Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
+----
+Index: gst1-plugins-bad-1.1.1/po/Makefile.in.in
+===================================================================
+--- gst1-plugins-bad-1.1.1.orig/po/Makefile.in.in
++++ gst1-plugins-bad-1.1.1/po/Makefile.in.in
+@@ -9,7 +9,7 @@
+ # General Public License and is *not* in the public domain.
+ #
+ # Origin: gettext-0.17
+-GETTEXT_MACRO_VERSION = 0.17
++GETTEXT_MACRO_VERSION = 0.18
+
+ PACKAGE = @PACKAGE@
+ VERSION = @VERSION@
+++ /dev/null
-Use newer version of gettext to match current buildroot gettext.
-
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
-----
-Index: gst1-plugins-bad-1.1.1/po/Makefile.in.in
-===================================================================
---- gst1-plugins-bad-1.1.1.orig/po/Makefile.in.in
-+++ gst1-plugins-bad-1.1.1/po/Makefile.in.in
-@@ -9,7 +9,7 @@
- # General Public License and is *not* in the public domain.
- #
- # Origin: gettext-0.17
--GETTEXT_MACRO_VERSION = 0.17
-+GETTEXT_MACRO_VERSION = 0.18
-
- PACKAGE = @PACKAGE@
- VERSION = @VERSION@
--- /dev/null
+src/xml: use preg-gen xmli18n_tmp.h if specified
+
+Ideally, the programs needed at build-time should be built with
+CC_FOR_BUILD, and not with CC_FOR_HOST.
+
+Unfortunately, this program wants to link against the gutenprint libs,
+so we would also need to build them with CC_FOR_HOST, that is build them
+twice, once for build, once for host.
+
+Instead, in the Buildroot context, we first build gutenprint for the build
+system, use that to generate the incriminated header, and then re-use that
+header to build the gutenprint for the host.
+
+It is not possible to have such constructs in Makefile.am:
+ ifeq ($(FOO),)
+ bar: bla
+ cat $< >$@
+ else
+ bar:
+ echo $(FOO) >$@
+ endif
+
+as autoreconf will yell loudly that there is an 'endif' without an 'if'.
+Sigh... :-(
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN gutenprint-5.2.9.orig/src/xml/Makefile.am gutenprint-5.2.9/src/xml/Makefile.am
+--- gutenprint-5.2.9.orig/src/xml/Makefile.am 2011-03-30 02:43:24.000000000 +0200
++++ gutenprint-5.2.9/src/xml/Makefile.am 2013-03-24 17:08:08.435918773 +0100
+@@ -52,10 +52,13 @@
+
+
+ xmli18n-tmp.h: xml-stamp extract-strings
+- -rm -f $@ $@.tmp
+- ./extract-strings `cat xml-stamp | sed -e 's;^;$(srcdir)/;'` > $@.tmp
+- mv $@.tmp $@
+-
++ if [ -z "$(BR2_USE_PREGEN_XMLI18N_TMP_H)" ]; then \
++ rm -f $@ $@.tmp; \
++ ./extract-strings `cat xml-stamp | sed -e 's;^;$(srcdir)/;'` > $@.tmp; \
++ mv $@.tmp $@; \
++ else \
++ cp $(BR2_USE_PREGEN_XMLI18N_TMP_H) $@; \
++ fi
+
+ dist-hook: xmli18n-tmp.h xml-stamp
+ # xmli18n-tmp.h is needed by po/POTFILES.in at dist time
--- /dev/null
+From 08a5d355160eb2ac8346ae1b94591418343217f9 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Sun, 17 Aug 2014 23:43:20 +0200
+Subject: [PATCH 1/1] cups support: replaces -static with -static-libtool-libs
+
+gutenprint rely on the original behaviour of -static, but since commit
+in buildroot "support/libtool: make -static behave like -all-static" [1],
+the build of genppd is broken.
+
+genppd need to be build statically otherwise the following warning appears:
+***WARNING: Use of --disable-static-genppd or --disable-static
+ when building CUPS is very dangerous. The build may
+ fail when building the PPD files, or may *SILENTLY*
+ build incorrect PPD files or cause other problems.
+ Please review the README and release notes carefully!
+
+[1] http://git.buildroot.net/buildroot/commit/?id=97703978ac870ce2b14ad144f8e082de82aa2c64
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ src/cups/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am
+index 1e27ae0..d711b70 100644
+--- a/src/cups/Makefile.am
++++ b/src/cups/Makefile.am
+@@ -84,7 +84,7 @@ noinst_SCRIPTS=test-rastertogutenprint
+ endif
+
+ if BUILD_GENPPD_STATIC
+-STATIC_LDOPTS=-static -export-dynamic
++STATIC_LDOPTS=-static-libtool-libs -export-dynamic
+ endif
+
+ cups_calibrate_SOURCES = cups-calibrate.c
+--
+1.9.3
+
+++ /dev/null
-src/xml: use preg-gen xmli18n_tmp.h if specified
-
-Ideally, the programs needed at build-time should be built with
-CC_FOR_BUILD, and not with CC_FOR_HOST.
-
-Unfortunately, this program wants to link against the gutenprint libs,
-so we would also need to build them with CC_FOR_HOST, that is build them
-twice, once for build, once for host.
-
-Instead, in the Buildroot context, we first build gutenprint for the build
-system, use that to generate the incriminated header, and then re-use that
-header to build the gutenprint for the host.
-
-It is not possible to have such constructs in Makefile.am:
- ifeq ($(FOO),)
- bar: bla
- cat $< >$@
- else
- bar:
- echo $(FOO) >$@
- endif
-
-as autoreconf will yell loudly that there is an 'endif' without an 'if'.
-Sigh... :-(
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN gutenprint-5.2.9.orig/src/xml/Makefile.am gutenprint-5.2.9/src/xml/Makefile.am
---- gutenprint-5.2.9.orig/src/xml/Makefile.am 2011-03-30 02:43:24.000000000 +0200
-+++ gutenprint-5.2.9/src/xml/Makefile.am 2013-03-24 17:08:08.435918773 +0100
-@@ -52,10 +52,13 @@
-
-
- xmli18n-tmp.h: xml-stamp extract-strings
-- -rm -f $@ $@.tmp
-- ./extract-strings `cat xml-stamp | sed -e 's;^;$(srcdir)/;'` > $@.tmp
-- mv $@.tmp $@
--
-+ if [ -z "$(BR2_USE_PREGEN_XMLI18N_TMP_H)" ]; then \
-+ rm -f $@ $@.tmp; \
-+ ./extract-strings `cat xml-stamp | sed -e 's;^;$(srcdir)/;'` > $@.tmp; \
-+ mv $@.tmp $@; \
-+ else \
-+ cp $(BR2_USE_PREGEN_XMLI18N_TMP_H) $@; \
-+ fi
-
- dist-hook: xmli18n-tmp.h xml-stamp
- # xmli18n-tmp.h is needed by po/POTFILES.in at dist time
+++ /dev/null
-From 08a5d355160eb2ac8346ae1b94591418343217f9 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@openwide.fr>
-Date: Sun, 17 Aug 2014 23:43:20 +0200
-Subject: [PATCH 1/1] cups support: replaces -static with -static-libtool-libs
-
-gutenprint rely on the original behaviour of -static, but since commit
-in buildroot "support/libtool: make -static behave like -all-static" [1],
-the build of genppd is broken.
-
-genppd need to be build statically otherwise the following warning appears:
-***WARNING: Use of --disable-static-genppd or --disable-static
- when building CUPS is very dangerous. The build may
- fail when building the PPD files, or may *SILENTLY*
- build incorrect PPD files or cause other problems.
- Please review the README and release notes carefully!
-
-[1] http://git.buildroot.net/buildroot/commit/?id=97703978ac870ce2b14ad144f8e082de82aa2c64
-
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- src/cups/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am
-index 1e27ae0..d711b70 100644
---- a/src/cups/Makefile.am
-+++ b/src/cups/Makefile.am
-@@ -84,7 +84,7 @@ noinst_SCRIPTS=test-rastertogutenprint
- endif
-
- if BUILD_GENPPD_STATIC
--STATIC_LDOPTS=-static -export-dynamic
-+STATIC_LDOPTS=-static-libtool-libs -export-dynamic
- endif
-
- cups_calibrate_SOURCES = cups-calibrate.c
---
-1.9.3
-
--- /dev/null
+Add roken-h-process.pl from:
+https://raw.github.com/heimdal/heimdal/master/cf/roken-h-process.pl
+It's required for cross-compiling and missing from release tarballs:
+http://kerberos.996246.n3.nabble.com/Missing-roken-h-process-pl-when-cross-compiling-v1-5-2-td38806.html
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura heimdal-1.5.3.orig/cf/roken-h-process.pl heimdal-1.5.3/cf/roken-h-process.pl
+--- heimdal-1.5.3.orig/cf/roken-h-process.pl 1969-12-31 21:00:00.000000000 -0300
++++ heimdal-1.5.3/cf/roken-h-process.pl 2013-12-18 11:32:38.157625167 -0300
+@@ -0,0 +1,184 @@
++#!/usr/bin/perl
++
++require 'getopts.pl';
++
++my $debug = 0;
++
++Getopts('dc:p:o:') || die "foo";
++
++if ($opt_d) {
++ $debug = 1;
++}
++
++die "missing arg" if (!defined $opt_c || !defined $opt_p || !defined $opt_o);
++
++my %defines;
++my $IN;
++my $OUT;
++
++print "parse config.h\n" if ($debug);
++
++open IN, $opt_c || die "failed open ${opt_c}";
++
++my @nesting;
++
++push @nesting, 1;
++
++while (<IN>) {
++ if (m/\s*#ifdef\s+(.*)/) {
++ my $var = $1;
++ if (defined $defines{$var}) {
++ push @nesting, 1;
++ } else {
++ push @nesting, 0;
++ }
++ next;
++ } elsif (m/\s*#ifndef\s+(.*)/) {
++ my $var = $1;
++ if (defined $defines{$var}) {
++ push @nesting, 0;
++ } else {
++ push @nesting, 1;
++ }
++ next;
++ } elsif (m/\s*#else/) {
++ my $var = pop @nesting;
++ $var = !$var;
++ push @nesting, $var;
++ next;
++ } elsif ($nesting[$#nesting] and m/\s*#define\s+(\w+)\s+(\S+)/) {
++ my $res = $2;
++ $res = 1 if (!defined $res);
++ $defines{$1} = $res;
++ }
++}
++
++close IN;
++
++if ($debug) {
++ foreach my $i (keys %defines) {
++ print "k: $i v: $defines{$i}\n";
++ }
++}
++
++open IN, "$opt_p" || die "failed open ${opt_p}";
++open OUT, ">$opt_o" || die "failed open ${opt_o}";
++
++print "parse roken.h.in\n" if ($debug);
++
++print OUT "/* This is an OS dependent, generated file */\n";
++print OUT "\n";
++print OUT "\n";
++print OUT "#ifndef __ROKEN_H__\n";
++print OUT "#define __ROKEN_H__\n";
++print OUT "\n";
++
++@nesting = (1);
++
++while (<IN>) {
++ if (m/\s*#ifdef\s+(.*)/) {
++ my $var = $1;
++ if (defined $defines{$var}) {
++ push @nesting, 1;
++ } else {
++ push @nesting, 0;
++ }
++ next;
++ } elsif (m/\s*#ifndef\s+(.*)/) {
++ my $var = $1;
++ if (defined $defines{$var}) {
++ push @nesting, 0;
++ } else {
++ push @nesting, 1;
++ }
++ next;
++ } elsif (m/\s*#if\s+(.*)/) {
++ my $res = parse_if($1);
++ print "line = $res: $1\n" if ($debug);
++ push @nesting, $res;
++ next;
++ } elsif (m/\s*#elif\s+(.*)/) {
++ my $res = pop @nesting;
++ if ($res gt 0) {
++ $res = -1;
++ } else {
++ my $res = parse_if($1);
++ }
++ push @nesting, $res;
++ next;
++ } elsif (m/\s*#else/) {
++ my $var = pop @nesting;
++ $var = !$var;
++ push @nesting, $var;
++ next;
++ } elsif (m/\s*#endif/) {
++ pop @nesting;
++ next;
++ }
++ print "line: $_\n" if ($debug);
++ print "nesting dep $#{nesting}\n" if ($debug);
++ my $i = 0, $t = 1;
++ while ($i le $#nesting) {
++ $t = 0 if ($nesting[$i] le 0);
++ print "nesting $i val $nesting[$i] -> $t\n" if ($debug);
++ $i++;
++ }
++ if ($t) {
++ print OUT;
++ }
++}
++
++print OUT "\n";
++print OUT "#endif /* __ROKEN_H__ */\n";
++
++
++close IN;
++
++exit 0;
++
++sub parse_if
++{
++ my ($neg, $var);
++
++ $_ = shift;
++
++ if (m/^\s*$/) {
++ print "end $_\n" if ($debug);
++ return 1;
++ } elsif (m/^([^&]+)\&\&(.*)$/) {
++ print "$1 and $2\n" if ($debug);
++ return parse_if($1) and parse_if($2);
++ } elsif (m/^\(([^&]+)\&\&(.*)$/) {
++ print "$1 and $2\n" if ($debug);
++ return parse_if($1) and parse_if($2);
++ } elsif (m/^([^\|]+)\|\|(.*)$/) {
++ print "$1 or $2\n" if ($debug);
++ return parse_if($1) or parse_if($2);
++ } elsif (m/^\s*(\!)?\s*defined\((\w+)\)/) {
++ ($neg, $var) = ($1, $2);
++ print "def: ${neg}-defined(${var})\n" if ($debug);
++ my $res = defined $defines{$var};
++ if ($neg eq "!") {
++ if ($res) {
++ $res = 0;
++ } else {
++ $res = 1;
++ }
++ }
++ print "res: $res\n" if ($debug);
++ return $res;
++ } elsif (m/^\s*(\!)?(\w+)/) {
++ ($neg, $var) = ($1, $2);
++ print "var: $neg $var\n" if ($debug);
++ my $res;
++ if (defined $defines{$var}) {
++ $res = $defines{$var};
++ } else {
++ $res = 0;
++ }
++ $res = ! $res if ($neg =~ m/!/);
++ print "res: $res\n" if ($debug);
++ return $res;
++ }
++ die "failed parse: $_\n";
++}
--- /dev/null
+From 6080c0b229c6e332d7dd609d9435ac9baeeea443 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Thu, 30 Jan 2014 16:33:02 -0300
+Subject: [PATCH] roken-h-process: use Getopt::Std, getopts.pl is deprecated
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ cf/roken-h-process.pl | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cf/roken-h-process.pl b/cf/roken-h-process.pl
+index 153a35c..72d3bd3 100644
+--- a/cf/roken-h-process.pl
++++ b/cf/roken-h-process.pl
+@@ -1,10 +1,10 @@
+ #!/usr/bin/perl
+
+-require 'getopts.pl';
++use Getopt::Std;
+
+ my $debug = 0;
+
+-Getopts('dc:p:o:') || die "foo";
++getopts('dc:p:o:') || die "foo";
+
+ if ($opt_d) {
+ $debug = 1;
+--
+1.8.3.2
+
--- /dev/null
+Add --vendor option to krb5-config, required by samba 4.
+Status: Backport from upstream git.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura heimdal-1.5.3.orig/tools/krb5-config.in heimdal-1.5.3.vendor/tools/krb5-config.in
+--- heimdal-1.5.3.orig/tools/krb5-config.in 2012-12-09 19:06:44.000000000 -0300
++++ heimdal-1.5.3.vendor/tools/krb5-config.in 2013-12-18 15:49:45.283986300 -0300
+@@ -50,6 +50,10 @@
+ do_usage=yes
+ usage_exit=0
+ ;;
++ --vendor)
++ echo "Heimdal";
++ exit 0
++ ;;
+ --version)
+ echo "@PACKAGE@ @VERSION@"
+ exit 0
--- /dev/null
+Use compile_et from e2fsprogs rather than building the native and useless one
+from heimdal.
+
+Idea from:
+http://comments.gmane.org/gmane.comp.encryption.kerberos.heimdal.general/6572
+
+Status: Backport from upstream git.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura heimdal-1.5.3.orig/cf/check-compile-et.m4 heimdal-1.5.3.et/cf/check-compile-et.m4
+--- heimdal-1.5.3.orig/cf/check-compile-et.m4 2012-12-09 19:06:44.000000000 -0300
++++ heimdal-1.5.3.et/cf/check-compile-et.m4 2013-12-18 14:20:04.025925879 -0300
+@@ -3,12 +3,12 @@
+ dnl CHECK_COMPILE_ET
+ AC_DEFUN([CHECK_COMPILE_ET], [
+
+-AC_CHECK_PROG(COMPILE_ET, compile_et, [compile_et])
++AC_CHECK_PROG(COMPILE_ET, compile_et, [compile_et], [no])
+
+ krb_cv_compile_et="no"
+ krb_cv_com_err_need_r=""
+ krb_cv_compile_et_cross=no
+-if test "${COMPILE_ET}" = "compile_et"; then
++if test "$COMPILE_ET" != "no"; then
+
+ dnl We have compile_et. Now let's see if it supports `prefix' and `index'.
+ AC_MSG_CHECKING(whether compile_et has the features we need)
+++ /dev/null
-Add roken-h-process.pl from:
-https://raw.github.com/heimdal/heimdal/master/cf/roken-h-process.pl
-It's required for cross-compiling and missing from release tarballs:
-http://kerberos.996246.n3.nabble.com/Missing-roken-h-process-pl-when-cross-compiling-v1-5-2-td38806.html
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura heimdal-1.5.3.orig/cf/roken-h-process.pl heimdal-1.5.3/cf/roken-h-process.pl
---- heimdal-1.5.3.orig/cf/roken-h-process.pl 1969-12-31 21:00:00.000000000 -0300
-+++ heimdal-1.5.3/cf/roken-h-process.pl 2013-12-18 11:32:38.157625167 -0300
-@@ -0,0 +1,184 @@
-+#!/usr/bin/perl
-+
-+require 'getopts.pl';
-+
-+my $debug = 0;
-+
-+Getopts('dc:p:o:') || die "foo";
-+
-+if ($opt_d) {
-+ $debug = 1;
-+}
-+
-+die "missing arg" if (!defined $opt_c || !defined $opt_p || !defined $opt_o);
-+
-+my %defines;
-+my $IN;
-+my $OUT;
-+
-+print "parse config.h\n" if ($debug);
-+
-+open IN, $opt_c || die "failed open ${opt_c}";
-+
-+my @nesting;
-+
-+push @nesting, 1;
-+
-+while (<IN>) {
-+ if (m/\s*#ifdef\s+(.*)/) {
-+ my $var = $1;
-+ if (defined $defines{$var}) {
-+ push @nesting, 1;
-+ } else {
-+ push @nesting, 0;
-+ }
-+ next;
-+ } elsif (m/\s*#ifndef\s+(.*)/) {
-+ my $var = $1;
-+ if (defined $defines{$var}) {
-+ push @nesting, 0;
-+ } else {
-+ push @nesting, 1;
-+ }
-+ next;
-+ } elsif (m/\s*#else/) {
-+ my $var = pop @nesting;
-+ $var = !$var;
-+ push @nesting, $var;
-+ next;
-+ } elsif ($nesting[$#nesting] and m/\s*#define\s+(\w+)\s+(\S+)/) {
-+ my $res = $2;
-+ $res = 1 if (!defined $res);
-+ $defines{$1} = $res;
-+ }
-+}
-+
-+close IN;
-+
-+if ($debug) {
-+ foreach my $i (keys %defines) {
-+ print "k: $i v: $defines{$i}\n";
-+ }
-+}
-+
-+open IN, "$opt_p" || die "failed open ${opt_p}";
-+open OUT, ">$opt_o" || die "failed open ${opt_o}";
-+
-+print "parse roken.h.in\n" if ($debug);
-+
-+print OUT "/* This is an OS dependent, generated file */\n";
-+print OUT "\n";
-+print OUT "\n";
-+print OUT "#ifndef __ROKEN_H__\n";
-+print OUT "#define __ROKEN_H__\n";
-+print OUT "\n";
-+
-+@nesting = (1);
-+
-+while (<IN>) {
-+ if (m/\s*#ifdef\s+(.*)/) {
-+ my $var = $1;
-+ if (defined $defines{$var}) {
-+ push @nesting, 1;
-+ } else {
-+ push @nesting, 0;
-+ }
-+ next;
-+ } elsif (m/\s*#ifndef\s+(.*)/) {
-+ my $var = $1;
-+ if (defined $defines{$var}) {
-+ push @nesting, 0;
-+ } else {
-+ push @nesting, 1;
-+ }
-+ next;
-+ } elsif (m/\s*#if\s+(.*)/) {
-+ my $res = parse_if($1);
-+ print "line = $res: $1\n" if ($debug);
-+ push @nesting, $res;
-+ next;
-+ } elsif (m/\s*#elif\s+(.*)/) {
-+ my $res = pop @nesting;
-+ if ($res gt 0) {
-+ $res = -1;
-+ } else {
-+ my $res = parse_if($1);
-+ }
-+ push @nesting, $res;
-+ next;
-+ } elsif (m/\s*#else/) {
-+ my $var = pop @nesting;
-+ $var = !$var;
-+ push @nesting, $var;
-+ next;
-+ } elsif (m/\s*#endif/) {
-+ pop @nesting;
-+ next;
-+ }
-+ print "line: $_\n" if ($debug);
-+ print "nesting dep $#{nesting}\n" if ($debug);
-+ my $i = 0, $t = 1;
-+ while ($i le $#nesting) {
-+ $t = 0 if ($nesting[$i] le 0);
-+ print "nesting $i val $nesting[$i] -> $t\n" if ($debug);
-+ $i++;
-+ }
-+ if ($t) {
-+ print OUT;
-+ }
-+}
-+
-+print OUT "\n";
-+print OUT "#endif /* __ROKEN_H__ */\n";
-+
-+
-+close IN;
-+
-+exit 0;
-+
-+sub parse_if
-+{
-+ my ($neg, $var);
-+
-+ $_ = shift;
-+
-+ if (m/^\s*$/) {
-+ print "end $_\n" if ($debug);
-+ return 1;
-+ } elsif (m/^([^&]+)\&\&(.*)$/) {
-+ print "$1 and $2\n" if ($debug);
-+ return parse_if($1) and parse_if($2);
-+ } elsif (m/^\(([^&]+)\&\&(.*)$/) {
-+ print "$1 and $2\n" if ($debug);
-+ return parse_if($1) and parse_if($2);
-+ } elsif (m/^([^\|]+)\|\|(.*)$/) {
-+ print "$1 or $2\n" if ($debug);
-+ return parse_if($1) or parse_if($2);
-+ } elsif (m/^\s*(\!)?\s*defined\((\w+)\)/) {
-+ ($neg, $var) = ($1, $2);
-+ print "def: ${neg}-defined(${var})\n" if ($debug);
-+ my $res = defined $defines{$var};
-+ if ($neg eq "!") {
-+ if ($res) {
-+ $res = 0;
-+ } else {
-+ $res = 1;
-+ }
-+ }
-+ print "res: $res\n" if ($debug);
-+ return $res;
-+ } elsif (m/^\s*(\!)?(\w+)/) {
-+ ($neg, $var) = ($1, $2);
-+ print "var: $neg $var\n" if ($debug);
-+ my $res;
-+ if (defined $defines{$var}) {
-+ $res = $defines{$var};
-+ } else {
-+ $res = 0;
-+ }
-+ $res = ! $res if ($neg =~ m/!/);
-+ print "res: $res\n" if ($debug);
-+ return $res;
-+ }
-+ die "failed parse: $_\n";
-+}
+++ /dev/null
-From 6080c0b229c6e332d7dd609d9435ac9baeeea443 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Thu, 30 Jan 2014 16:33:02 -0300
-Subject: [PATCH] roken-h-process: use Getopt::Std, getopts.pl is deprecated
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- cf/roken-h-process.pl | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/cf/roken-h-process.pl b/cf/roken-h-process.pl
-index 153a35c..72d3bd3 100644
---- a/cf/roken-h-process.pl
-+++ b/cf/roken-h-process.pl
-@@ -1,10 +1,10 @@
- #!/usr/bin/perl
-
--require 'getopts.pl';
-+use Getopt::Std;
-
- my $debug = 0;
-
--Getopts('dc:p:o:') || die "foo";
-+getopts('dc:p:o:') || die "foo";
-
- if ($opt_d) {
- $debug = 1;
---
-1.8.3.2
-
+++ /dev/null
-Add --vendor option to krb5-config, required by samba 4.
-Status: Backport from upstream git.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura heimdal-1.5.3.orig/tools/krb5-config.in heimdal-1.5.3.vendor/tools/krb5-config.in
---- heimdal-1.5.3.orig/tools/krb5-config.in 2012-12-09 19:06:44.000000000 -0300
-+++ heimdal-1.5.3.vendor/tools/krb5-config.in 2013-12-18 15:49:45.283986300 -0300
-@@ -50,6 +50,10 @@
- do_usage=yes
- usage_exit=0
- ;;
-+ --vendor)
-+ echo "Heimdal";
-+ exit 0
-+ ;;
- --version)
- echo "@PACKAGE@ @VERSION@"
- exit 0
+++ /dev/null
-Use compile_et from e2fsprogs rather than building the native and useless one
-from heimdal.
-
-Idea from:
-http://comments.gmane.org/gmane.comp.encryption.kerberos.heimdal.general/6572
-
-Status: Backport from upstream git.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura heimdal-1.5.3.orig/cf/check-compile-et.m4 heimdal-1.5.3.et/cf/check-compile-et.m4
---- heimdal-1.5.3.orig/cf/check-compile-et.m4 2012-12-09 19:06:44.000000000 -0300
-+++ heimdal-1.5.3.et/cf/check-compile-et.m4 2013-12-18 14:20:04.025925879 -0300
-@@ -3,12 +3,12 @@
- dnl CHECK_COMPILE_ET
- AC_DEFUN([CHECK_COMPILE_ET], [
-
--AC_CHECK_PROG(COMPILE_ET, compile_et, [compile_et])
-+AC_CHECK_PROG(COMPILE_ET, compile_et, [compile_et], [no])
-
- krb_cv_compile_et="no"
- krb_cv_com_err_need_r=""
- krb_cv_compile_et_cross=no
--if test "${COMPILE_ET}" = "compile_et"; then
-+if test "$COMPILE_ET" != "no"; then
-
- dnl We have compile_et. Now let's see if it supports `prefix' and `index'.
- AC_MSG_CHECKING(whether compile_et has the features we need)
--- /dev/null
+From 6019d012246578ae1a191d3510284e7b894fb528 Mon Sep 17 00:00:00 2001
+From: Olivier Schonken <olivier.schonken@gmail.com>
+Date: Sat, 2 Mar 2013 18:01:03 +0200
+Subject: [PATCH] Changed Makefile.am to allow cross-compilation of HPLIP
+
+Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com>
+---
+ Makefile.am | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 16ea902..b22f46a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -72,7 +72,7 @@ libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/
+ io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
+ io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb_libusb01.c
+ else
+-libhpmud_la_CFLAGS = -I/usr/include/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
++libhpmud_la_CFLAGS = -I$(includedir)/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
+ libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/pml.c \
+ io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
+ io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb.c
+@@ -292,7 +292,7 @@ hpmudext_la_LIBADD = libhpmud.la
+ if LIBUSB01_BUILD
+ hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
+ else
+-hpmudext_la_CFLAGS =-I/usr/include/libusb-1.0 -I$(PYTHONINCLUDEDIR)
++hpmudext_la_CFLAGS =-I$(includedir)/libusb-1.0 -I$(PYTHONINCLUDEDIR)
+ endif
+
+ # ui (qt3)
+--
+1.7.10.4
+
+++ /dev/null
-From 6019d012246578ae1a191d3510284e7b894fb528 Mon Sep 17 00:00:00 2001
-From: Olivier Schonken <olivier.schonken@gmail.com>
-Date: Sat, 2 Mar 2013 18:01:03 +0200
-Subject: [PATCH] Changed Makefile.am to allow cross-compilation of HPLIP
-
-Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com>
----
- Makefile.am | 28 ++++++++++++++--------------
- 1 file changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 16ea902..b22f46a 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -72,7 +72,7 @@ libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/
- io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
- io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb_libusb01.c
- else
--libhpmud_la_CFLAGS = -I/usr/include/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
-+libhpmud_la_CFLAGS = -I$(includedir)/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
- libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/pml.c \
- io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
- io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb.c
-@@ -292,7 +292,7 @@ hpmudext_la_LIBADD = libhpmud.la
- if LIBUSB01_BUILD
- hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
- else
--hpmudext_la_CFLAGS =-I/usr/include/libusb-1.0 -I$(PYTHONINCLUDEDIR)
-+hpmudext_la_CFLAGS =-I$(includedir)/libusb-1.0 -I$(PYTHONINCLUDEDIR)
- endif
-
- # ui (qt3)
---
-1.7.10.4
-
--- /dev/null
+# This patch removes the check for native_affinity for cross compiling.
+# This patch has been pushed to htop on 23 November 2011, however, is
+# not in the 1.0 release and may not be exactly what Hisham puts into
+# the official build.
+#
+# Signed-off-by: Andy Kennedy <Andy.Kennedy@adtran.com>
+diff -Naur a/configure.ac b/configure.ac
+--- a/configure.ac 2011-11-20 20:46:48.000000000 -0600
++++ b/configure.ac 2011-11-23 10:41:44.000000000 -0600
+@@ -111,7 +111,6 @@
+ if test "$cross_compiling" = "no"; then
+ AC_CHECK_FILE($PROCDIR/stat,,AC_MSG_ERROR(Cannot find /proc/stat. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.))
+ AC_CHECK_FILE($PROCDIR/meminfo,,AC_MSG_ERROR(Cannot find /proc/meminfo. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.))
+-fi
+
+ AC_ARG_ENABLE(native_affinity, [AC_HELP_STRING([--enable-native-affinity], [enable native sched_setaffinity and sched_getaffinity for affinity support, disables hwloc])], ,enable_native_affinity="yes")
+ if test "x$enable_native_affinity" = xyes; then
+@@ -130,6 +129,7 @@
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
+ fi
++fi
+
+ AC_ARG_ENABLE(hwloc, [AC_HELP_STRING([--enable-hwloc], [enable hwloc support for CPU affinity])],, enable_hwloc="no")
+ if test "x$enable_hwloc" = xyes
+++ /dev/null
-# This patch removes the check for native_affinity for cross compiling.
-# This patch has been pushed to htop on 23 November 2011, however, is
-# not in the 1.0 release and may not be exactly what Hisham puts into
-# the official build.
-#
-# Signed-off-by: Andy Kennedy <Andy.Kennedy@adtran.com>
-diff -Naur a/configure.ac b/configure.ac
---- a/configure.ac 2011-11-20 20:46:48.000000000 -0600
-+++ b/configure.ac 2011-11-23 10:41:44.000000000 -0600
-@@ -111,7 +111,6 @@
- if test "$cross_compiling" = "no"; then
- AC_CHECK_FILE($PROCDIR/stat,,AC_MSG_ERROR(Cannot find /proc/stat. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.))
- AC_CHECK_FILE($PROCDIR/meminfo,,AC_MSG_ERROR(Cannot find /proc/meminfo. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.))
--fi
-
- AC_ARG_ENABLE(native_affinity, [AC_HELP_STRING([--enable-native-affinity], [enable native sched_setaffinity and sched_getaffinity for affinity support, disables hwloc])], ,enable_native_affinity="yes")
- if test "x$enable_native_affinity" = xyes; then
-@@ -130,6 +129,7 @@
- AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])])
- fi
-+fi
-
- AC_ARG_ENABLE(hwloc, [AC_HELP_STRING([--enable-hwloc], [enable hwloc support for CPU affinity])],, enable_hwloc="no")
- if test "x$enable_hwloc" = xyes
--- /dev/null
+Move LDFLAGS+=-lm option to the end.
+The order of the math library directive '-lm' matters.
+
+Signed-off-by: Yuvaraj Patil <yuvaraj.patil@wipro.com>
+---
+diff -Nurp httping-2.3.4_orig/Makefile httping-2.3.4/Makefile
+--- httping-2.3.4_orig/Makefile 2014-07-23 16:16:36.495546288 +0530
++++ httping-2.3.4/Makefile 2014-07-23 16:18:42.547541002 +0530
+@@ -37,7 +37,6 @@ DEBUG=yes
+ WFLAGS=-Wall -W
+ OFLAGS=
+ CFLAGS+=$(WFLAGS) $(OFLAGS) -DVERSION=\"$(VERSION)\" -DLOCALEDIR=\"$(LOCALEDIR)\"
+-LDFLAGS+=-lm
+
+ PACKAGE=$(TARGET)-$(VERSION)
+ PREFIX?=/usr
+@@ -97,6 +96,8 @@ ifeq ($(ARM),yes)
+ CC=arm-linux-gcc
+ endif
+
++LDFLAGS+=-lm
++
+ all: $(TARGET) $(TRANSLATIONS)
+
+ $(TARGET): $(OBJS)
+++ /dev/null
-Move LDFLAGS+=-lm option to the end.
-The order of the math library directive '-lm' matters.
-
-Signed-off-by: Yuvaraj Patil <yuvaraj.patil@wipro.com>
----
-diff -Nurp httping-2.3.4_orig/Makefile httping-2.3.4/Makefile
---- httping-2.3.4_orig/Makefile 2014-07-23 16:16:36.495546288 +0530
-+++ httping-2.3.4/Makefile 2014-07-23 16:18:42.547541002 +0530
-@@ -37,7 +37,6 @@ DEBUG=yes
- WFLAGS=-Wall -W
- OFLAGS=
- CFLAGS+=$(WFLAGS) $(OFLAGS) -DVERSION=\"$(VERSION)\" -DLOCALEDIR=\"$(LOCALEDIR)\"
--LDFLAGS+=-lm
-
- PACKAGE=$(TARGET)-$(VERSION)
- PREFIX?=/usr
-@@ -97,6 +96,8 @@ ifeq ($(ARM),yes)
- CC=arm-linux-gcc
- endif
-
-+LDFLAGS+=-lm
-+
- all: $(TARGET) $(TRANSLATIONS)
-
- $(TARGET): $(OBJS)
--- /dev/null
+Don't build object files twice
+
+When passed --enable-static and --enable-shared, icu will generate
+both a shared and a static version of its libraries.
+
+However, in order to do so, it builds each and every object file
+twice: once with -fPIC (for the shared library), and once without
+-fPIC (for the static library). While admittedly building -fPIC for a
+static library generates a slightly suboptimal code, this is what all
+the autotools-based project are doing. They build each object file
+once, and they use it for both the static and shared libraries.
+
+icu builds the object files for the shared library as .o files, and
+the object files for static library as .ao files. By simply changing
+the suffix of object files used for static libraries to ".o", we tell
+icu to use the ones built for the shared library (i.e, with -fPIC),
+and avoid the double build of icu.
+
+On a fast build server, this brings the target icu build from
+3m41.302s down to 1m43.926s (approximate numbers: some other builds
+are running on the system at the same time).
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/source/config/mh-linux
+===================================================================
+--- a/source/config/mh-linux
++++ b/source/config/mh-linux
+@@ -35,7 +35,7 @@
+ ## Shared object suffix
+ SO = so
+ ## Non-shared intermediate object suffix
+-STATIC_O = ao
++STATIC_O = o
+
+ ## Compilation rules
+ %.$(STATIC_O): $(srcdir)/%.c
--- /dev/null
+Workaround toolchain bugs
+
+Many of ARM Sourcery CodeBench toolchain have a bug when compiling
+icu's translit.cpp source file. The bug is trigerred when there is a
+combination of "-W -Wall" and "-Os", and causes an internal compiler
+error. The bug has been reported to Mentor Graphics.
+
+Even though it is clearly a toolchain bug, having a workaround for it
+is trivial in this case. So it will avoid our users falling into this
+internal compiler error, and allow our autobuilders to test more
+packages using this Sourcery CodeBench toolchain.qq
+
+[Gustavo: update for ICU4C 54.1]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura icu.orig/source/configure icu/source/configure
+--- icu.orig/source/configure 2014-12-18 15:49:43.038628644 -0300
++++ icu/source/configure 2014-12-18 15:51:23.183083232 -0300
+@@ -4323,7 +4323,7 @@
+ ;;
+ esac
+
+- CFLAGS="$CFLAGS -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
++ CFLAGS="$CFLAGS -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
+ else
+ case "${host}" in
+ *-*-cygwin)
+@@ -4337,7 +4337,7 @@
+ fi
+ if test "$GXX" = yes
+ then
+- CXXFLAGS="$CXXFLAGS -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long"
++ CXXFLAGS="$CXXFLAGS -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long"
+ else
+ case "${host}" in
+ *-*-cygwin)
--- /dev/null
+detect and add compiler symbol prefix to the assembly code
+
+Some compiler, such as Blackfin GNU compiler, prefix a charater to any
+C symbol in generated assembly code. If any assembly symbol is invoked
+from C code, it needs to be prefixed as well.
+
+Note: since autoreconf doesn't work with this package because automake
+isn't support
+
+[Ryan: add information about why patching configure is ok]
+[Gustavo: update for ICU4C 54.1]
+
+Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
+Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura icu.orig/source/configure icu/source/configure
+--- icu.orig/source/configure 2014-12-18 15:49:43.038628644 -0300
++++ icu/source/configure 2014-12-18 15:56:05.793832186 -0300
+@@ -637,6 +637,7 @@
+ ICUDATA_CHAR
+ SAMPLES_TRUE
+ TESTS_TRUE
++SYMBOL_PREFIX
+ ICULIBSUFFIXCNAME
+ U_HAVE_LIB_SUFFIX
+ ICULIBSUFFIX
+@@ -7414,6 +7415,17 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_UTF16_STRING_RESULT" >&5
+ $as_echo "$CHECK_UTF16_STRING_RESULT" >&6; }
+
++# Check compiler generated symbol profix
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for symbol prefix" >&5
++$as_echo "checking for symbol prefix... " >&6; }
++ SYMBOL_PREFIX=`echo "PREFIX=__USER_LABEL_PREFIX__" \
++ | ${CPP-${CC-gcc} -E} - 2>&1 \
++ | ${EGREP-grep} "^PREFIX=" \
++ | sed -e "s:^PREFIX=::" -e "s:__USER_LABEL_PREFIX__::"`
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SYMBOL_PREFIX" >&5
++$as_echo "$SYMBOL_PREFIX" >&6; }
++
+ # Enable/disable extras
+ # Check whether --enable-extras was given.
+ if test "${enable_extras+set}" = set; then :
+diff -Nura icu.orig/source/data/Makefile.in icu/source/data/Makefile.in
+--- icu.orig/source/data/Makefile.in 2014-12-18 15:49:42.908624160 -0300
++++ icu/source/data/Makefile.in 2014-12-18 16:01:32.751110913 -0300
+@@ -182,11 +182,11 @@
+ packagedata: icupkg.inc $(PKGDATA_LIST) build-local
+ ifneq ($(ENABLE_STATIC),)
+ ifeq ($(PKGDATA_MODE),dll)
+- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
++ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
+ endif
+ endif
+ ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
+- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
++ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
+ else
+ $(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR)
+ endif
+@@ -209,11 +209,11 @@
+ endif
+ ifneq ($(ENABLE_STATIC),)
+ ifeq ($(PKGDATA_MODE),dll)
+- $(PKGDATA_INVOKE) $(PKGDATA) -m static -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
++ $(PKGDATA_INVOKE) $(PKGDATA) -m static -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
+ endif
+ endif
+ ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
+- $(PKGDATA_INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_DIR)
++ $(PKGDATA_INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_DIR)
+ else
+ $(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(DESTDIR)$(ICUPKGDATA_DIR)
+ endif
+@@ -224,7 +224,7 @@
+ #### 390 support
+ install390: package390
+ $(MKINSTALLDIRS) $(TMPDATADIR) $(DESTDIR)$(libdir)
+- $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e $(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
++ $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
+ ifeq ($(PKGDATA_MODE),dll)
+ $(INSTALL-L) $(ICUPKGDATA_OUTDIR)/$(FINAL_IMPORT_LIB) $(DESTDIR)$(ICUPKGDATA_DIR)/$(FINAL_IMPORT_LIB)
+ endif
+@@ -232,7 +232,7 @@
+ #### $(LIB_ICUDATA_NAME)$(STUB_SUFFIX) is the subset data for batch mode
+ package390: $(OUTTMPDIR)/icudata390.lst $(PKGDATA_LIST) ./icupkg.inc packagedata
+ ln -s $(ICUDATA_NAME) $(OUTDIR)/build/$(ICUDATA_NAME)$(STUB_SUFFIX)
+- $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e $(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING)
++ $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING)
+ cp $(ICUPKGDATA_OUTDIR)/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO) $(top_builddir)/stubdata/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO)
+
+
+diff -Nura icu.orig/source/extra/uconv/Makefile.in icu/source/extra/uconv/Makefile.in
+--- icu.orig/source/extra/uconv/Makefile.in 2014-12-18 15:49:42.986626850 -0300
++++ icu/source/extra/uconv/Makefile.in 2014-12-18 15:57:40.558101179 -0300
+@@ -58,7 +58,8 @@
+ ## Static mode
+ ifeq ($(UCONVMSG_MODE),static)
+ DEFS += -DUCONVMSG_LINK=$(MSGNAME)
+-UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)$(MSGNAME).$(A)
++UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)@SYMBOL_PREFIX@$(MSGNAME).$(A)
++
+ LIBS += $(UCONVMSG_LIB)
+ PKGMODE=static
+ INSTALLTO=$(libdir)
+@@ -152,7 +153,7 @@
+ endif
+
+ $(UCONVMSG_LIB): $(RESFILES) $(RESDIR)/$(RESDIR).lst pkgdata.inc
+- $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p $(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
++ $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p @SYMBOL_PREFIX@$(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
+
+ $(RESDIR)/$(RESDIR).lst: Makefile $(srcdir)/resfiles.mk
+ @-$(RMV) $@
--- /dev/null
+From d5d0c4bb7cc9aa4a132ec0bea13255aee50c1cf9 Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maxime.hadjinlian@devialet.com>
+Date: Fri, 6 Jun 2014 14:55:58 +0200
+Subject: [PATCH] Don't link icudata as a data only library
+
+This patch cames straight from Debian. It fixes an issue when
+libicudata would not have some flags indicating it's EABIhf, causing
+applications linked against libicudata to not start on EABIhf
+systems. Getting rid of the -nodefaultlibs -nostdlib flags solves the
+problem, and is the solution that is used by Debian, see
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653457.
+
+Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@devialet.com>
+---
+ source/config/mh-linux | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/source/config/mh-linux b/source/config/mh-linux
+index 531a3b2..5a2a7c4 100644
+--- a/source/config/mh-linux
++++ b/source/config/mh-linux
+@@ -21,7 +21,9 @@ LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN
+ LD_RPATH_PRE = -Wl,-rpath,
+
+ ## These are the library specific LDFLAGS
+-LDFLAGSICUDT=-nodefaultlibs -nostdlib
++#LDFLAGSICUDT=-nodefaultlibs -nostdlib
++# Debian change: linking icudata as data only causes too many problems.
++LDFLAGSICUDT=
+
+ ## Compiler switch to embed a library name
+ # The initial tab in the next line is to prevent icu-config from reading it.
+--
+2.0.0.rc2
+
+++ /dev/null
-Don't build object files twice
-
-When passed --enable-static and --enable-shared, icu will generate
-both a shared and a static version of its libraries.
-
-However, in order to do so, it builds each and every object file
-twice: once with -fPIC (for the shared library), and once without
--fPIC (for the static library). While admittedly building -fPIC for a
-static library generates a slightly suboptimal code, this is what all
-the autotools-based project are doing. They build each object file
-once, and they use it for both the static and shared libraries.
-
-icu builds the object files for the shared library as .o files, and
-the object files for static library as .ao files. By simply changing
-the suffix of object files used for static libraries to ".o", we tell
-icu to use the ones built for the shared library (i.e, with -fPIC),
-and avoid the double build of icu.
-
-On a fast build server, this brings the target icu build from
-3m41.302s down to 1m43.926s (approximate numbers: some other builds
-are running on the system at the same time).
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/source/config/mh-linux
-===================================================================
---- a/source/config/mh-linux
-+++ b/source/config/mh-linux
-@@ -35,7 +35,7 @@
- ## Shared object suffix
- SO = so
- ## Non-shared intermediate object suffix
--STATIC_O = ao
-+STATIC_O = o
-
- ## Compilation rules
- %.$(STATIC_O): $(srcdir)/%.c
+++ /dev/null
-Workaround toolchain bugs
-
-Many of ARM Sourcery CodeBench toolchain have a bug when compiling
-icu's translit.cpp source file. The bug is trigerred when there is a
-combination of "-W -Wall" and "-Os", and causes an internal compiler
-error. The bug has been reported to Mentor Graphics.
-
-Even though it is clearly a toolchain bug, having a workaround for it
-is trivial in this case. So it will avoid our users falling into this
-internal compiler error, and allow our autobuilders to test more
-packages using this Sourcery CodeBench toolchain.qq
-
-[Gustavo: update for ICU4C 54.1]
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura icu.orig/source/configure icu/source/configure
---- icu.orig/source/configure 2014-12-18 15:49:43.038628644 -0300
-+++ icu/source/configure 2014-12-18 15:51:23.183083232 -0300
-@@ -4323,7 +4323,7 @@
- ;;
- esac
-
-- CFLAGS="$CFLAGS -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
-+ CFLAGS="$CFLAGS -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
- else
- case "${host}" in
- *-*-cygwin)
-@@ -4337,7 +4337,7 @@
- fi
- if test "$GXX" = yes
- then
-- CXXFLAGS="$CXXFLAGS -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long"
-+ CXXFLAGS="$CXXFLAGS -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long"
- else
- case "${host}" in
- *-*-cygwin)
+++ /dev/null
-detect and add compiler symbol prefix to the assembly code
-
-Some compiler, such as Blackfin GNU compiler, prefix a charater to any
-C symbol in generated assembly code. If any assembly symbol is invoked
-from C code, it needs to be prefixed as well.
-
-Note: since autoreconf doesn't work with this package because automake
-isn't support
-
-[Ryan: add information about why patching configure is ok]
-[Gustavo: update for ICU4C 54.1]
-
-Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
-Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura icu.orig/source/configure icu/source/configure
---- icu.orig/source/configure 2014-12-18 15:49:43.038628644 -0300
-+++ icu/source/configure 2014-12-18 15:56:05.793832186 -0300
-@@ -637,6 +637,7 @@
- ICUDATA_CHAR
- SAMPLES_TRUE
- TESTS_TRUE
-+SYMBOL_PREFIX
- ICULIBSUFFIXCNAME
- U_HAVE_LIB_SUFFIX
- ICULIBSUFFIX
-@@ -7414,6 +7415,17 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_UTF16_STRING_RESULT" >&5
- $as_echo "$CHECK_UTF16_STRING_RESULT" >&6; }
-
-+# Check compiler generated symbol profix
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for symbol prefix" >&5
-+$as_echo "checking for symbol prefix... " >&6; }
-+ SYMBOL_PREFIX=`echo "PREFIX=__USER_LABEL_PREFIX__" \
-+ | ${CPP-${CC-gcc} -E} - 2>&1 \
-+ | ${EGREP-grep} "^PREFIX=" \
-+ | sed -e "s:^PREFIX=::" -e "s:__USER_LABEL_PREFIX__::"`
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SYMBOL_PREFIX" >&5
-+$as_echo "$SYMBOL_PREFIX" >&6; }
-+
- # Enable/disable extras
- # Check whether --enable-extras was given.
- if test "${enable_extras+set}" = set; then :
-diff -Nura icu.orig/source/data/Makefile.in icu/source/data/Makefile.in
---- icu.orig/source/data/Makefile.in 2014-12-18 15:49:42.908624160 -0300
-+++ icu/source/data/Makefile.in 2014-12-18 16:01:32.751110913 -0300
-@@ -182,11 +182,11 @@
- packagedata: icupkg.inc $(PKGDATA_LIST) build-local
- ifneq ($(ENABLE_STATIC),)
- ifeq ($(PKGDATA_MODE),dll)
-- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
-+ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
- endif
- endif
- ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
-- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
-+ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
- else
- $(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR)
- endif
-@@ -209,11 +209,11 @@
- endif
- ifneq ($(ENABLE_STATIC),)
- ifeq ($(PKGDATA_MODE),dll)
-- $(PKGDATA_INVOKE) $(PKGDATA) -m static -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
-+ $(PKGDATA_INVOKE) $(PKGDATA) -m static -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
- endif
- endif
- ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
-- $(PKGDATA_INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_DIR)
-+ $(PKGDATA_INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_DIR)
- else
- $(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(DESTDIR)$(ICUPKGDATA_DIR)
- endif
-@@ -224,7 +224,7 @@
- #### 390 support
- install390: package390
- $(MKINSTALLDIRS) $(TMPDATADIR) $(DESTDIR)$(libdir)
-- $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e $(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
-+ $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
- ifeq ($(PKGDATA_MODE),dll)
- $(INSTALL-L) $(ICUPKGDATA_OUTDIR)/$(FINAL_IMPORT_LIB) $(DESTDIR)$(ICUPKGDATA_DIR)/$(FINAL_IMPORT_LIB)
- endif
-@@ -232,7 +232,7 @@
- #### $(LIB_ICUDATA_NAME)$(STUB_SUFFIX) is the subset data for batch mode
- package390: $(OUTTMPDIR)/icudata390.lst $(PKGDATA_LIST) ./icupkg.inc packagedata
- ln -s $(ICUDATA_NAME) $(OUTDIR)/build/$(ICUDATA_NAME)$(STUB_SUFFIX)
-- $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e $(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING)
-+ $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING)
- cp $(ICUPKGDATA_OUTDIR)/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO) $(top_builddir)/stubdata/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO)
-
-
-diff -Nura icu.orig/source/extra/uconv/Makefile.in icu/source/extra/uconv/Makefile.in
---- icu.orig/source/extra/uconv/Makefile.in 2014-12-18 15:49:42.986626850 -0300
-+++ icu/source/extra/uconv/Makefile.in 2014-12-18 15:57:40.558101179 -0300
-@@ -58,7 +58,8 @@
- ## Static mode
- ifeq ($(UCONVMSG_MODE),static)
- DEFS += -DUCONVMSG_LINK=$(MSGNAME)
--UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)$(MSGNAME).$(A)
-+UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)@SYMBOL_PREFIX@$(MSGNAME).$(A)
-+
- LIBS += $(UCONVMSG_LIB)
- PKGMODE=static
- INSTALLTO=$(libdir)
-@@ -152,7 +153,7 @@
- endif
-
- $(UCONVMSG_LIB): $(RESFILES) $(RESDIR)/$(RESDIR).lst pkgdata.inc
-- $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p $(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
-+ $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p @SYMBOL_PREFIX@$(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
-
- $(RESDIR)/$(RESDIR).lst: Makefile $(srcdir)/resfiles.mk
- @-$(RMV) $@
+++ /dev/null
-From d5d0c4bb7cc9aa4a132ec0bea13255aee50c1cf9 Mon Sep 17 00:00:00 2001
-From: Maxime Hadjinlian <maxime.hadjinlian@devialet.com>
-Date: Fri, 6 Jun 2014 14:55:58 +0200
-Subject: [PATCH] Don't link icudata as a data only library
-
-This patch cames straight from Debian. It fixes an issue when
-libicudata would not have some flags indicating it's EABIhf, causing
-applications linked against libicudata to not start on EABIhf
-systems. Getting rid of the -nodefaultlibs -nostdlib flags solves the
-problem, and is the solution that is used by Debian, see
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653457.
-
-Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@devialet.com>
----
- source/config/mh-linux | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/source/config/mh-linux b/source/config/mh-linux
-index 531a3b2..5a2a7c4 100644
---- a/source/config/mh-linux
-+++ b/source/config/mh-linux
-@@ -21,7 +21,9 @@ LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN
- LD_RPATH_PRE = -Wl,-rpath,
-
- ## These are the library specific LDFLAGS
--LDFLAGSICUDT=-nodefaultlibs -nostdlib
-+#LDFLAGSICUDT=-nodefaultlibs -nostdlib
-+# Debian change: linking icudata as data only causes too many problems.
-+LDFLAGSICUDT=
-
- ## Compiler switch to embed a library name
- # The initial tab in the next line is to prevent icu-config from reading it.
---
-2.0.0.rc2
-
--- /dev/null
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: ifplugd-0.28/configure
+===================================================================
+--- ifplugd-0.28.orig/configure
++++ ifplugd-0.28/configure
+@@ -5430,7 +5430,7 @@
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test "$cross_compiling" = yes; then
+- ac_cv_func_malloc_0_nonnull=no
++ ac_cv_func_malloc_0_nonnull=yes
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
--- /dev/null
+---
+ src/interface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: ifplugd-0.28/src/interface.c
+===================================================================
+--- ifplugd-0.28.orig/src/interface.c
++++ ifplugd-0.28/src/interface.c
+@@ -23,7 +23,6 @@
+ #endif
+
+ #include <linux/sockios.h>
+-#include <linux/if_ether.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+@@ -32,6 +31,7 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <netinet/in.h>
++#include <netinet/if_ether.h>
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <stdlib.h>
--- /dev/null
+[PATCH] ifplugd: configure: don't check for C++ compiler
+
+The configure script was checking for a C++ compiler (and erroring out
+if not found), even though it isn't used for anything.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+diff -urpN ifplugd-0.28/configure.ac ifplugd-0.28.new/configure.ac
+--- ifplugd-0.28/configure.ac 2005-06-04 21:21:51.000000000 +0200
++++ ifplugd-0.28.new/configure.ac 2008-12-13 20:31:13.000000000 +0100
+@@ -33,7 +33,6 @@ if type -p stow > /dev/null && test -d /
+ fi
+
+ # Checks for programs.
+-AC_PROG_CXX
+ AC_PROG_CC
+ AC_PROG_CPP
+ AC_PROG_INSTALL
+++ /dev/null
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: ifplugd-0.28/configure
-===================================================================
---- ifplugd-0.28.orig/configure
-+++ ifplugd-0.28/configure
-@@ -5430,7 +5430,7 @@
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test "$cross_compiling" = yes; then
-- ac_cv_func_malloc_0_nonnull=no
-+ ac_cv_func_malloc_0_nonnull=yes
- else
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
+++ /dev/null
----
- src/interface.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: ifplugd-0.28/src/interface.c
-===================================================================
---- ifplugd-0.28.orig/src/interface.c
-+++ ifplugd-0.28/src/interface.c
-@@ -23,7 +23,6 @@
- #endif
-
- #include <linux/sockios.h>
--#include <linux/if_ether.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
-@@ -32,6 +31,7 @@
- #include <string.h>
- #include <errno.h>
- #include <netinet/in.h>
-+#include <netinet/if_ether.h>
- #include <stdio.h>
- #include <ctype.h>
- #include <stdlib.h>
+++ /dev/null
-[PATCH] ifplugd: configure: don't check for C++ compiler
-
-The configure script was checking for a C++ compiler (and erroring out
-if not found), even though it isn't used for anything.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-diff -urpN ifplugd-0.28/configure.ac ifplugd-0.28.new/configure.ac
---- ifplugd-0.28/configure.ac 2005-06-04 21:21:51.000000000 +0200
-+++ ifplugd-0.28.new/configure.ac 2008-12-13 20:31:13.000000000 +0100
-@@ -33,7 +33,6 @@ if type -p stow > /dev/null && test -d /
- fi
-
- # Checks for programs.
--AC_PROG_CXX
- AC_PROG_CC
- AC_PROG_CPP
- AC_PROG_INSTALL
--- /dev/null
+configure.ac: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura igmpproxy-0.1.orig/configure.ac igmpproxy-0.1/configure.ac
+--- igmpproxy-0.1.orig/configure.ac 2014-03-12 18:43:02.369323771 -0300
++++ igmpproxy-0.1/configure.ac 2014-03-12 18:43:22.129979179 -0300
+@@ -7,7 +7,7 @@
+
+ AC_CANONICAL_HOST
+ case $host_os in
+- linux*) os=linux;;
++ linux*|uclinux*) os=linux;;
+ freebsd*) os=freebsd;;
+ netbsd*) os=netbsd;;
+ openbsd*) os=openbsd;;
+++ /dev/null
-configure.ac: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura igmpproxy-0.1.orig/configure.ac igmpproxy-0.1/configure.ac
---- igmpproxy-0.1.orig/configure.ac 2014-03-12 18:43:02.369323771 -0300
-+++ igmpproxy-0.1/configure.ac 2014-03-12 18:43:22.129979179 -0300
-@@ -7,7 +7,7 @@
-
- AC_CANONICAL_HOST
- case $host_os in
-- linux*) os=linux;;
-+ linux*|uclinux*) os=linux;;
- freebsd*) os=freebsd;;
- netbsd*) os=netbsd;;
- openbsd*) os=openbsd;;
--- /dev/null
+From 941c322e4378e0ef09f21bfd7b2a337b8f812629 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Mon, 27 Jan 2014 22:42:53 +0100
+Subject: [PATCH 1/1] configure: fix cross-compilation issues
+
+- Use CFLAGS from command line
+
+- Remove "Check C compiler type (optimization options)"
+ This test force optimization to -O3
+ while it is already set in CFLAGS
+
+- Don't use host CPP
+
+- Remove "Check for Large File Support"
+ LFS support is already set in CFLAGS
+
+Note: configure script still use host nm
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ unix/Makefile | 4 +-
+ unix/configure | 161 +--------------------------------------------------------
+ 2 files changed, 3 insertions(+), 162 deletions(-)
+
+diff --git a/unix/Makefile b/unix/Makefile
+index abd0c44..8388c74 100644
+--- a/unix/Makefile
++++ b/unix/Makefile
+@@ -58,7 +58,7 @@ IZ_OUR_BZIP2_DIR = bzip2
+ # LFLAGS1 flags after output file spec, before obj file list
+ # LFLAGS2 flags after obj file list (libraries, etc)
+ CFLAGS_NOOPT = -I. -DUNIX $(LOCAL_ZIP)
+-CFLAGS = -O2 $(CFLAGS_NOOPT)
++CFLAGS ?= -O2 $(CFLAGS_NOOPT)
+ LFLAGS1 =
+ LFLAGS2 = -s
+
+@@ -177,7 +177,7 @@ uninstall:
+
+
+ flags: unix/configure
+- sh unix/configure "${CC}" "${CFLAGS_NOOPT}" "${IZ_BZIP2}"
++ sh unix/configure "${CC}" "${CFLAGS}" "${IZ_BZIP2}"
+
+ # These symbols, when #defined using -D have these effects on compilation:
+ # ZMEM - includes C language versions of memset(), memcpy(),
+diff --git a/unix/configure b/unix/configure
+index 73ba803..57272db 100644
+--- a/unix/configure
++++ b/unix/configure
+@@ -22,109 +22,9 @@ LFLAGS1=''
+ LFLAGS2=''
+ LN="ln -s"
+
+-CFLAGS_OPT=''
+-
+ # bzip2
+ IZ_BZIP2=${3-}
+-CFLAGS_BZ=''
+-
+-
+-echo 'Check C compiler type (optimization options)'
+-# Sun C?
+-cat > conftest.c << _EOF_
+-int main()
+-{
+-#ifndef __SUNPRO_C
+- bad code
+-#endif
+- return 0;
+-}
+-_EOF_
+-$CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
+-if test $? -eq 0; then
+- CFLAGS_OPT='-xO3'
+- echo " Sun C ($CFLAGS_OPT)"
+-else
+- # Tru64 DEC/Compaq/HP C?
+- cat > conftest.c << _EOF_
+-int main()
+-{
+-#ifndef __DECC
+- bad code
+-#endif
+- return 0;
+-}
+-_EOF_
+- $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
+- if test $? -eq 0; then
+- CFLAGS_OPT='-O3'
+- echo " DEC C ($CFLAGS_OPT)"
+- else
+- # HP-UX HP C?
+- cat > conftest.c << _EOF_
+-int main()
+-{
+-#ifdef __GNUC__
+- bad code
+-#endif
+-#ifndef __hpux
+- bad code
+-#endif
+- return 0;
+-}
+-_EOF_
+- $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
+- if test $? -eq 0; then
+- # HP-UX, not GCC. Lame bundled or real ANSI compiler?
+- CFLAGS_OPT_TRY="+O3 +Onolimit"
+- $CC $CFLAGS $CFLAGS_OPT_TRY -c conftest.c 2>&1 | \
+- grep '(Bundled)' > /dev/null
+- if test $? -ne 0; then
+- CFLAGS_OPT="$CFLAGS_OPT_TRY"
+- echo " HP-UX ANSI C ($CFLAGS_OPT)"
+- else
+- echo ' HP-UX Bundled C (no opt)'
+- fi
+- else
+- # GNU C?
+- cat > conftest.c << _EOF_
+-int main()
+-{
+-#ifndef __GNUC__
+- bad code
+-#endif
+- return 0;
+-}
+-_EOF_
+- $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
+- if test $? -eq 0; then
+- CFLAGS_OPT='-O3'
+- echo " GNU C ($CFLAGS_OPT)"
+- # Special Mac OS X shared library "ld" option?
+- if test ` uname -s 2> /dev/null ` = 'Darwin'; then
+- lf='-Wl,-search_paths_first'
+- $CC $CFLAGS $lf conftest.c > /dev/null 2>/dev/null
+- if test $? -eq 0; then
+- LFLAGS2="${LFLAGS2} ${lf}"
+- fi
+- rm -f conftest
+- fi
+- else
+- CFLAGS_OPT='-O'
+- echo " Other-unknown C ($CFLAGS_OPT)"
+- fi
+- fi
+- fi
+-fi
+-
+-# optimization flags
+-if test -n "${CFLAGS_OPT}"; then
+- CFLAGS="${CFLAGS} ${CFLAGS_OPT}"
+- CFLAGS_BZ="${CFLAGS_BZ} ${CFLAGS_OPT}"
+-fi
+-
+-
+-# bzip2
++CFLAGS_BZ="${CFLAGS}"
+
+ echo "Check bzip2 support"
+ CC_BZ="${CC}"
+@@ -220,13 +120,6 @@ fi
+ echo Check for the C preprocessor
+ # on SVR4, cc -E does not produce correct assembler files. Need /lib/cpp.
+ CPP="${CC} -E"
+-# solaris as(1) needs -P, maybe others as well ?
+-[ -f /usr/ccs/lib/cpp ] && CPP="/usr/ccs/lib/cpp -P"
+-[ -f /usr/lib/cpp ] && CPP=/usr/lib/cpp
+-[ -f /lib/cpp ] && CPP=/lib/cpp
+-[ -f /usr/bin/cpp ] && CPP=/usr/bin/cpp
+-[ -f /xenix ] && CPP="${CC} -E"
+-[ -f /lynx.os ] && CPP="${CC} -E"
+
+ echo "#include <stdio.h>" > conftest.c
+ $CPP conftest.c >/dev/null 2>/dev/null || CPP="${CC} -E"
+@@ -398,58 +291,6 @@ else
+ fi
+ fi
+
+-
+-# Now we set the 64-bit file environment and check the size of off_t
+-# Added 11/4/2003 EG
+-# Revised 8/12/2004 EG
+-
+-echo Check for Large File Support
+-cat > conftest.c << _EOF_
+-# define _LARGEFILE_SOURCE /* some OSes need this for fseeko */
+-# define _LARGEFILE64_SOURCE
+-# define _FILE_OFFSET_BITS 64 /* select default interface as 64 bit */
+-# define _LARGE_FILES /* some OSes need this for 64-bit off_t */
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <unistd.h>
+-#include <stdio.h>
+-int main()
+-{
+- off_t offset;
+- struct stat s;
+- /* see if have 64-bit off_t */
+- if (sizeof(offset) < 8)
+- return 1;
+- printf(" off_t is %d bytes\n", sizeof(off_t));
+- /* see if have 64-bit stat */
+- if (sizeof(s.st_size) < 8) {
+- printf(" s.st_size is %d bytes\n", sizeof(s.st_size));
+- return 2;
+- }
+- return 3;
+-}
+-_EOF_
+-# compile it
+-$CC -o conftest conftest.c >/dev/null 2>/dev/null
+-if [ $? -ne 0 ]; then
+- echo -- no Large File Support
+-else
+-# run it
+- ./conftest
+- r=$?
+- if [ $r -eq 1 ]; then
+- echo -- no Large File Support - no 64-bit off_t
+- elif [ $r -eq 2 ]; then
+- echo -- no Large File Support - no 64-bit stat
+- elif [ $r -eq 3 ]; then
+- echo -- yes we have Large File Support!
+- CFLAGS="${CFLAGS} -DLARGE_FILE_SUPPORT"
+- else
+- echo -- no Large File Support - conftest returned $r
+- fi
+-fi
+-
+-
+ # Check for wide char for Unicode support
+ # Added 11/24/2005 EG
+
+--
+1.8.5.3
+
+++ /dev/null
-From 941c322e4378e0ef09f21bfd7b2a337b8f812629 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@openwide.fr>
-Date: Mon, 27 Jan 2014 22:42:53 +0100
-Subject: [PATCH 1/1] configure: fix cross-compilation issues
-
-- Use CFLAGS from command line
-
-- Remove "Check C compiler type (optimization options)"
- This test force optimization to -O3
- while it is already set in CFLAGS
-
-- Don't use host CPP
-
-- Remove "Check for Large File Support"
- LFS support is already set in CFLAGS
-
-Note: configure script still use host nm
-
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- unix/Makefile | 4 +-
- unix/configure | 161 +--------------------------------------------------------
- 2 files changed, 3 insertions(+), 162 deletions(-)
-
-diff --git a/unix/Makefile b/unix/Makefile
-index abd0c44..8388c74 100644
---- a/unix/Makefile
-+++ b/unix/Makefile
-@@ -58,7 +58,7 @@ IZ_OUR_BZIP2_DIR = bzip2
- # LFLAGS1 flags after output file spec, before obj file list
- # LFLAGS2 flags after obj file list (libraries, etc)
- CFLAGS_NOOPT = -I. -DUNIX $(LOCAL_ZIP)
--CFLAGS = -O2 $(CFLAGS_NOOPT)
-+CFLAGS ?= -O2 $(CFLAGS_NOOPT)
- LFLAGS1 =
- LFLAGS2 = -s
-
-@@ -177,7 +177,7 @@ uninstall:
-
-
- flags: unix/configure
-- sh unix/configure "${CC}" "${CFLAGS_NOOPT}" "${IZ_BZIP2}"
-+ sh unix/configure "${CC}" "${CFLAGS}" "${IZ_BZIP2}"
-
- # These symbols, when #defined using -D have these effects on compilation:
- # ZMEM - includes C language versions of memset(), memcpy(),
-diff --git a/unix/configure b/unix/configure
-index 73ba803..57272db 100644
---- a/unix/configure
-+++ b/unix/configure
-@@ -22,109 +22,9 @@ LFLAGS1=''
- LFLAGS2=''
- LN="ln -s"
-
--CFLAGS_OPT=''
--
- # bzip2
- IZ_BZIP2=${3-}
--CFLAGS_BZ=''
--
--
--echo 'Check C compiler type (optimization options)'
--# Sun C?
--cat > conftest.c << _EOF_
--int main()
--{
--#ifndef __SUNPRO_C
-- bad code
--#endif
-- return 0;
--}
--_EOF_
--$CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
--if test $? -eq 0; then
-- CFLAGS_OPT='-xO3'
-- echo " Sun C ($CFLAGS_OPT)"
--else
-- # Tru64 DEC/Compaq/HP C?
-- cat > conftest.c << _EOF_
--int main()
--{
--#ifndef __DECC
-- bad code
--#endif
-- return 0;
--}
--_EOF_
-- $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
-- if test $? -eq 0; then
-- CFLAGS_OPT='-O3'
-- echo " DEC C ($CFLAGS_OPT)"
-- else
-- # HP-UX HP C?
-- cat > conftest.c << _EOF_
--int main()
--{
--#ifdef __GNUC__
-- bad code
--#endif
--#ifndef __hpux
-- bad code
--#endif
-- return 0;
--}
--_EOF_
-- $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
-- if test $? -eq 0; then
-- # HP-UX, not GCC. Lame bundled or real ANSI compiler?
-- CFLAGS_OPT_TRY="+O3 +Onolimit"
-- $CC $CFLAGS $CFLAGS_OPT_TRY -c conftest.c 2>&1 | \
-- grep '(Bundled)' > /dev/null
-- if test $? -ne 0; then
-- CFLAGS_OPT="$CFLAGS_OPT_TRY"
-- echo " HP-UX ANSI C ($CFLAGS_OPT)"
-- else
-- echo ' HP-UX Bundled C (no opt)'
-- fi
-- else
-- # GNU C?
-- cat > conftest.c << _EOF_
--int main()
--{
--#ifndef __GNUC__
-- bad code
--#endif
-- return 0;
--}
--_EOF_
-- $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
-- if test $? -eq 0; then
-- CFLAGS_OPT='-O3'
-- echo " GNU C ($CFLAGS_OPT)"
-- # Special Mac OS X shared library "ld" option?
-- if test ` uname -s 2> /dev/null ` = 'Darwin'; then
-- lf='-Wl,-search_paths_first'
-- $CC $CFLAGS $lf conftest.c > /dev/null 2>/dev/null
-- if test $? -eq 0; then
-- LFLAGS2="${LFLAGS2} ${lf}"
-- fi
-- rm -f conftest
-- fi
-- else
-- CFLAGS_OPT='-O'
-- echo " Other-unknown C ($CFLAGS_OPT)"
-- fi
-- fi
-- fi
--fi
--
--# optimization flags
--if test -n "${CFLAGS_OPT}"; then
-- CFLAGS="${CFLAGS} ${CFLAGS_OPT}"
-- CFLAGS_BZ="${CFLAGS_BZ} ${CFLAGS_OPT}"
--fi
--
--
--# bzip2
-+CFLAGS_BZ="${CFLAGS}"
-
- echo "Check bzip2 support"
- CC_BZ="${CC}"
-@@ -220,13 +120,6 @@ fi
- echo Check for the C preprocessor
- # on SVR4, cc -E does not produce correct assembler files. Need /lib/cpp.
- CPP="${CC} -E"
--# solaris as(1) needs -P, maybe others as well ?
--[ -f /usr/ccs/lib/cpp ] && CPP="/usr/ccs/lib/cpp -P"
--[ -f /usr/lib/cpp ] && CPP=/usr/lib/cpp
--[ -f /lib/cpp ] && CPP=/lib/cpp
--[ -f /usr/bin/cpp ] && CPP=/usr/bin/cpp
--[ -f /xenix ] && CPP="${CC} -E"
--[ -f /lynx.os ] && CPP="${CC} -E"
-
- echo "#include <stdio.h>" > conftest.c
- $CPP conftest.c >/dev/null 2>/dev/null || CPP="${CC} -E"
-@@ -398,58 +291,6 @@ else
- fi
- fi
-
--
--# Now we set the 64-bit file environment and check the size of off_t
--# Added 11/4/2003 EG
--# Revised 8/12/2004 EG
--
--echo Check for Large File Support
--cat > conftest.c << _EOF_
--# define _LARGEFILE_SOURCE /* some OSes need this for fseeko */
--# define _LARGEFILE64_SOURCE
--# define _FILE_OFFSET_BITS 64 /* select default interface as 64 bit */
--# define _LARGE_FILES /* some OSes need this for 64-bit off_t */
--#include <sys/types.h>
--#include <sys/stat.h>
--#include <unistd.h>
--#include <stdio.h>
--int main()
--{
-- off_t offset;
-- struct stat s;
-- /* see if have 64-bit off_t */
-- if (sizeof(offset) < 8)
-- return 1;
-- printf(" off_t is %d bytes\n", sizeof(off_t));
-- /* see if have 64-bit stat */
-- if (sizeof(s.st_size) < 8) {
-- printf(" s.st_size is %d bytes\n", sizeof(s.st_size));
-- return 2;
-- }
-- return 3;
--}
--_EOF_
--# compile it
--$CC -o conftest conftest.c >/dev/null 2>/dev/null
--if [ $? -ne 0 ]; then
-- echo -- no Large File Support
--else
--# run it
-- ./conftest
-- r=$?
-- if [ $r -eq 1 ]; then
-- echo -- no Large File Support - no 64-bit off_t
-- elif [ $r -eq 2 ]; then
-- echo -- no Large File Support - no 64-bit stat
-- elif [ $r -eq 3 ]; then
-- echo -- yes we have Large File Support!
-- CFLAGS="${CFLAGS} -DLARGE_FILE_SUPPORT"
-- else
-- echo -- no Large File Support - conftest returned $r
-- fi
--fi
--
--
- # Check for wide char for Unicode support
- # Added 11/24/2005 EG
-
---
-1.8.5.3
-
--- /dev/null
+diff -urN joystick-20051019.orig/utils/jscal.c joystick-20051019/utils/jscal.c
+--- joystick-20051019.orig/utils/jscal.c 2004-10-19 09:51:52.000000000 +0200
++++ joystick-20051019/utils/jscal.c 2009-01-18 10:48:50.000000000 +0100
+@@ -141,10 +141,10 @@
+ c = 32767.0 / (inputs.cmin[1] - inputs.cmax[0]);
+ d = 32767.0 / (inputs.cmin[2] - inputs.cmax[1]);
+
+- results[0] = rint(a);
+- results[1] = rint(b);
+- results[2] = rint(c*16384.0);
+- results[3] = rint(d*16384.0);
++ results[0] = (int) (a + 0.5);
++ results[1] = (int) (b + 0.5);
++ results[2] = (int) (c*16384.0 + 0.5);
++ results[3] = (int) (d*16384.0 + 0.5);
+
+ return 1;
+ }
+++ /dev/null
-diff -urN joystick-20051019.orig/utils/jscal.c joystick-20051019/utils/jscal.c
---- joystick-20051019.orig/utils/jscal.c 2004-10-19 09:51:52.000000000 +0200
-+++ joystick-20051019/utils/jscal.c 2009-01-18 10:48:50.000000000 +0100
-@@ -141,10 +141,10 @@
- c = 32767.0 / (inputs.cmin[1] - inputs.cmax[0]);
- d = 32767.0 / (inputs.cmin[2] - inputs.cmax[1]);
-
-- results[0] = rint(a);
-- results[1] = rint(b);
-- results[2] = rint(c*16384.0);
-- results[3] = rint(d*16384.0);
-+ results[0] = (int) (a + 0.5);
-+ results[1] = (int) (b + 0.5);
-+ results[2] = (int) (c*16384.0 + 0.5);
-+ results[3] = (int) (d*16384.0 + 0.5);
-
- return 1;
- }
--- /dev/null
+From bf646965f75cdad77a45fa3b0046e093b202b2ce Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Thu, 22 Jul 2010 12:42:10 -0300
+Subject: [PATCH] Make cpu number counter more reliable
+
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ iostat.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/iostat.c b/iostat.c
+index 13e2af7..5d74085 100644
+--- a/iostat.c
++++ b/iostat.c
+@@ -140,7 +140,7 @@ void get_number_of_cpus()
+
+ handle_error("Can't open /proc/cpuinfo", !ncpufp);
+ while (fgets(buffer, sizeof(buffer), ncpufp)) {
+- if (!strncmp(buffer, "processor\t:", 11))
++ if (!strncasecmp(buffer, "processor\t", 10))
+ ncpu++;
+ }
+ fclose(ncpufp);
+--
+1.7.1
+
+++ /dev/null
-From bf646965f75cdad77a45fa3b0046e093b202b2ce Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Thu, 22 Jul 2010 12:42:10 -0300
-Subject: [PATCH] Make cpu number counter more reliable
-
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- iostat.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/iostat.c b/iostat.c
-index 13e2af7..5d74085 100644
---- a/iostat.c
-+++ b/iostat.c
-@@ -140,7 +140,7 @@ void get_number_of_cpus()
-
- handle_error("Can't open /proc/cpuinfo", !ncpufp);
- while (fgets(buffer, sizeof(buffer), ncpufp)) {
-- if (!strncmp(buffer, "processor\t:", 11))
-+ if (!strncasecmp(buffer, "processor\t", 10))
- ncpu++;
- }
- fclose(ncpufp);
---
-1.7.1
-
--- /dev/null
+Add new targets for iozone:
+
+linux-noaio is for linux targets without AIO (use case: uClibc)
+linux-noth is for linux target without threads or AIO
+
+And make largefile support optional via CFLAGS.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura iozone3_414.orig/src/current/makefile iozone3_414/src/current/makefile
+--- iozone3_414.orig/src/current/makefile 2013-06-11 09:48:18.257837091 -0300
++++ iozone3_414/src/current/makefile 2013-06-11 13:05:56.338162144 -0300
+@@ -166,10 +166,28 @@
+ # GNU 'C' compiler Linux build with threads, largefiles, async I/O
+ #
+ linux: iozone_linux.o libasync.o libbif.o fileop_linux.o pit_server.o
+- $(CC) -O3 $(LDFLAGS) iozone_linux.o libasync.o libbif.o -lpthread \
++ $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux.o libasync.o libbif.o \
++ -lpthread -lrt -o iozone
++ $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop
++ $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server
++
++#
++# GNU 'C' compiler Linux build with threads, largefiles
++#
++linux-noaio: iozone_linux-noaio.o libbif.o fileop_linux.o pit_server.o
++ $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux-noaio.o libbif.o \
++ -lpthread -lrt -o iozone
++ $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop
++ $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server
++
++#
++# GNU 'C' compiler Linux build with largefiles
++#
++linux-noth: iozone_linux-noth.o libbif.o fileop_linux.o pit_server.o
++ $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux-noth.o libbif.o \
+ -lrt -o iozone
+- $(CC) -O3 -Dlinux fileop_linux.o -o fileop
+- $(CC) -O3 -Dlinux pit_server.o -o pit_server
++ $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop
++ $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server
+
+ #
+ # GNU 'C' compiler Linux build for powerpc chip with threads, largefiles, async I/O
+@@ -795,13 +813,33 @@
+ @echo ""
+ @echo "Building iozone for Linux"
+ @echo ""
+- $(CC) -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \
+- -DSHARED_MEM -Dlinux -D_LARGEFILE64_SOURCE $(CFLAGS) iozone.c \
++ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \
++ -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
+ -DNAME='"linux"' -o iozone_linux.o
+- $(CC) -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -D_LARGEFILE64_SOURCE \
++ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DASYNC_IO \
++ -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
++ $(CC) -Wall -c -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \
++ $(CFLAGS) libasync.c -o libasync.o
++
++iozone_linux-noaio.o: iozone.c libbif.c
++ @echo ""
++ @echo "Building iozone for Linux no AIO"
++ @echo ""
++ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DHAVE_PREAD \
++ -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
++ -DNAME='"linux"' -o iozone_linux-noaio.o
++ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C \
++ -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
++
++iozone_linux-noth.o: iozone.c libbif.c
++ @echo ""
++ @echo "Building iozone for Linux with no threads"
++ @echo ""
++ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DNO_THREADS -DHAVE_PREAD \
++ -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
++ -DNAME='"linux"' -o iozone_linux-noth.o
++ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DNO_THREADS \
+ -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
+- $(CC) -Wall -c -O3 -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \
+- -D_LARGEFILE64_SOURCE $(CFLAGS) libasync.c -o libasync.o
+
+ fileop_AIX.o: fileop.c
+ @echo ""
+@@ -893,7 +931,7 @@
+ @echo ""
+ @echo "Building fileop for Linux"
+ @echo ""
+- $(CC) -Wall -c -O3 $(CFLAGS) fileop.c -o fileop_linux.o
++ $(CC) -Wall -c $(CFLAGS) fileop.c -o fileop_linux.o
+
+ fileop_openbsd.o: fileop.c
+ @echo ""
--- /dev/null
+Dummy pthread_setaffinity_np() when not available
+
+On uClibc configurations that do not use the NPTL thread
+implementation, pthread_setaffinity_np() is not available. This patch
+defines a dummy (empty) implementation of this function for such
+cases.
+
+The only few architectures that do not provide the NPTL thread
+implementation are very likely to be non-SMP architectures, and
+therefore, setting the affinity of the thread is not doing anything
+useful, so having an empty stub for pthread_setaffinity_np() is not a
+problem.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/current/iozone.c
+===================================================================
+--- a/src/current/iozone.c
++++ b/src/current/iozone.c
+@@ -306,6 +306,17 @@
+ #endif
+ #endif
+
++#if defined (__linux__)
++#include <features.h>
++#if defined (__UCLIBC__) && !defined (__UCLIBC_HAS_THREADS_NATIVE__)
++static int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize,
++ const cpu_set_t *cpuset)
++{
++ return 0;
++}
++#endif
++#endif
++
+ #if ((defined(solaris) && defined(__LP64__)) || defined(__s390x__))
+ /* If we are building for 64-bit Solaris, all functions that return pointers
+ * must be declared before they are used; otherwise the compiler will assume
+++ /dev/null
-Add new targets for iozone:
-
-linux-noaio is for linux targets without AIO (use case: uClibc)
-linux-noth is for linux target without threads or AIO
-
-And make largefile support optional via CFLAGS.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura iozone3_414.orig/src/current/makefile iozone3_414/src/current/makefile
---- iozone3_414.orig/src/current/makefile 2013-06-11 09:48:18.257837091 -0300
-+++ iozone3_414/src/current/makefile 2013-06-11 13:05:56.338162144 -0300
-@@ -166,10 +166,28 @@
- # GNU 'C' compiler Linux build with threads, largefiles, async I/O
- #
- linux: iozone_linux.o libasync.o libbif.o fileop_linux.o pit_server.o
-- $(CC) -O3 $(LDFLAGS) iozone_linux.o libasync.o libbif.o -lpthread \
-+ $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux.o libasync.o libbif.o \
-+ -lpthread -lrt -o iozone
-+ $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop
-+ $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server
-+
-+#
-+# GNU 'C' compiler Linux build with threads, largefiles
-+#
-+linux-noaio: iozone_linux-noaio.o libbif.o fileop_linux.o pit_server.o
-+ $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux-noaio.o libbif.o \
-+ -lpthread -lrt -o iozone
-+ $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop
-+ $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server
-+
-+#
-+# GNU 'C' compiler Linux build with largefiles
-+#
-+linux-noth: iozone_linux-noth.o libbif.o fileop_linux.o pit_server.o
-+ $(CC) $(CFLAGS) $(LDFLAGS) iozone_linux-noth.o libbif.o \
- -lrt -o iozone
-- $(CC) -O3 -Dlinux fileop_linux.o -o fileop
-- $(CC) -O3 -Dlinux pit_server.o -o pit_server
-+ $(CC) $(CFLAGS) -Dlinux fileop_linux.o -o fileop
-+ $(CC) $(CFLAGS) -Dlinux pit_server.o -o pit_server
-
- #
- # GNU 'C' compiler Linux build for powerpc chip with threads, largefiles, async I/O
-@@ -795,13 +813,33 @@
- @echo ""
- @echo "Building iozone for Linux"
- @echo ""
-- $(CC) -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \
-- -DSHARED_MEM -Dlinux -D_LARGEFILE64_SOURCE $(CFLAGS) iozone.c \
-+ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \
-+ -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
- -DNAME='"linux"' -o iozone_linux.o
-- $(CC) -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -D_LARGEFILE64_SOURCE \
-+ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DASYNC_IO \
-+ -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
-+ $(CC) -Wall -c -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \
-+ $(CFLAGS) libasync.c -o libasync.o
-+
-+iozone_linux-noaio.o: iozone.c libbif.c
-+ @echo ""
-+ @echo "Building iozone for Linux no AIO"
-+ @echo ""
-+ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DHAVE_PREAD \
-+ -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
-+ -DNAME='"linux"' -o iozone_linux-noaio.o
-+ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C \
-+ -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
-+
-+iozone_linux-noth.o: iozone.c libbif.c
-+ @echo ""
-+ @echo "Building iozone for Linux with no threads"
-+ @echo ""
-+ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DNO_THREADS -DHAVE_PREAD \
-+ -DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
-+ -DNAME='"linux"' -o iozone_linux-noth.o
-+ $(CC) -Wall -c -Dunix -DHAVE_ANSIC_C -DNO_THREADS \
- -DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
-- $(CC) -Wall -c -O3 -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \
-- -D_LARGEFILE64_SOURCE $(CFLAGS) libasync.c -o libasync.o
-
- fileop_AIX.o: fileop.c
- @echo ""
-@@ -893,7 +931,7 @@
- @echo ""
- @echo "Building fileop for Linux"
- @echo ""
-- $(CC) -Wall -c -O3 $(CFLAGS) fileop.c -o fileop_linux.o
-+ $(CC) -Wall -c $(CFLAGS) fileop.c -o fileop_linux.o
-
- fileop_openbsd.o: fileop.c
- @echo ""
+++ /dev/null
-Dummy pthread_setaffinity_np() when not available
-
-On uClibc configurations that do not use the NPTL thread
-implementation, pthread_setaffinity_np() is not available. This patch
-defines a dummy (empty) implementation of this function for such
-cases.
-
-The only few architectures that do not provide the NPTL thread
-implementation are very likely to be non-SMP architectures, and
-therefore, setting the affinity of the thread is not doing anything
-useful, so having an empty stub for pthread_setaffinity_np() is not a
-problem.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/src/current/iozone.c
-===================================================================
---- a/src/current/iozone.c
-+++ b/src/current/iozone.c
-@@ -306,6 +306,17 @@
- #endif
- #endif
-
-+#if defined (__linux__)
-+#include <features.h>
-+#if defined (__UCLIBC__) && !defined (__UCLIBC_HAS_THREADS_NATIVE__)
-+static int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize,
-+ const cpu_set_t *cpuset)
-+{
-+ return 0;
-+}
-+#endif
-+#endif
-+
- #if ((defined(solaris) && defined(__LP64__)) || defined(__s390x__))
- /* If we are building for 64-bit Solaris, all functions that return pointers
- * must be declared before they are used; otherwise the compiler will assume
--- /dev/null
+Replaces sysv3 legacy functions with modern equivalents.
+
+Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
+Index: ipsec-tools-0.7.3/src/racoon/pfkey.c
+===================================================================
+--- ipsec-tools-0.7.3.orig/src/racoon/pfkey.c 2010-07-12 14:46:52.000000000 +0200
++++ ipsec-tools-0.7.3/src/racoon/pfkey.c 2010-07-12 15:01:39.000000000 +0200
+@@ -3008,12 +3008,12 @@
+ struct sockaddr *paddr;
+
+ paddr = (struct sockaddr *)(xisr + 1);
+- bcopy(paddr, &(*p_isr)->saidx.src,
++ memmove(&(*p_isr)->saidx.src, paddr,
+ sysdep_sa_len(paddr));
+
+ paddr = (struct sockaddr *)((caddr_t)paddr
+ + sysdep_sa_len(paddr));
+- bcopy(paddr, &(*p_isr)->saidx.dst,
++ memmove(&(*p_isr)->saidx.dst, paddr,
+ sysdep_sa_len(paddr));
+ }
+
+Index: ipsec-tools-0.7.3/src/racoon/racoonctl.c
+===================================================================
+--- ipsec-tools-0.7.3.orig/src/racoon/racoonctl.c 2010-07-12 14:49:51.000000000 +0200
++++ ipsec-tools-0.7.3/src/racoon/racoonctl.c 2010-07-12 15:00:52.000000000 +0200
+@@ -785,7 +785,7 @@
+ errx(1, "cannot read source address");
+
+ /* We get "ip[port]" strip the port */
+- if ((idx = index(srcaddr, '[')) == NULL)
++ if ((idx = strchr(srcaddr, '[')) == NULL)
+ errx(1, "unexpected source address format");
+ *idx = '\0';
+
+++ /dev/null
-Replaces sysv3 legacy functions with modern equivalents.
-
-Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
-Index: ipsec-tools-0.7.3/src/racoon/pfkey.c
-===================================================================
---- ipsec-tools-0.7.3.orig/src/racoon/pfkey.c 2010-07-12 14:46:52.000000000 +0200
-+++ ipsec-tools-0.7.3/src/racoon/pfkey.c 2010-07-12 15:01:39.000000000 +0200
-@@ -3008,12 +3008,12 @@
- struct sockaddr *paddr;
-
- paddr = (struct sockaddr *)(xisr + 1);
-- bcopy(paddr, &(*p_isr)->saidx.src,
-+ memmove(&(*p_isr)->saidx.src, paddr,
- sysdep_sa_len(paddr));
-
- paddr = (struct sockaddr *)((caddr_t)paddr
- + sysdep_sa_len(paddr));
-- bcopy(paddr, &(*p_isr)->saidx.dst,
-+ memmove(&(*p_isr)->saidx.dst, paddr,
- sysdep_sa_len(paddr));
- }
-
-Index: ipsec-tools-0.7.3/src/racoon/racoonctl.c
-===================================================================
---- ipsec-tools-0.7.3.orig/src/racoon/racoonctl.c 2010-07-12 14:49:51.000000000 +0200
-+++ ipsec-tools-0.7.3/src/racoon/racoonctl.c 2010-07-12 15:00:52.000000000 +0200
-@@ -785,7 +785,7 @@
- errx(1, "cannot read source address");
-
- /* We get "ip[port]" strip the port */
-- if ((idx = index(srcaddr, '[')) == NULL)
-+ if ((idx = strchr(srcaddr, '[')) == NULL)
- errx(1, "unexpected source address format");
- *idx = '\0';
-
--- /dev/null
+written by Mike Frysinger
+
+https://sourceforge.net/tracker/?func=detail&aid=3132053&group_id=5616&atid=305616
+
+Rather than using the fork function (which doesnt work on nommu
+systems), simply use the daemon() function instead (which does
+work). this should work the same before and after for all systems.
+
+--- a/irattach/util.c
++++ b/irattach/util.c
+@@ -156,21 +156,10 @@
+
+ void fork_now(int ttyfd)
+ {
+- int ret;
+ int i;
+
+- if ((ret = fork()) > 0)
+- exit(0);
+-
+- if (ret == -1)
+- syslog(LOG_INFO, "forking: %m");
+- if (setsid() < 0)
+- syslog(LOG_INFO, "detaching from tty: %m");
+-
+- if ((ret = fork()) > 0) {
+- /* cleanup_files = 0; */
+- exit(0);
+- }
++ if (daemon(1, 1))
++ syslog(LOG_INFO, "daemon: %m");
+
+ /* Close all open inherited files! Except for ttyfd! */
+ for (i = 0; i < 64; i++)
--- /dev/null
+written by Mike Frysinger
+
+https://sourceforge.net/tracker/?func=detail&aid=3132056&group_id=5616&atid=305616
+
+nommu systems cannot fork() as the hardware cannot support
+it. irattach uses it as a minor optimization, but it isnt
+necessary for correct functioning of the utility. so add a
+NO_FORK define so we nommu peeps can do CFLAGS="... -DNO_FORK=1
+..." and use it in our embedded systems.
+
+--- a/irattach/irattach.c
++++ b/irattach/irattach.c
+@@ -397,7 +397,11 @@
+ after_names[i]);
+ /* Create a new instance for this other
+ * interface */
++#ifdef NO_FORK
++ pid = -1;
++#else
+ pid = fork();
++#endif
+ /* If in the child */
+ if(!pid) {
+ /* Get the interface name */
--- /dev/null
+written by Mike Frysinger
+
+https://sourceforge.net/tracker/?func=detail&aid=3132051&group_id=5616&atid=305616
+
+The top level makefile ignores build/install errors in subdirs which makes
+packaging a pain to verify.
+
+--- a/Makefile
++++ b/Makefile
+@@ -31,11 +31,11 @@
+ CFLAGS= -O2 -W -Wall
+
+ all:
+- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
++ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
+
+
+ install:
+- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
++ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
+
+
+ clean:
+++ /dev/null
-written by Mike Frysinger
-
-https://sourceforge.net/tracker/?func=detail&aid=3132053&group_id=5616&atid=305616
-
-Rather than using the fork function (which doesnt work on nommu
-systems), simply use the daemon() function instead (which does
-work). this should work the same before and after for all systems.
-
---- a/irattach/util.c
-+++ b/irattach/util.c
-@@ -156,21 +156,10 @@
-
- void fork_now(int ttyfd)
- {
-- int ret;
- int i;
-
-- if ((ret = fork()) > 0)
-- exit(0);
--
-- if (ret == -1)
-- syslog(LOG_INFO, "forking: %m");
-- if (setsid() < 0)
-- syslog(LOG_INFO, "detaching from tty: %m");
--
-- if ((ret = fork()) > 0) {
-- /* cleanup_files = 0; */
-- exit(0);
-- }
-+ if (daemon(1, 1))
-+ syslog(LOG_INFO, "daemon: %m");
-
- /* Close all open inherited files! Except for ttyfd! */
- for (i = 0; i < 64; i++)
+++ /dev/null
-written by Mike Frysinger
-
-https://sourceforge.net/tracker/?func=detail&aid=3132056&group_id=5616&atid=305616
-
-nommu systems cannot fork() as the hardware cannot support
-it. irattach uses it as a minor optimization, but it isnt
-necessary for correct functioning of the utility. so add a
-NO_FORK define so we nommu peeps can do CFLAGS="... -DNO_FORK=1
-..." and use it in our embedded systems.
-
---- a/irattach/irattach.c
-+++ b/irattach/irattach.c
-@@ -397,7 +397,11 @@
- after_names[i]);
- /* Create a new instance for this other
- * interface */
-+#ifdef NO_FORK
-+ pid = -1;
-+#else
- pid = fork();
-+#endif
- /* If in the child */
- if(!pid) {
- /* Get the interface name */
+++ /dev/null
-written by Mike Frysinger
-
-https://sourceforge.net/tracker/?func=detail&aid=3132051&group_id=5616&atid=305616
-
-The top level makefile ignores build/install errors in subdirs which makes
-packaging a pain to verify.
-
---- a/Makefile
-+++ b/Makefile
-@@ -31,11 +31,11 @@
- CFLAGS= -O2 -W -Wall
-
- all:
-- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
-+ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
-
-
- install:
-- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
-+ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
-
-
- clean:
--- /dev/null
+Make jhead use LDFLAGS for the final link.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura jhead-2.97.orig/makefile jhead-2.97/makefile
+--- jhead-2.97.orig/makefile 2013-03-27 09:22:38.759966389 -0300
++++ jhead-2.97/makefile 2013-03-27 09:25:06.290691745 -0300
+@@ -14,7 +14,7 @@
+ ${CC} $(CFLAGS) -c $< -o $@
+
+ jhead: $(objs) jhead.h
+- ${CC} -o jhead $(objs) -lm
++ ${CC} $(LDFLAGS) -o jhead $(objs) -lm
+
+ clean:
+ rm -f $(objs) jhead
+++ /dev/null
-Make jhead use LDFLAGS for the final link.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura jhead-2.97.orig/makefile jhead-2.97/makefile
---- jhead-2.97.orig/makefile 2013-03-27 09:22:38.759966389 -0300
-+++ jhead-2.97/makefile 2013-03-27 09:25:06.290691745 -0300
-@@ -14,7 +14,7 @@
- ${CC} $(CFLAGS) -c $< -o $@
-
- jhead: $(objs) jhead.h
-- ${CC} -o jhead $(objs) -lm
-+ ${CC} $(LDFLAGS) -o jhead $(objs) -lm
-
- clean:
- rm -f $(objs) jhead
--- /dev/null
+[PATCH] uClibc can be (and by default is) configured without bessel functions
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ umath.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+Index: joe-3.7/umath.c
+===================================================================
+--- joe-3.7.orig/umath.c
++++ joe-3.7/umath.c
+@@ -7,6 +7,12 @@
+ */
+ #include "types.h"
+
++/* uClibc can be configured without bessel functions */
++#include <features.h>
++#if defined (__UCLIBC__) && !defined(__DO_XSI_MATH__)
++#define NO_BESSEL
++#endif
++
+ unsigned char *merr;
+
+ int mode_hex;
+@@ -396,10 +402,12 @@
+ double m_fabs(double n) { return fabs(n); }
+ double m_erf(double n) { return erf(n); }
+ double m_erfc(double n) { return erfc(n); }
++#ifndef NO_BESSEL
+ double m_j0(double n) { return j0(n); }
+ double m_j1(double n) { return j1(n); }
+ double m_y0(double n) { return y0(n); }
+ double m_y1(double n) { return y1(n); }
++#endif
+
+ double calc(BW *bw, unsigned char *s)
+ {
+@@ -434,10 +442,12 @@
+ v = get(USTR "abs"); v->func = m_fabs;
+ v = get(USTR "erf"); v->func = m_erf;
+ v = get(USTR "erfc"); v->func = m_erfc;
++#ifndef NO_BESSEL
+ v = get(USTR "j0"); v->func = m_j0;
+ v = get(USTR "j1"); v->func = m_j1;
+ v = get(USTR "y0"); v->func = m_y0;
+ v = get(USTR "y1"); v->func = m_y1;
++#endif
+ }
+
+ v = get(USTR "top");
+++ /dev/null
-[PATCH] uClibc can be (and by default is) configured without bessel functions
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- umath.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-Index: joe-3.7/umath.c
-===================================================================
---- joe-3.7.orig/umath.c
-+++ joe-3.7/umath.c
-@@ -7,6 +7,12 @@
- */
- #include "types.h"
-
-+/* uClibc can be configured without bessel functions */
-+#include <features.h>
-+#if defined (__UCLIBC__) && !defined(__DO_XSI_MATH__)
-+#define NO_BESSEL
-+#endif
-+
- unsigned char *merr;
-
- int mode_hex;
-@@ -396,10 +402,12 @@
- double m_fabs(double n) { return fabs(n); }
- double m_erf(double n) { return erf(n); }
- double m_erfc(double n) { return erfc(n); }
-+#ifndef NO_BESSEL
- double m_j0(double n) { return j0(n); }
- double m_j1(double n) { return j1(n); }
- double m_y0(double n) { return y0(n); }
- double m_y1(double n) { return y1(n); }
-+#endif
-
- double calc(BW *bw, unsigned char *s)
- {
-@@ -434,10 +442,12 @@
- v = get(USTR "abs"); v->func = m_fabs;
- v = get(USTR "erf"); v->func = m_erf;
- v = get(USTR "erfc"); v->func = m_erfc;
-+#ifndef NO_BESSEL
- v = get(USTR "j0"); v->func = m_j0;
- v = get(USTR "j1"); v->func = m_j1;
- v = get(USTR "y0"); v->func = m_y0;
- v = get(USTR "y1"); v->func = m_y1;
-+#endif
- }
-
- v = get(USTR "top");
--- /dev/null
+From e87163425a67938afde96f01b19587ac3348b369 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Sun, 7 Sep 2014 10:49:57 +0200
+Subject: [PATCH] libm.h: comment j0, j1, y0 and y1
+
+Those functions are currently not used by jq, but having them in
+libm.h prevents building with the uClibc C library when it doesn't
+have DO_XSI_MATH option enabled.
+
+This issue was spotted by the Buildroot autobuilder system:
+
+ http://autobuild.buildroot.org/results/aaf/aaf3c114e0ca3e265ae32c646ba67f01aaf608bd/build-end.log
+
+Submitted upstream at https://github.com/stedolan/jq/pull/570.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ libm.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/libm.h b/libm.h
+index f8c52be..8e82fb7 100644
+--- a/libm.h
++++ b/libm.h
+@@ -10,8 +10,8 @@ LIBM_DD(cosh)
+ LIBM_DD(exp2)
+ LIBM_DD(exp)
+ LIBM_DD(floor)
+-LIBM_DD(j0)
+-LIBM_DD(j1)
++/* LIBM_DD(j0) */
++/* LIBM_DD(j1) */
+ LIBM_DD(log10)
+ LIBM_DD(log2)
+ LIBM_DD(log)
+@@ -21,8 +21,8 @@ LIBM_DD(sqrt)
+ LIBM_DD(tan)
+ LIBM_DD(tanh)
+ LIBM_DD(tgamma)
+-LIBM_DD(y0)
+-LIBM_DD(y1)
++/* LIBM_DD(y0) */
++/* LIBM_DD(y1) */
+ /* LIBM_DID(jn) */
+ /* LIBM_DID(yn) */
+ /* LIBM_DDD(pow) */
+--
+2.0.0
+
+++ /dev/null
-From e87163425a67938afde96f01b19587ac3348b369 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sun, 7 Sep 2014 10:49:57 +0200
-Subject: [PATCH] libm.h: comment j0, j1, y0 and y1
-
-Those functions are currently not used by jq, but having them in
-libm.h prevents building with the uClibc C library when it doesn't
-have DO_XSI_MATH option enabled.
-
-This issue was spotted by the Buildroot autobuilder system:
-
- http://autobuild.buildroot.org/results/aaf/aaf3c114e0ca3e265ae32c646ba67f01aaf608bd/build-end.log
-
-Submitted upstream at https://github.com/stedolan/jq/pull/570.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- libm.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/libm.h b/libm.h
-index f8c52be..8e82fb7 100644
---- a/libm.h
-+++ b/libm.h
-@@ -10,8 +10,8 @@ LIBM_DD(cosh)
- LIBM_DD(exp2)
- LIBM_DD(exp)
- LIBM_DD(floor)
--LIBM_DD(j0)
--LIBM_DD(j1)
-+/* LIBM_DD(j0) */
-+/* LIBM_DD(j1) */
- LIBM_DD(log10)
- LIBM_DD(log2)
- LIBM_DD(log)
-@@ -21,8 +21,8 @@ LIBM_DD(sqrt)
- LIBM_DD(tan)
- LIBM_DD(tanh)
- LIBM_DD(tgamma)
--LIBM_DD(y0)
--LIBM_DD(y1)
-+/* LIBM_DD(y0) */
-+/* LIBM_DD(y1) */
- /* LIBM_DID(jn) */
- /* LIBM_DID(yn) */
- /* LIBM_DDD(pow) */
---
-2.0.0
-
--- /dev/null
+Do not pass -D_REENTRANT
+
+This flag is not needed to build this library, and prevents to build
+it with toolchains that don't have thread support.
+
+Since the Makefile.in change is a one-liner, we also do it in the
+patch to avoid having to autoreconfigure the package.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile.am.inc
+===================================================================
+--- a/Makefile.am.inc
++++ b/Makefile.am.inc
+@@ -1,2 +1,2 @@
+-AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT
++AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE
+
+Index: b/Makefile.in
+===================================================================
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -274,7 +274,7 @@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT
++AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE
+ EXTRA_DIST = README.html README-WIN32.html config.h.win32 doc json-c.vcproj
+ SUBDIRS = . tests
+ lib_LTLIBRARIES = libjson-c.la $(am__append_1)
+Index: b/tests/Makefile.in
+===================================================================
+--- a/tests/Makefile.in
++++ b/tests/Makefile.in
+@@ -228,7 +228,7 @@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT
++AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE
+ LIBJSON_LA = $(top_builddir)/libjson-c.la
+ test1_LDADD = $(LIBJSON_LA)
+ test1Formatted_LDADD = $(LIBJSON_LA)
+++ /dev/null
-Do not pass -D_REENTRANT
-
-This flag is not needed to build this library, and prevents to build
-it with toolchains that don't have thread support.
-
-Since the Makefile.in change is a one-liner, we also do it in the
-patch to avoid having to autoreconfigure the package.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile.am.inc
-===================================================================
---- a/Makefile.am.inc
-+++ b/Makefile.am.inc
-@@ -1,2 +1,2 @@
--AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT
-+AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE
-
-Index: b/Makefile.in
-===================================================================
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -274,7 +274,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT
-+AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE
- EXTRA_DIST = README.html README-WIN32.html config.h.win32 doc json-c.vcproj
- SUBDIRS = . tests
- lib_LTLIBRARIES = libjson-c.la $(am__append_1)
-Index: b/tests/Makefile.in
-===================================================================
---- a/tests/Makefile.in
-+++ b/tests/Makefile.in
-@@ -228,7 +228,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT
-+AM_CFLAGS = -Wall -Werror -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE
- LIBJSON_LA = $(top_builddir)/libjson-c.la
- test1_LDADD = $(LIBJSON_LA)
- test1Formatted_LDADD = $(LIBJSON_LA)
--- /dev/null
+Make sure we link against libintl if needed
+
+We modify directly the Makefile.in so that we don't have to
+autoreconfigure the package, which doesn't work because packages using
+gettext need the autopoint tool for their autoregeneration step and
+this thing doesn't work (yet) in Buildroot.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: kbd-1.15.2/src/Makefile.am
+===================================================================
+--- kbd-1.15.2.orig/src/Makefile.am 2011-05-22 16:08:51.144530776 +0200
++++ kbd-1.15.2/src/Makefile.am 2011-05-22 16:09:09.892530778 +0200
+@@ -5,6 +5,8 @@
+ AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DLOCALEDIR=\"$(localedir)\" $(WARNINGS) \
+ -funit-at-a-time
+
++LDADD = @INTLLIBS@
++
+ OLDPROGS = mapscrn loadunimap
+ PROGS = \
+ dumpkeys loadkeys showkey setfont showconsolefont \
+Index: kbd-1.15.2/src/Makefile.in
+===================================================================
+--- kbd-1.15.2.orig/src/Makefile.in 2011-05-22 16:10:27.540530777 +0200
++++ kbd-1.15.2/src/Makefile.in 2011-05-22 16:10:51.172530778 +0200
+@@ -26,6 +26,7 @@
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
++LDADD = @INTLLIBS@
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+++ /dev/null
-Make sure we link against libintl if needed
-
-We modify directly the Makefile.in so that we don't have to
-autoreconfigure the package, which doesn't work because packages using
-gettext need the autopoint tool for their autoregeneration step and
-this thing doesn't work (yet) in Buildroot.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: kbd-1.15.2/src/Makefile.am
-===================================================================
---- kbd-1.15.2.orig/src/Makefile.am 2011-05-22 16:08:51.144530776 +0200
-+++ kbd-1.15.2/src/Makefile.am 2011-05-22 16:09:09.892530778 +0200
-@@ -5,6 +5,8 @@
- AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DLOCALEDIR=\"$(localedir)\" $(WARNINGS) \
- -funit-at-a-time
-
-+LDADD = @INTLLIBS@
-+
- OLDPROGS = mapscrn loadunimap
- PROGS = \
- dumpkeys loadkeys showkey setfont showconsolefont \
-Index: kbd-1.15.2/src/Makefile.in
-===================================================================
---- kbd-1.15.2.orig/src/Makefile.in 2011-05-22 16:10:27.540530777 +0200
-+++ kbd-1.15.2/src/Makefile.in 2011-05-22 16:10:51.172530778 +0200
-@@ -26,6 +26,7 @@
- install_sh_PROGRAM = $(install_sh) -c
- install_sh_SCRIPT = $(install_sh) -c
- INSTALL_HEADER = $(INSTALL_DATA)
-+LDADD = @INTLLIBS@
- transform = $(program_transform_name)
- NORMAL_INSTALL = :
- PRE_INSTALL = :
--- /dev/null
+From 0a654c20e1b9324c57ba4116b52fb6ab33847e1d Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Thu, 8 Aug 2013 17:16:31 +0800
+Subject: [PATCH] kexec: Implement clean restart for busybox init
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+---
+ kexec.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/kexec.c b/kexec.c
+index 2edb7df..b2a0c42 100644
+--- a/kexec.c
++++ b/kexec.c
+@@ -27,6 +27,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <syscall.h>
++#include <signal.h>
+ #include <libfdt.h>
+ #include <getopt.h>
+ #include <sys/types.h>
+@@ -818,7 +819,7 @@ int main(int argc, char *argv[])
+ sync();
+ exec_kexec();
+ } else {
+- execlp("shutdown", "shutdown", "-r", "now", NULL);
++ kill(1, SIGQUIT);
+ }
+
+ return -1;
+--
+1.7.10.4
+
+++ /dev/null
-From 0a654c20e1b9324c57ba4116b52fb6ab33847e1d Mon Sep 17 00:00:00 2001
-From: Jeremy Kerr <jk@ozlabs.org>
-Date: Thu, 8 Aug 2013 17:16:31 +0800
-Subject: [PATCH] kexec: Implement clean restart for busybox init
-
-Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
----
- kexec.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/kexec.c b/kexec.c
-index 2edb7df..b2a0c42 100644
---- a/kexec.c
-+++ b/kexec.c
-@@ -27,6 +27,7 @@
- #include <fcntl.h>
- #include <errno.h>
- #include <syscall.h>
-+#include <signal.h>
- #include <libfdt.h>
- #include <getopt.h>
- #include <sys/types.h>
-@@ -818,7 +819,7 @@ int main(int argc, char *argv[])
- sync();
- exec_kexec();
- } else {
-- execlp("shutdown", "shutdown", "-r", "now", NULL);
-+ kill(1, SIGQUIT);
- }
-
- return -1;
---
-1.7.10.4
-
--- /dev/null
+[PATCH] vmcore-dmesg: don't enforce largefile handling
+
+Breaks build on !largefile toolchains.
+
+Instead simply use whatever mode is selected by toolchain / CFLAGS.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ vmcore-dmesg/vmcore-dmesg.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+Index: kexec-tools-2.0.3/vmcore-dmesg/vmcore-dmesg.c
+===================================================================
+--- kexec-tools-2.0.3.orig/vmcore-dmesg/vmcore-dmesg.c
++++ kexec-tools-2.0.3/vmcore-dmesg/vmcore-dmesg.c
+@@ -1,6 +1,4 @@
+ #define _XOPEN_SOURCE 600
+-#define _LARGEFILE_SOURCE 1
+-#define _FILE_OFFSET_BITS 64
+ #include <endian.h>
+ #include <byteswap.h>
+ #include <stdio.h>
+++ /dev/null
-[PATCH] vmcore-dmesg: don't enforce largefile handling
-
-Breaks build on !largefile toolchains.
-
-Instead simply use whatever mode is selected by toolchain / CFLAGS.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- vmcore-dmesg/vmcore-dmesg.c | 2 --
- 1 file changed, 2 deletions(-)
-
-Index: kexec-tools-2.0.3/vmcore-dmesg/vmcore-dmesg.c
-===================================================================
---- kexec-tools-2.0.3.orig/vmcore-dmesg/vmcore-dmesg.c
-+++ kexec-tools-2.0.3/vmcore-dmesg/vmcore-dmesg.c
-@@ -1,6 +1,4 @@
- #define _XOPEN_SOURCE 600
--#define _LARGEFILE_SOURCE 1
--#define _FILE_OFFSET_BITS 64
- #include <endian.h>
- #include <byteswap.h>
- #include <stdio.h>
--- /dev/null
+keyutils: Allow building of the shared library to be suppressed
+
+Upstream patch:
+ https://kernel.googlesource.com/pub/scm/linux/kernel/git/dhowells/keyutils/+/a4deb71ddc05e951c8be8d46615beed9d408a5c8
+
+Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
+
+LIB: Allow building of the shared library to be suppressed
+
+Allow building of the shared library to be suppressed by passing NO_SOLIB=1 to
+the Makefile.
+
+Reported-and-tested-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+diff --git a/Makefile b/Makefile
+index c904eaf..5dd2113 100644
+--- a/Makefile
++++ b/Makefile
+@@ -5,6 +5,7 @@
+ SPECFILE := keyutils.spec
+ NO_GLIBC_KEYERR := 0
+ NO_ARLIB := 0
++NO_SOLIB := 0
+ ETCDIR := /etc
+ BINDIR := /bin
+ SBINDIR := /sbin
+@@ -95,7 +96,7 @@
+ # Normal build rule
+ #
+ ###############################################################################
+-all: $(DEVELLIB) keyctl request-key key.dns_resolver
++all: keyctl request-key key.dns_resolver
+
+ ###############################################################################
+ #
+@@ -104,20 +105,23 @@
+ ###############################################################################
+ #RPATH = -Wl,-rpath,$(LIBDIR)
+
+-ifeq ($(NO_ARLIB),0)
+-all: $(ARLIB)
+-$(ARLIB): keyutils.o
+- $(AR) rcs $@ $<
+-endif
+-
+ VCPPFLAGS := -DPKGBUILD="\"$(shell date -u +%F)\""
+ VCPPFLAGS += -DPKGVERSION="\"keyutils-$(VERSION)\""
+ VCPPFLAGS += -DAPIVERSION="\"libkeyutils-$(APIVERSION)\""
+
++ifeq ($(NO_ARLIB),0)
++all: $(ARLIB)
++$(ARLIB): keyutils.o
++ $(AR) rcs $@ $<
++
+ keyutils.o: keyutils.c keyutils.h Makefile
+ $(CC) $(CPPFLAGS) $(VCPPFLAGS) $(CFLAGS) -UNO_GLIBC_KEYERR -o $@ -c $<
++LIB_DEPENDENCY := libkeyutils.a
++endif
+
+
++ifeq ($(NO_SOLIB),0)
++all: $(DEVELLIB)
+ $(DEVELLIB): $(SONAME)
+ ln -sf $< $@
+
+@@ -131,6 +135,8 @@
+
+ keyutils.os: keyutils.c keyutils.h Makefile
+ $(CC) $(CPPFLAGS) $(VCPPFLAGS) $(CFLAGS) -fPIC -o $@ -c $<
++LIB_DEPENDENCY := $(DEVELLIB)
++endif
+
+ ###############################################################################
+ #
+@@ -140,13 +146,13 @@
+ %.o: %.c keyutils.h Makefile
+ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
+
+-keyctl: keyctl.o $(DEVELLIB)
++keyctl: keyctl.o $(LIB_DEPENDENCY)
+ $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils
+
+-request-key: request-key.o $(DEVELLIB)
++request-key: request-key.o $(LIB_DEPENDENCY)
+ $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils
+
+-key.dns_resolver: key.dns_resolver.o $(DEVELLIB)
++key.dns_resolver: key.dns_resolver.o $(LIB_DEPENDENCY)
+ $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils -lresolv
+
+ ###############################################################################
+@@ -158,10 +164,12 @@
+ ifeq ($(NO_ARLIB),0)
+ $(INSTALL) -D -m 0644 $(ARLIB) $(DESTDIR)$(USRLIBDIR)/$(ARLIB)
+ endif
++ifeq ($(NO_SOLIB),0)
+ $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
+ $(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
+ mkdir -p $(DESTDIR)$(USRLIBDIR)
+ $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
++endif
+ $(INSTALL) -D keyctl $(DESTDIR)$(BINDIR)/keyctl
+ $(INSTALL) -D request-key $(DESTDIR)$(SBINDIR)/request-key
+ $(INSTALL) -D request-key-debug.sh $(DESTDIR)$(SHAREDIR)/request-key-debug.sh
--- /dev/null
+Makefile: fix install rule
+
+Do not link the .so with an absolute path, otherwise it may point to
+the host library.
+
+Based on the former patch by Yann E. MORIN.
+
+Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
+
+--- keyutils-1.5.9/Makefile.orig 2014-09-22 16:13:41.593562765 +0100
++++ keyutils-1.5.9/Makefile 2014-09-22 16:14:05.377963952 +0100
+@@ -168,7 +168,7 @@ ifeq ($(NO_SOLIB),0)
+ $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
+ $(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
+ mkdir -p $(DESTDIR)$(USRLIBDIR)
+- $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
++ $(LNS) $(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
+ endif
+ $(INSTALL) -D keyctl $(DESTDIR)$(BINDIR)/keyctl
+ $(INSTALL) -D request-key $(DESTDIR)$(SBINDIR)/request-key
--- /dev/null
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Marcus Meissner <meissner@suse.de>
+Description: Added 2 cifs helpers to request-key.conf (for CIFS DFS support)
+
+diff -Naurp keyutils.orig/request-key.conf keyutils/request-key.conf
+--- keyutils.orig/request-key.conf 2008-09-07 23:53:10.000000000 +0000
++++ keyutils/request-key.conf 2009-02-05 00:53:00.000000000 +0000
+@@ -34,4 +34,6 @@
+ create user debug:* negate /bin/keyctl negate %k 30 %S
+ create user debug:loop:* * |/bin/cat
+ create user debug:* * /usr/share/keyutils/request-key-debug.sh %k %d %c %S
++create cifs.spnego * * /usr/sbin/cifs.upcall -c %k
++create dns_resolver * * /usr/sbin/cifs.upcall %k
+ negate * * * /bin/keyctl negate %k 30 %S
--- /dev/null
+Makefile: Don't call "ln" directly
+
+Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
+
+--- keyutils-1.5.9/Makefile.orig 2014-09-22 16:05:14.117007430 +0100
++++ keyutils-1.5.9/Makefile 2014-09-22 16:06:26.053219336 +0100
+@@ -123,10 +123,10 @@ endif
+ ifeq ($(NO_SOLIB),0)
+ all: $(DEVELLIB)
+ $(DEVELLIB): $(SONAME)
+- ln -sf $< $@
++ $(LNS) $< $@
+
+ $(SONAME): $(LIBNAME)
+- ln -sf $< $@
++ $(LNS) $< $@
+
+ LIBVERS := -shared -Wl,-soname,$(SONAME) -Wl,--version-script,version.lds
+
+++ /dev/null
-keyutils: Allow building of the shared library to be suppressed
-
-Upstream patch:
- https://kernel.googlesource.com/pub/scm/linux/kernel/git/dhowells/keyutils/+/a4deb71ddc05e951c8be8d46615beed9d408a5c8
-
-Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
-
-LIB: Allow building of the shared library to be suppressed
-
-Allow building of the shared library to be suppressed by passing NO_SOLIB=1 to
-the Makefile.
-
-Reported-and-tested-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
-Signed-off-by: David Howells <dhowells@redhat.com>
-diff --git a/Makefile b/Makefile
-index c904eaf..5dd2113 100644
---- a/Makefile
-+++ b/Makefile
-@@ -5,6 +5,7 @@
- SPECFILE := keyutils.spec
- NO_GLIBC_KEYERR := 0
- NO_ARLIB := 0
-+NO_SOLIB := 0
- ETCDIR := /etc
- BINDIR := /bin
- SBINDIR := /sbin
-@@ -95,7 +96,7 @@
- # Normal build rule
- #
- ###############################################################################
--all: $(DEVELLIB) keyctl request-key key.dns_resolver
-+all: keyctl request-key key.dns_resolver
-
- ###############################################################################
- #
-@@ -104,20 +105,23 @@
- ###############################################################################
- #RPATH = -Wl,-rpath,$(LIBDIR)
-
--ifeq ($(NO_ARLIB),0)
--all: $(ARLIB)
--$(ARLIB): keyutils.o
-- $(AR) rcs $@ $<
--endif
--
- VCPPFLAGS := -DPKGBUILD="\"$(shell date -u +%F)\""
- VCPPFLAGS += -DPKGVERSION="\"keyutils-$(VERSION)\""
- VCPPFLAGS += -DAPIVERSION="\"libkeyutils-$(APIVERSION)\""
-
-+ifeq ($(NO_ARLIB),0)
-+all: $(ARLIB)
-+$(ARLIB): keyutils.o
-+ $(AR) rcs $@ $<
-+
- keyutils.o: keyutils.c keyutils.h Makefile
- $(CC) $(CPPFLAGS) $(VCPPFLAGS) $(CFLAGS) -UNO_GLIBC_KEYERR -o $@ -c $<
-+LIB_DEPENDENCY := libkeyutils.a
-+endif
-
-
-+ifeq ($(NO_SOLIB),0)
-+all: $(DEVELLIB)
- $(DEVELLIB): $(SONAME)
- ln -sf $< $@
-
-@@ -131,6 +135,8 @@
-
- keyutils.os: keyutils.c keyutils.h Makefile
- $(CC) $(CPPFLAGS) $(VCPPFLAGS) $(CFLAGS) -fPIC -o $@ -c $<
-+LIB_DEPENDENCY := $(DEVELLIB)
-+endif
-
- ###############################################################################
- #
-@@ -140,13 +146,13 @@
- %.o: %.c keyutils.h Makefile
- $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
-
--keyctl: keyctl.o $(DEVELLIB)
-+keyctl: keyctl.o $(LIB_DEPENDENCY)
- $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils
-
--request-key: request-key.o $(DEVELLIB)
-+request-key: request-key.o $(LIB_DEPENDENCY)
- $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils
-
--key.dns_resolver: key.dns_resolver.o $(DEVELLIB)
-+key.dns_resolver: key.dns_resolver.o $(LIB_DEPENDENCY)
- $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils -lresolv
-
- ###############################################################################
-@@ -158,10 +164,12 @@
- ifeq ($(NO_ARLIB),0)
- $(INSTALL) -D -m 0644 $(ARLIB) $(DESTDIR)$(USRLIBDIR)/$(ARLIB)
- endif
-+ifeq ($(NO_SOLIB),0)
- $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
- $(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
- mkdir -p $(DESTDIR)$(USRLIBDIR)
- $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
-+endif
- $(INSTALL) -D keyctl $(DESTDIR)$(BINDIR)/keyctl
- $(INSTALL) -D request-key $(DESTDIR)$(SBINDIR)/request-key
- $(INSTALL) -D request-key-debug.sh $(DESTDIR)$(SHAREDIR)/request-key-debug.sh
+++ /dev/null
-Makefile: fix install rule
-
-Do not link the .so with an absolute path, otherwise it may point to
-the host library.
-
-Based on the former patch by Yann E. MORIN.
-
-Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
-
---- keyutils-1.5.9/Makefile.orig 2014-09-22 16:13:41.593562765 +0100
-+++ keyutils-1.5.9/Makefile 2014-09-22 16:14:05.377963952 +0100
-@@ -168,7 +168,7 @@ ifeq ($(NO_SOLIB),0)
- $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
- $(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
- mkdir -p $(DESTDIR)$(USRLIBDIR)
-- $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
-+ $(LNS) $(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
- endif
- $(INSTALL) -D keyctl $(DESTDIR)$(BINDIR)/keyctl
- $(INSTALL) -D request-key $(DESTDIR)$(SBINDIR)/request-key
+++ /dev/null
-Patch vampirised from Debian's packaging of keyutils-1.4
-
-Author: Marcus Meissner <meissner@suse.de>
-Description: Added 2 cifs helpers to request-key.conf (for CIFS DFS support)
-
-diff -Naurp keyutils.orig/request-key.conf keyutils/request-key.conf
---- keyutils.orig/request-key.conf 2008-09-07 23:53:10.000000000 +0000
-+++ keyutils/request-key.conf 2009-02-05 00:53:00.000000000 +0000
-@@ -34,4 +34,6 @@
- create user debug:* negate /bin/keyctl negate %k 30 %S
- create user debug:loop:* * |/bin/cat
- create user debug:* * /usr/share/keyutils/request-key-debug.sh %k %d %c %S
-+create cifs.spnego * * /usr/sbin/cifs.upcall -c %k
-+create dns_resolver * * /usr/sbin/cifs.upcall %k
- negate * * * /bin/keyctl negate %k 30 %S
+++ /dev/null
-Makefile: Don't call "ln" directly
-
-Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
-
---- keyutils-1.5.9/Makefile.orig 2014-09-22 16:05:14.117007430 +0100
-+++ keyutils-1.5.9/Makefile 2014-09-22 16:06:26.053219336 +0100
-@@ -123,10 +123,10 @@ endif
- ifeq ($(NO_SOLIB),0)
- all: $(DEVELLIB)
- $(DEVELLIB): $(SONAME)
-- ln -sf $< $@
-+ $(LNS) $< $@
-
- $(SONAME): $(LIBNAME)
-- ln -sf $< $@
-+ $(LNS) $< $@
-
- LIBVERS := -shared -Wl,-soname,$(SONAME) -Wl,--version-script,version.lds
-
--- /dev/null
+Newer kernel headers renamed mtd mode defines and no longer support
+MEMSETOOBSEL. Allow code to work with both older and newer kernel
+versions.
+
+Signed-off-by: Paul B. Henson <henson@acm.org>
+Signed-off-by: Sergey Alyoshin <alyoshin.s@gmail.com>
+
+diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.c kobs-ng-3.0.35-4.0.0/src/mtd.c
+--- kobs-ng-3.0.35-4.0.0-orig/src/mtd.c 2012-12-17 22:37:40.000000000 -0800
++++ kobs-ng-3.0.35-4.0.0/src/mtd.c 2013-07-28 19:39:59.000000000 -0700
+@@ -852,8 +852,11 @@
+ mp = &md->part[i];
+
+ if (mp->fd != -1) {
++/* Newer kernels dropped MEMSETOOBSEL */
++#ifdef MEMSETOOBSEL
+ (void)ioctl(mp->fd, MEMSETOOBSEL,
+ &mp->old_oobinfo);
++#endif
+ close(mp->fd);
+ }
+
+@@ -896,6 +899,8 @@
+ continue;
+ }
+
++/* Newer kernels dropped MEMSETOOBSEL */
++#ifdef MEMSETOOBSEL
+ if (r == -ENOTTY) {
+ r = ioctl(mp->fd, MEMSETOOBSEL, &mp->old_oobinfo);
+ if (r != 0) {
+@@ -904,6 +909,7 @@
+ }
+ mp->oobinfochanged = 0;
+ }
++#endif
+ } else {
+ r = ioctl(mp->fd, MTDFILEMODE, (void *)MTD_MODE_RAW);
+ if (r != 0 && r != -ENOTTY) {
+@@ -911,6 +917,8 @@
+ continue;
+ }
+
++/* Newer kernels dropped MEMSETOOBSEL */
++#ifdef MEMSETOOBSEL
+ if (r == -ENOTTY) {
+ r = ioctl(mp->fd, MEMSETOOBSEL, &none_oobinfo);
+ if (r != 0) {
+@@ -920,6 +928,7 @@
+ mp->oobinfochanged = 1;
+ } else
+ mp->oobinfochanged = 2;
++#endif
+ }
+
+ mp->ecc = ecc;
+diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.h kobs-ng-3.0.35-4.0.0/src/mtd.h
+--- kobs-ng-3.0.35-4.0.0-orig/src/mtd.h 2012-12-17 22:37:40.000000000 -0800
++++ kobs-ng-3.0.35-4.0.0/src/mtd.h 2013-07-28 19:33:57.000000000 -0700
+@@ -31,6 +31,13 @@
+ #include "BootControlBlocks.h"
+ #include "rom_nand_hamming_code_ecc.h"
+
++// Newer kernel headers renamed define
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
++# define MTD_MODE_NORMAL MTD_FILE_MODE_NORMAL
++# define MTD_MODE_RAW MTD_FILE_MODE_RAW
++#endif
++
+ //------------------------------------------------------------------------------
+ // Re-definitions of true and false, because the standard ones aren't good
+ // enough?
+++ /dev/null
-Newer kernel headers renamed mtd mode defines and no longer support
-MEMSETOOBSEL. Allow code to work with both older and newer kernel
-versions.
-
-Signed-off-by: Paul B. Henson <henson@acm.org>
-Signed-off-by: Sergey Alyoshin <alyoshin.s@gmail.com>
-
-diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.c kobs-ng-3.0.35-4.0.0/src/mtd.c
---- kobs-ng-3.0.35-4.0.0-orig/src/mtd.c 2012-12-17 22:37:40.000000000 -0800
-+++ kobs-ng-3.0.35-4.0.0/src/mtd.c 2013-07-28 19:39:59.000000000 -0700
-@@ -852,8 +852,11 @@
- mp = &md->part[i];
-
- if (mp->fd != -1) {
-+/* Newer kernels dropped MEMSETOOBSEL */
-+#ifdef MEMSETOOBSEL
- (void)ioctl(mp->fd, MEMSETOOBSEL,
- &mp->old_oobinfo);
-+#endif
- close(mp->fd);
- }
-
-@@ -896,6 +899,8 @@
- continue;
- }
-
-+/* Newer kernels dropped MEMSETOOBSEL */
-+#ifdef MEMSETOOBSEL
- if (r == -ENOTTY) {
- r = ioctl(mp->fd, MEMSETOOBSEL, &mp->old_oobinfo);
- if (r != 0) {
-@@ -904,6 +909,7 @@
- }
- mp->oobinfochanged = 0;
- }
-+#endif
- } else {
- r = ioctl(mp->fd, MTDFILEMODE, (void *)MTD_MODE_RAW);
- if (r != 0 && r != -ENOTTY) {
-@@ -911,6 +917,8 @@
- continue;
- }
-
-+/* Newer kernels dropped MEMSETOOBSEL */
-+#ifdef MEMSETOOBSEL
- if (r == -ENOTTY) {
- r = ioctl(mp->fd, MEMSETOOBSEL, &none_oobinfo);
- if (r != 0) {
-@@ -920,6 +928,7 @@
- mp->oobinfochanged = 1;
- } else
- mp->oobinfochanged = 2;
-+#endif
- }
-
- mp->ecc = ecc;
-diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.h kobs-ng-3.0.35-4.0.0/src/mtd.h
---- kobs-ng-3.0.35-4.0.0-orig/src/mtd.h 2012-12-17 22:37:40.000000000 -0800
-+++ kobs-ng-3.0.35-4.0.0/src/mtd.h 2013-07-28 19:33:57.000000000 -0700
-@@ -31,6 +31,13 @@
- #include "BootControlBlocks.h"
- #include "rom_nand_hamming_code_ecc.h"
-
-+// Newer kernel headers renamed define
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
-+# define MTD_MODE_NORMAL MTD_FILE_MODE_NORMAL
-+# define MTD_MODE_RAW MTD_FILE_MODE_RAW
-+#endif
-+
- //------------------------------------------------------------------------------
- // Re-definitions of true and false, because the standard ones aren't good
- // enough?
--- /dev/null
+Usee $(CC) to enable cross compiling and link to the right ncurses library.
+
+Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
+
+--- latencytop-0.5/Makefile.old 2012-04-18 11:59:39.748084334 +0100
++++ latencytop-0.5/Makefile 2012-04-18 12:00:08.659112340 +0100
+@@ -4,7 +4,7 @@
+ DESTDIR =
+ SBINDIR = /usr/sbin
+ XCFLAGS = -W -g `pkg-config --cflags glib-2.0` -D_FORTIFY_SOURCE=2 -Wno-sign-compare
+-LDF = -Wl,--as-needed `pkg-config --libs glib-2.0` -lncursesw
++LDF = -Wl,--as-needed `pkg-config --libs glib-2.0` -lncurses
+
+ OBJS= latencytop.o text_display.o translate.o fsync.o
+
+@@ -26,10 +26,10 @@
+
+ # We write explicity this "implicit rule"
+ %.o : %.c
+- gcc -c $(CFLAGS) $(XCFLAGS) $< -o $@
++ $(CC) -c $(CFLAGS) $(XCFLAGS) $< -o $@
+
+ latencytop: $(OBJS) latencytop.h Makefile
+- gcc $(CFLAGS) $(OBJS) $(LDF) -o latencytop
++ $(CC) $(CFLAGS) $(OBJS) $(LDF) -o latencytop
+
+ clean:
+ rm -f *~ latencytop DEADJOE *.o
+++ /dev/null
-Usee $(CC) to enable cross compiling and link to the right ncurses library.
-
-Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
-
---- latencytop-0.5/Makefile.old 2012-04-18 11:59:39.748084334 +0100
-+++ latencytop-0.5/Makefile 2012-04-18 12:00:08.659112340 +0100
-@@ -4,7 +4,7 @@
- DESTDIR =
- SBINDIR = /usr/sbin
- XCFLAGS = -W -g `pkg-config --cflags glib-2.0` -D_FORTIFY_SOURCE=2 -Wno-sign-compare
--LDF = -Wl,--as-needed `pkg-config --libs glib-2.0` -lncursesw
-+LDF = -Wl,--as-needed `pkg-config --libs glib-2.0` -lncurses
-
- OBJS= latencytop.o text_display.o translate.o fsync.o
-
-@@ -26,10 +26,10 @@
-
- # We write explicity this "implicit rule"
- %.o : %.c
-- gcc -c $(CFLAGS) $(XCFLAGS) $< -o $@
-+ $(CC) -c $(CFLAGS) $(XCFLAGS) $< -o $@
-
- latencytop: $(OBJS) latencytop.h Makefile
-- gcc $(CFLAGS) $(OBJS) $(LDF) -o latencytop
-+ $(CC) $(CFLAGS) $(OBJS) $(LDF) -o latencytop
-
- clean:
- rm -f *~ latencytop DEADJOE *.o
--- /dev/null
+From ede0fa7d410be407164b68570a1540378bf0bd09 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Sat, 19 Jul 2014 10:40:59 +0200
+Subject: [PATCH] Remove installation of docs/examples
+
+They get installed in the wrong directory, i.e if DESTDIR is
+/path/to/output/target, they will be installed in
+/path/to/output/target./examples and /path/to/output/target./docs.
+
+Since we don't need docs and examples in Buildroot anyway, simply get
+rid of them.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile.am | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index c56860a..6b1267b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -69,14 +69,3 @@ liblcdapi_la_CXXFLAGS = \
+ -g0 -DNODEBUG -Os
+
+ ACLOCAL_AMFLAGS = -I m4
+-
+-docsdir = $(top_srcdir)/docs
+-exampledir = $(top_srcdir)/example
+-dist_docs_DATA = \
+- docs/Makefile.am \
+- docs/Makefile.in \
+- docs/Doxyfile.in
+-dist_example_DATA = \
+- example/client.cpp \
+- example/Makefile.am \
+- example/Makefile.in
+--
+2.0.0
+
+++ /dev/null
-From ede0fa7d410be407164b68570a1540378bf0bd09 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sat, 19 Jul 2014 10:40:59 +0200
-Subject: [PATCH] Remove installation of docs/examples
-
-They get installed in the wrong directory, i.e if DESTDIR is
-/path/to/output/target, they will be installed in
-/path/to/output/target./examples and /path/to/output/target./docs.
-
-Since we don't need docs and examples in Buildroot anyway, simply get
-rid of them.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile.am | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index c56860a..6b1267b 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -69,14 +69,3 @@ liblcdapi_la_CXXFLAGS = \
- -g0 -DNODEBUG -Os
-
- ACLOCAL_AMFLAGS = -I m4
--
--docsdir = $(top_srcdir)/docs
--exampledir = $(top_srcdir)/example
--dist_docs_DATA = \
-- docs/Makefile.am \
-- docs/Makefile.in \
-- docs/Doxyfile.in
--dist_example_DATA = \
-- example/client.cpp \
-- example/Makefile.am \
-- example/Makefile.in
---
-2.0.0
-
--- /dev/null
+Fix the default LCDd configuration file, so that the DriverPath
+is set to the correct lcdproc library install path, rather than
+the dummy/default path.
+
+Signed-off-by: Simon Dawson <spdawson at gmail.com>
+---
+
+--- lcdproc-0.5.3/LCDd.conf.orig 2009-06-20 14:48:34.000000000 +0100
++++ lcdproc-0.5.3/LCDd.conf 2010-05-11 10:02:21.000000000 +0100
+@@ -34,7 +34,7 @@
+ # the driver modules and will thus not be able to
+ # function properly.
+ # NOTE: Always place a slash as last character !
+-DriverPath=server/drivers/
++DriverPath=/usr/lib/lcdproc/
+
+ # Tells the server to load the given drivers. Multiple lines can be given.
+ # The name of the driver is case sensitive and determines the section
+++ /dev/null
-Fix the default LCDd configuration file, so that the DriverPath
-is set to the correct lcdproc library install path, rather than
-the dummy/default path.
-
-Signed-off-by: Simon Dawson <spdawson at gmail.com>
----
-
---- lcdproc-0.5.3/LCDd.conf.orig 2009-06-20 14:48:34.000000000 +0100
-+++ lcdproc-0.5.3/LCDd.conf 2010-05-11 10:02:21.000000000 +0100
-@@ -34,7 +34,7 @@
- # the driver modules and will thus not be able to
- # function properly.
- # NOTE: Always place a slash as last character !
--DriverPath=server/drivers/
-+DriverPath=/usr/lib/lcdproc/
-
- # Tells the server to load the given drivers. Multiple lines can be given.
- # The name of the driver is case sensitive and determines the section
--- /dev/null
+Fix cross-compilation issues
+
+ - During target package compilation the host version of b_sortnl is
+ needed.
+
+ - Do not call a 'amiroot' program built for the target when
+ cross-compiling. We're anyway not root, so simply remove the
+ chown/chgrp dance.
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile.in
+===================================================================
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1853,7 +1853,7 @@
+
+ configparam_data.c: $(srcdir)/config.table b_sortnl$(EXEEXT) genconfigparam_data.awk
+ rm -f config.table.sorted
+- ./b_sortnl$(EXEEXT) <$(srcdir)/config.table >config.table.sorted
++ ./b_sortnl_host$(EXEEXT) <$(srcdir)/config.table >config.table.sorted
+ $(AWK) -f $(srcdir)/genconfigparam_data.awk <config.table.sorted >$@ \
+ || { rm -f $@ ; false ; }
+
+@@ -1868,13 +1868,7 @@
+ install-data-hook:
+ $(INSTALL) -d -m 02770 $(DESTDIR)$(SPOOLDIR)
+ $(INSTALL) -d -m 02770 $(DESTDIR)$(SPOOLDIR)/leaf.node
+- -./amiroot && chown $(RUNAS_USER) $(DESTDIR)$(SPOOLDIR)
+- -./amiroot && chown $(RUNAS_USER) $(DESTDIR)$(SPOOLDIR)/leaf.node
+- -./amiroot && chgrp $(RUNAS_GROUP) $(DESTDIR)$(SPOOLDIR)
+- -./amiroot && chgrp $(RUNAS_GROUP) $(DESTDIR)$(SPOOLDIR)/leaf.node
+ rm -f $(DESTDIR)$(sbindir)/leafnode-version # now in $(bindir)
+- ./amiroot && p=$(DESTDIR)$(bindir)/newsq && chown 0 $$p \
+- && chgrp $(RUNAS_GROUP) $$p && chmod 2111 $$p ; true
+ @echo
+ @echo "### If upgrading from leafnode before 1.6,"
+ @echo "### run: make update"
+++ /dev/null
-Fix cross-compilation issues
-
- - During target package compilation the host version of b_sortnl is
- needed.
-
- - Do not call a 'amiroot' program built for the target when
- cross-compiling. We're anyway not root, so simply remove the
- chown/chgrp dance.
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile.in
-===================================================================
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -1853,7 +1853,7 @@
-
- configparam_data.c: $(srcdir)/config.table b_sortnl$(EXEEXT) genconfigparam_data.awk
- rm -f config.table.sorted
-- ./b_sortnl$(EXEEXT) <$(srcdir)/config.table >config.table.sorted
-+ ./b_sortnl_host$(EXEEXT) <$(srcdir)/config.table >config.table.sorted
- $(AWK) -f $(srcdir)/genconfigparam_data.awk <config.table.sorted >$@ \
- || { rm -f $@ ; false ; }
-
-@@ -1868,13 +1868,7 @@
- install-data-hook:
- $(INSTALL) -d -m 02770 $(DESTDIR)$(SPOOLDIR)
- $(INSTALL) -d -m 02770 $(DESTDIR)$(SPOOLDIR)/leaf.node
-- -./amiroot && chown $(RUNAS_USER) $(DESTDIR)$(SPOOLDIR)
-- -./amiroot && chown $(RUNAS_USER) $(DESTDIR)$(SPOOLDIR)/leaf.node
-- -./amiroot && chgrp $(RUNAS_GROUP) $(DESTDIR)$(SPOOLDIR)
-- -./amiroot && chgrp $(RUNAS_GROUP) $(DESTDIR)$(SPOOLDIR)/leaf.node
- rm -f $(DESTDIR)$(sbindir)/leafnode-version # now in $(bindir)
-- ./amiroot && p=$(DESTDIR)$(bindir)/newsq && chown 0 $$p \
-- && chgrp $(RUNAS_GROUP) $$p && chmod 2111 $$p ; true
- @echo
- @echo "### If upgrading from leafnode before 1.6,"
- @echo "### run: make update"
--- /dev/null
+Patch borrowed from OpenEmbedded, available at
+recipes/libaio/libaio-0.3.106/00_arches.patch in their source
+tree. The patch has been adapted to remove the ARM-related
+definitions, since they have been merged in later versions of libaio.
+
+The patch adds various architecture specific definitions (syscall
+number and macros) for m68k, MIPS, PA/RISC and Sparc. Amongst these,
+Buildroot mostly only cares about MIPS, but it was just easier to take
+the whole OpenEmbedded patch.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ src/libaio.h | 24 +++++
+ src/syscall-m68k.h | 78 +++++++++++++++++
+ src/syscall-mips.h | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/syscall-parisc.h | 146 +++++++++++++++++++++++++++++++++
+ src/syscall-sparc.h | 130 +++++++++++++++++++++++++++++
+ src/syscall.h | 8 +
+ 7 files changed, 725 insertions(+)
+
+Index: libaio-0.3.109/src/libaio.h
+===================================================================
+--- libaio-0.3.109.orig/src/libaio.h
++++ libaio-0.3.109/src/libaio.h
+@@ -83,6 +83,30 @@
+ #define PADDEDptr(x, y) x; unsigned y
+ #define PADDEDul(x, y) unsigned long x; unsigned y
+ # endif
++#elif defined(__m68k__) /* big endian, 32 bits */
++#define PADDED(x, y) unsigned y; x
++#define PADDEDptr(x, y) unsigned y; x
++#define PADDEDul(x, y) unsigned y; unsigned long x
++#elif defined(__sparc__) /* big endian, 32 bits */
++#define PADDED(x, y) unsigned y; x
++#define PADDEDptr(x, y) unsigned y; x
++#define PADDEDul(x, y) unsigned y; unsigned long x
++#elif defined(__hppa__) /* big endian, 32 bits */
++#define PADDED(x, y) unsigned y; x
++#define PADDEDptr(x, y) unsigned y; x
++#define PADDEDul(x, y) unsigned y; unsigned long x
++#elif defined(__mips__)
++# if defined (__MIPSEB__) /* big endian, 32 bits */
++#define PADDED(x, y) unsigned y; x
++#define PADDEDptr(x, y) unsigned y; x
++#define PADDEDul(x, y) unsigned y; unsigned long x
++# elif defined(__MIPSEL__) /* little endian, 32 bits */
++#define PADDED(x, y) x; unsigned y
++#define PADDEDptr(x, y) x; unsigned y
++#define PADDEDul(x, y) unsigned long x; unsigned y
++# else
++# error "neither mipseb nor mipsel?"
++# endif
+ #else
+ #error endian?
+ #endif
+Index: libaio-0.3.109/src/syscall-m68k.h
+===================================================================
+--- /dev/null
++++ libaio-0.3.109/src/syscall-m68k.h
+@@ -0,0 +1,78 @@
++#define __NR_io_setup 241
++#define __NR_io_destroy 242
++#define __NR_io_getevents 243
++#define __NR_io_submit 244
++#define __NR_io_cancel 245
++
++#define io_syscall1(type,fname,sname,atype,a) \
++type fname(atype a) \
++{ \
++register long __res __asm__ ("%d0") = __NR_##sname; \
++register long __a __asm__ ("%d1") = (long)(a); \
++__asm__ __volatile__ ("trap #0" \
++ : "+d" (__res) \
++ : "d" (__a) ); \
++return (type) __res; \
++}
++
++#define io_syscall2(type,fname,sname,atype,a,btype,b) \
++type fname(atype a,btype b) \
++{ \
++register long __res __asm__ ("%d0") = __NR_##sname; \
++register long __a __asm__ ("%d1") = (long)(a); \
++register long __b __asm__ ("%d2") = (long)(b); \
++__asm__ __volatile__ ("trap #0" \
++ : "+d" (__res) \
++ : "d" (__a), "d" (__b) \
++ ); \
++return (type) __res; \
++}
++
++#define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \
++type fname(atype a,btype b,ctype c) \
++{ \
++register long __res __asm__ ("%d0") = __NR_##sname; \
++register long __a __asm__ ("%d1") = (long)(a); \
++register long __b __asm__ ("%d2") = (long)(b); \
++register long __c __asm__ ("%d3") = (long)(c); \
++__asm__ __volatile__ ("trap #0" \
++ : "+d" (__res) \
++ : "d" (__a), "d" (__b), \
++ "d" (__c) \
++ ); \
++return (type) __res; \
++}
++
++#define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \
++type fname (atype a, btype b, ctype c, dtype d) \
++{ \
++register long __res __asm__ ("%d0") = __NR_##sname; \
++register long __a __asm__ ("%d1") = (long)(a); \
++register long __b __asm__ ("%d2") = (long)(b); \
++register long __c __asm__ ("%d3") = (long)(c); \
++register long __d __asm__ ("%d4") = (long)(d); \
++__asm__ __volatile__ ("trap #0" \
++ : "+d" (__res) \
++ : "d" (__a), "d" (__b), \
++ "d" (__c), "d" (__d) \
++ ); \
++return (type) __res; \
++}
++
++#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
++type fname (atype a,btype b,ctype c,dtype d,etype e) \
++{ \
++register long __res __asm__ ("%d0") = __NR_##sname; \
++register long __a __asm__ ("%d1") = (long)(a); \
++register long __b __asm__ ("%d2") = (long)(b); \
++register long __c __asm__ ("%d3") = (long)(c); \
++register long __d __asm__ ("%d4") = (long)(d); \
++register long __e __asm__ ("%d5") = (long)(e); \
++__asm__ __volatile__ ("trap #0" \
++ : "+d" (__res) \
++ : "d" (__a), "d" (__b), \
++ "d" (__c), "d" (__d), "d" (__e) \
++ ); \
++return (type) __res; \
++}
++
+Index: libaio-0.3.109/src/syscall-mips.h
+===================================================================
+--- /dev/null
++++ libaio-0.3.109/src/syscall-mips.h
+@@ -0,0 +1,223 @@
++/*
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file "COPYING" in the main directory of this archive
++ * for more details.
++ *
++ * Copyright (C) 1995, 96, 97, 98, 99, 2000 by Ralf Baechle
++ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
++ *
++ * Changed system calls macros _syscall5 - _syscall7 to push args 5 to 7 onto
++ * the stack. Robin Farine for ACN S.A, Copyright (C) 1996 by ACN S.A
++ */
++
++#ifndef _MIPS_SIM_ABI32
++#define _MIPS_SIM_ABI32 1
++#define _MIPS_SIM_NABI32 2
++#define _MIPS_SIM_ABI64 3
++#endif
++
++#if _MIPS_SIM == _MIPS_SIM_ABI32
++
++/*
++ * Linux o32 style syscalls are in the range from 4000 to 4999.
++ */
++#define __NR_Linux 4000
++#define __NR_io_setup (__NR_Linux + 241)
++#define __NR_io_destroy (__NR_Linux + 242)
++#define __NR_io_getevents (__NR_Linux + 243)
++#define __NR_io_submit (__NR_Linux + 244)
++#define __NR_io_cancel (__NR_Linux + 245)
++
++#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
++
++#if _MIPS_SIM == _MIPS_SIM_ABI64
++
++/*
++ * Linux 64-bit syscalls are in the range from 5000 to 5999.
++ */
++#define __NR_Linux 5000
++#define __NR_io_setup (__NR_Linux + 200)
++#define __NR_io_destroy (__NR_Linux + 201)
++#define __NR_io_getevents (__NR_Linux + 202)
++#define __NR_io_submit (__NR_Linux + 203)
++#define __NR_io_cancel (__NR_Linux + 204)
++#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
++
++#if _MIPS_SIM == _MIPS_SIM_NABI32
++
++/*
++ * Linux N32 syscalls are in the range from 6000 to 6999.
++ */
++#define __NR_Linux 6000
++#define __NR_io_setup (__NR_Linux + 200)
++#define __NR_io_destroy (__NR_Linux + 201)
++#define __NR_io_getevents (__NR_Linux + 202)
++#define __NR_io_submit (__NR_Linux + 203)
++#define __NR_io_cancel (__NR_Linux + 204)
++#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
++
++#define io_syscall1(type,fname,sname,atype,a) \
++type fname(atype a) \
++{ \
++ register unsigned long __a0 asm("$4") = (unsigned long) a; \
++ register unsigned long __a3 asm("$7"); \
++ unsigned long __v0; \
++ \
++ __asm__ volatile ( \
++ ".set\tnoreorder\n\t" \
++ "li\t$2, %3\t\t\t# " #fname "\n\t" \
++ "syscall\n\t" \
++ "move\t%0, $2\n\t" \
++ ".set\treorder" \
++ : "=&r" (__v0), "=r" (__a3) \
++ : "r" (__a0), "i" (__NR_##sname) \
++ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
++ "memory"); \
++ \
++ if (__a3 == 0) \
++ return (type) __v0; \
++ return (type) -1; \
++}
++
++#define io_syscall2(type,fname,sname,atype,a,btype,b) \
++type fname(atype a, btype b) \
++{ \
++ register unsigned long __a0 asm("$4") = (unsigned long) a; \
++ register unsigned long __a1 asm("$5") = (unsigned long) b; \
++ register unsigned long __a3 asm("$7"); \
++ unsigned long __v0; \
++ \
++ __asm__ volatile ( \
++ ".set\tnoreorder\n\t" \
++ "li\t$2, %4\t\t\t# " #fname "\n\t" \
++ "syscall\n\t" \
++ "move\t%0, $2\n\t" \
++ ".set\treorder" \
++ : "=&r" (__v0), "=r" (__a3) \
++ : "r" (__a0), "r" (__a1), "i" (__NR_##sname) \
++ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
++ "memory"); \
++ \
++ if (__a3 == 0) \
++ return (type) __v0; \
++ return (type) -1; \
++}
++
++#define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \
++type fname(atype a, btype b, ctype c) \
++{ \
++ register unsigned long __a0 asm("$4") = (unsigned long) a; \
++ register unsigned long __a1 asm("$5") = (unsigned long) b; \
++ register unsigned long __a2 asm("$6") = (unsigned long) c; \
++ register unsigned long __a3 asm("$7"); \
++ unsigned long __v0; \
++ \
++ __asm__ volatile ( \
++ ".set\tnoreorder\n\t" \
++ "li\t$2, %5\t\t\t# " #fname "\n\t" \
++ "syscall\n\t" \
++ "move\t%0, $2\n\t" \
++ ".set\treorder" \
++ : "=&r" (__v0), "=r" (__a3) \
++ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname) \
++ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
++ "memory"); \
++ \
++ if (__a3 == 0) \
++ return (type) __v0; \
++ return (type) -1; \
++}
++
++#define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \
++type fname(atype a, btype b, ctype c, dtype d) \
++{ \
++ register unsigned long __a0 asm("$4") = (unsigned long) a; \
++ register unsigned long __a1 asm("$5") = (unsigned long) b; \
++ register unsigned long __a2 asm("$6") = (unsigned long) c; \
++ register unsigned long __a3 asm("$7") = (unsigned long) d; \
++ unsigned long __v0; \
++ \
++ __asm__ volatile ( \
++ ".set\tnoreorder\n\t" \
++ "li\t$2, %5\t\t\t# " #fname "\n\t" \
++ "syscall\n\t" \
++ "move\t%0, $2\n\t" \
++ ".set\treorder" \
++ : "=&r" (__v0), "+r" (__a3) \
++ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname) \
++ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
++ "memory"); \
++ \
++ if (__a3 == 0) \
++ return (type) __v0; \
++ return (type) -1; \
++}
++
++#if (_MIPS_SIM == _MIPS_SIM_ABI32)
++
++/*
++ * Using those means your brain needs more than an oil change ;-)
++ */
++
++#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
++type fname(atype a, btype b, ctype c, dtype d, etype e) \
++{ \
++ register unsigned long __a0 asm("$4") = (unsigned long) a; \
++ register unsigned long __a1 asm("$5") = (unsigned long) b; \
++ register unsigned long __a2 asm("$6") = (unsigned long) c; \
++ register unsigned long __a3 asm("$7") = (unsigned long) d; \
++ unsigned long __v0; \
++ \
++ __asm__ volatile ( \
++ ".set\tnoreorder\n\t" \
++ "lw\t$2, %6\n\t" \
++ "subu\t$29, 32\n\t" \
++ "sw\t$2, 16($29)\n\t" \
++ "li\t$2, %5\t\t\t# " #fname "\n\t" \
++ "syscall\n\t" \
++ "move\t%0, $2\n\t" \
++ "addiu\t$29, 32\n\t" \
++ ".set\treorder" \
++ : "=&r" (__v0), "+r" (__a3) \
++ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname), \
++ "m" ((unsigned long)e) \
++ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
++ "memory"); \
++ \
++ if (__a3 == 0) \
++ return (type) __v0; \
++ return (type) -1; \
++}
++
++#endif /* (_MIPS_SIM == _MIPS_SIM_ABI32) */
++
++#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
++
++#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
++type fname (atype a,btype b,ctype c,dtype d,etype e) \
++{ \
++ register unsigned long __a0 asm("$4") = (unsigned long) a; \
++ register unsigned long __a1 asm("$5") = (unsigned long) b; \
++ register unsigned long __a2 asm("$6") = (unsigned long) c; \
++ register unsigned long __a3 asm("$7") = (unsigned long) d; \
++ register unsigned long __a4 asm("$8") = (unsigned long) e; \
++ unsigned long __v0; \
++ \
++ __asm__ volatile ( \
++ ".set\tnoreorder\n\t" \
++ "li\t$2, %6\t\t\t# " #fname "\n\t" \
++ "syscall\n\t" \
++ "move\t%0, $2\n\t" \
++ ".set\treorder" \
++ : "=&r" (__v0), "+r" (__a3) \
++ : "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), "i" (__NR_##sname) \
++ : "$2", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
++ "memory"); \
++ \
++ if (__a3 == 0) \
++ return (type) __v0; \
++ return (type) -1; \
++}
++
++#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
++
+Index: libaio-0.3.109/src/syscall-parisc.h
+===================================================================
+--- /dev/null
++++ libaio-0.3.109/src/syscall-parisc.h
+@@ -0,0 +1,146 @@
++/*
++ * Linux system call numbers.
++ *
++ * Cary Coutant says that we should just use another syscall gateway
++ * page to avoid clashing with the HPUX space, and I think he's right:
++ * it will would keep a branch out of our syscall entry path, at the
++ * very least. If we decide to change it later, we can ``just'' tweak
++ * the LINUX_GATEWAY_ADDR define at the bottom and make __NR_Linux be
++ * 1024 or something. Oh, and recompile libc. =)
++ *
++ * 64-bit HPUX binaries get the syscall gateway address passed in a register
++ * from the kernel at startup, which seems a sane strategy.
++ */
++
++#define __NR_Linux 0
++#define __NR_io_setup (__NR_Linux + 215)
++#define __NR_io_destroy (__NR_Linux + 216)
++#define __NR_io_getevents (__NR_Linux + 217)
++#define __NR_io_submit (__NR_Linux + 218)
++#define __NR_io_cancel (__NR_Linux + 219)
++
++#define SYS_ify(syscall_name) __NR_##syscall_name
++
++/* Assume all syscalls are done from PIC code just to be
++ * safe. The worst case scenario is that you lose a register
++ * and save/restore r19 across the syscall. */
++#define PIC
++
++/* Definition taken from glibc 2.3.3
++ * sysdeps/unix/sysv/linux/hppa/sysdep.h
++ */
++
++#ifdef PIC
++/* WARNING: CANNOT BE USED IN A NOP! */
++# define K_STW_ASM_PIC " copy %%r19, %%r4\n"
++# define K_LDW_ASM_PIC " copy %%r4, %%r19\n"
++# define K_USING_GR4 "%r4",
++#else
++# define K_STW_ASM_PIC " \n"
++# define K_LDW_ASM_PIC " \n"
++# define K_USING_GR4
++#endif
++
++/* GCC has to be warned that a syscall may clobber all the ABI
++ registers listed as "caller-saves", see page 8, Table 2
++ in section 2.2.6 of the PA-RISC RUN-TIME architecture
++ document. However! r28 is the result and will conflict with
++ the clobber list so it is left out. Also the input arguments
++ registers r20 -> r26 will conflict with the list so they
++ are treated specially. Although r19 is clobbered by the syscall
++ we cannot say this because it would violate ABI, thus we say
++ r4 is clobbered and use that register to save/restore r19
++ across the syscall. */
++
++#define K_CALL_CLOB_REGS "%r1", "%r2", K_USING_GR4 \
++ "%r20", "%r29", "%r31"
++
++#undef K_INLINE_SYSCALL
++#define K_INLINE_SYSCALL(name, nr, args...) ({ \
++ long __sys_res; \
++ { \
++ register unsigned long __res __asm__("r28"); \
++ K_LOAD_ARGS_##nr(args) \
++ /* FIXME: HACK stw/ldw r19 around syscall */ \
++ __asm__ volatile( \
++ K_STW_ASM_PIC \
++ " ble 0x100(%%sr2, %%r0)\n" \
++ " ldi %1, %%r20\n" \
++ K_LDW_ASM_PIC \
++ : "=r" (__res) \
++ : "i" (SYS_ify(name)) K_ASM_ARGS_##nr \
++ : "memory", K_CALL_CLOB_REGS K_CLOB_ARGS_##nr \
++ ); \
++ __sys_res = (long)__res; \
++ } \
++ __sys_res; \
++})
++
++#define K_LOAD_ARGS_0()
++#define K_LOAD_ARGS_1(r26) \
++ register unsigned long __r26 __asm__("r26") = (unsigned long)(r26); \
++ K_LOAD_ARGS_0()
++#define K_LOAD_ARGS_2(r26,r25) \
++ register unsigned long __r25 __asm__("r25") = (unsigned long)(r25); \
++ K_LOAD_ARGS_1(r26)
++#define K_LOAD_ARGS_3(r26,r25,r24) \
++ register unsigned long __r24 __asm__("r24") = (unsigned long)(r24); \
++ K_LOAD_ARGS_2(r26,r25)
++#define K_LOAD_ARGS_4(r26,r25,r24,r23) \
++ register unsigned long __r23 __asm__("r23") = (unsigned long)(r23); \
++ K_LOAD_ARGS_3(r26,r25,r24)
++#define K_LOAD_ARGS_5(r26,r25,r24,r23,r22) \
++ register unsigned long __r22 __asm__("r22") = (unsigned long)(r22); \
++ K_LOAD_ARGS_4(r26,r25,r24,r23)
++#define K_LOAD_ARGS_6(r26,r25,r24,r23,r22,r21) \
++ register unsigned long __r21 __asm__("r21") = (unsigned long)(r21); \
++ K_LOAD_ARGS_5(r26,r25,r24,r23,r22)
++
++/* Even with zero args we use r20 for the syscall number */
++#define K_ASM_ARGS_0
++#define K_ASM_ARGS_1 K_ASM_ARGS_0, "r" (__r26)
++#define K_ASM_ARGS_2 K_ASM_ARGS_1, "r" (__r25)
++#define K_ASM_ARGS_3 K_ASM_ARGS_2, "r" (__r24)
++#define K_ASM_ARGS_4 K_ASM_ARGS_3, "r" (__r23)
++#define K_ASM_ARGS_5 K_ASM_ARGS_4, "r" (__r22)
++#define K_ASM_ARGS_6 K_ASM_ARGS_5, "r" (__r21)
++
++/* The registers not listed as inputs but clobbered */
++#define K_CLOB_ARGS_6
++#define K_CLOB_ARGS_5 K_CLOB_ARGS_6, "%r21"
++#define K_CLOB_ARGS_4 K_CLOB_ARGS_5, "%r22"
++#define K_CLOB_ARGS_3 K_CLOB_ARGS_4, "%r23"
++#define K_CLOB_ARGS_2 K_CLOB_ARGS_3, "%r24"
++#define K_CLOB_ARGS_1 K_CLOB_ARGS_2, "%r25"
++#define K_CLOB_ARGS_0 K_CLOB_ARGS_1, "%r26"
++
++#define io_syscall1(type,fname,sname,type1,arg1) \
++type fname(type1 arg1) \
++{ \
++ return K_INLINE_SYSCALL(sname, 1, arg1); \
++}
++
++#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
++type fname(type1 arg1, type2 arg2) \
++{ \
++ return K_INLINE_SYSCALL(sname, 2, arg1, arg2); \
++}
++
++#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
++type fname(type1 arg1, type2 arg2, type3 arg3) \
++{ \
++ return K_INLINE_SYSCALL(sname, 3, arg1, arg2, arg3); \
++}
++
++#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
++type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
++{ \
++ return K_INLINE_SYSCALL(sname, 4, arg1, arg2, arg3, arg4); \
++}
++
++#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
++type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
++{ \
++ return K_INLINE_SYSCALL(sname, 5, arg1, arg2, arg3, arg4, arg5); \
++}
++
+Index: libaio-0.3.109/src/syscall-sparc.h
+===================================================================
+--- /dev/null
++++ libaio-0.3.109/src/syscall-sparc.h
+@@ -0,0 +1,130 @@
++/* $Id: unistd.h,v 1.74 2002/02/08 03:57:18 davem Exp $ */
++
++/*
++ * System calls under the Sparc.
++ *
++ * Don't be scared by the ugly clobbers, it is the only way I can
++ * think of right now to force the arguments into fixed registers
++ * before the trap into the system call with gcc 'asm' statements.
++ *
++ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
++ *
++ * SunOS compatibility based upon preliminary work which is:
++ *
++ * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
++ */
++
++
++#define __NR_io_setup 268
++#define __NR_io_destroy 269
++#define __NR_io_submit 270
++#define __NR_io_cancel 271
++#define __NR_io_getevents 272
++
++
++#define io_syscall1(type,fname,sname,type1,arg1) \
++type fname(type1 arg1) \
++{ \
++long __res; \
++register long __g1 __asm__ ("g1") = __NR_##sname; \
++register long __o0 __asm__ ("o0") = (long)(arg1); \
++__asm__ __volatile__ ("t 0x10\n\t" \
++ "bcc 1f\n\t" \
++ "mov %%o0, %0\n\t" \
++ "sub %%g0, %%o0, %0\n\t" \
++ "1:\n\t" \
++ : "=r" (__res), "=&r" (__o0) \
++ : "1" (__o0), "r" (__g1) \
++ : "cc"); \
++if (__res < -255 || __res >= 0) \
++ return (type) __res; \
++return -1; \
++}
++
++#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
++type fname(type1 arg1,type2 arg2) \
++{ \
++long __res; \
++register long __g1 __asm__ ("g1") = __NR_##sname; \
++register long __o0 __asm__ ("o0") = (long)(arg1); \
++register long __o1 __asm__ ("o1") = (long)(arg2); \
++__asm__ __volatile__ ("t 0x10\n\t" \
++ "bcc 1f\n\t" \
++ "mov %%o0, %0\n\t" \
++ "sub %%g0, %%o0, %0\n\t" \
++ "1:\n\t" \
++ : "=r" (__res), "=&r" (__o0) \
++ : "1" (__o0), "r" (__o1), "r" (__g1) \
++ : "cc"); \
++if (__res < -255 || __res >= 0) \
++ return (type) __res; \
++return -1; \
++}
++
++#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
++type fname(type1 arg1,type2 arg2,type3 arg3) \
++{ \
++long __res; \
++register long __g1 __asm__ ("g1") = __NR_##sname; \
++register long __o0 __asm__ ("o0") = (long)(arg1); \
++register long __o1 __asm__ ("o1") = (long)(arg2); \
++register long __o2 __asm__ ("o2") = (long)(arg3); \
++__asm__ __volatile__ ("t 0x10\n\t" \
++ "bcc 1f\n\t" \
++ "mov %%o0, %0\n\t" \
++ "sub %%g0, %%o0, %0\n\t" \
++ "1:\n\t" \
++ : "=r" (__res), "=&r" (__o0) \
++ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1) \
++ : "cc"); \
++if (__res < -255 || __res>=0) \
++ return (type) __res; \
++return -1; \
++}
++
++#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
++type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
++{ \
++long __res; \
++register long __g1 __asm__ ("g1") = __NR_##sname; \
++register long __o0 __asm__ ("o0") = (long)(arg1); \
++register long __o1 __asm__ ("o1") = (long)(arg2); \
++register long __o2 __asm__ ("o2") = (long)(arg3); \
++register long __o3 __asm__ ("o3") = (long)(arg4); \
++__asm__ __volatile__ ("t 0x10\n\t" \
++ "bcc 1f\n\t" \
++ "mov %%o0, %0\n\t" \
++ "sub %%g0, %%o0, %0\n\t" \
++ "1:\n\t" \
++ : "=r" (__res), "=&r" (__o0) \
++ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__g1) \
++ : "cc"); \
++if (__res < -255 || __res>=0) \
++ return (type) __res; \
++return -1; \
++}
++
++#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
++ type5,arg5) \
++type fname(type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
++{ \
++long __res; \
++register long __g1 __asm__ ("g1") = __NR_##sname; \
++register long __o0 __asm__ ("o0") = (long)(arg1); \
++register long __o1 __asm__ ("o1") = (long)(arg2); \
++register long __o2 __asm__ ("o2") = (long)(arg3); \
++register long __o3 __asm__ ("o3") = (long)(arg4); \
++register long __o4 __asm__ ("o4") = (long)(arg5); \
++__asm__ __volatile__ ("t 0x10\n\t" \
++ "bcc 1f\n\t" \
++ "mov %%o0, %0\n\t" \
++ "sub %%g0, %%o0, %0\n\t" \
++ "1:\n\t" \
++ : "=r" (__res), "=&r" (__o0) \
++ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__o4), "r" (__g1) \
++ : "cc"); \
++if (__res < -255 || __res>=0) \
++ return (type) __res; \
++return -1; \
++}
++
+Index: libaio-0.3.109/src/syscall.h
+===================================================================
+--- libaio-0.3.109.orig/src/syscall.h
++++ libaio-0.3.109/src/syscall.h
+@@ -24,6 +24,14 @@
+ #include "syscall-alpha.h"
+ #elif defined(__arm__)
+ #include "syscall-arm.h"
++#elif defined(__m68k__)
++#include "syscall-m68k.h"
++#elif defined(__sparc__)
++#include "syscall-sparc.h"
++#elif defined(__hppa__)
++#include "syscall-parisc.h"
++#elif defined(__mips__)
++#include "syscall-mips.h"
+ #else
+ #error "add syscall-arch.h"
+ #endif
--- /dev/null
+Add AVR32 support to libaio
+
+Taken from OpenWRT repository.
+
+--- a/src/libaio.h
++++ b/src/libaio.h
+@@ -107,6 +107,10 @@ typedef enum io_iocb_cmd {
+ # else
+ # error "neither mipseb nor mipsel?"
+ # endif
++#elif defined(__avr32__) /* big endian, 32 bits */
++#define PADDED(x, y) unsigned y; x
++#define PADDEDptr(x, y) unsigned y; x
++#define PADDEDul(x, y) unsigned y; unsigned long x;
+ #else
+ #error endian?
+ #endif
+--- /dev/null
++++ b/src/syscall-avr32.h
+@@ -0,0 +1,91 @@
++/*
++ * Copyright (C) 2007 Atmel Corporation
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#define __NR_io_setup 197
++#define __NR_io_destroy 198
++#define __NR_io_getevents 199
++#define __NR_io_submit 200
++#define __NR_io_cancel 201
++
++#define io_syscall1(type,fname,sname,type1,arg1) \
++type fname(type1 arg1) \
++{ \
++ register long __r12 __asm__("r12") = (long)arg1; \
++ register long __res_r12 __asm__("r12"); \
++ register long __scno __asm__("r8") = __NR_##sname; \
++ __asm__ __volatile__("scall" \
++ : "=r"(__res_r12) \
++ : "0"(__r12), "r"(__scno) \
++ : "memory"); \
++ return (type) __res_r12; \
++}
++
++#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
++type fname(type1 arg1, type2 arg2) \
++{ \
++ register long __r12 __asm__("r12") = (long)arg1; \
++ register long __r11 __asm__("r11") = (long)arg2; \
++ register long __res_r12 __asm__("r12"); \
++ register long __scno __asm__("r8") = __NR_##sname; \
++ __asm__ __volatile__("scall" \
++ : "=r"(__res_r12) \
++ : "0"(__r12), "r"(__r11), "r"(__scno) \
++ : "memory"); \
++ return (type) __res_r12; \
++}
++
++#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
++type fname(type1 arg1, type2 arg2, type3 arg3) \
++{ \
++ register long __r12 __asm__("r12") = (long)arg1; \
++ register long __r11 __asm__("r11") = (long)arg2; \
++ register long __r10 __asm__("r10") = (long)arg3; \
++ register long __res_r12 __asm__("r12"); \
++ register long __scno __asm__("r8") = __NR_##sname; \
++ __asm__ __volatile__("scall" \
++ : "=r"(__res_r12) \
++ : "0"(__r12), "r"(__r11), "r"(__r10), \
++ "r"(__scno) \
++ : "memory"); \
++ return (type) __res_r12; \
++}
++
++#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
++type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
++{ \
++ register long __r12 __asm__("r12") = (long)arg1; \
++ register long __r11 __asm__("r11") = (long)arg2; \
++ register long __r10 __asm__("r10") = (long)arg3; \
++ register long __r9 __asm__("r9") = (long)arg4; \
++ register long __res_r12 __asm__("r12"); \
++ register long __scno __asm__("r8") = __NR_##sname; \
++ __asm__ __volatile__("scall" \
++ : "=r"(__res_r12) \
++ : "0"(__r12), "r"(__r11), "r"(__r10), \
++ "r"(__r9), "r"(__scno) \
++ : "memory"); \
++ return (type) __res_r12; \
++}
++
++#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
++type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
++{ \
++ register long __r12 __asm__("r12") = (long)arg1; \
++ register long __r11 __asm__("r11") = (long)arg2; \
++ register long __r10 __asm__("r10") = (long)arg3; \
++ register long __r9 __asm__("r9") = (long)arg4; \
++ register long __r5 __asm__("r5") = (long)arg5; \
++ register long __res_r12 __asm__("r12"); \
++ register long __scno __asm__("r8") = __NR_##sname; \
++ __asm__ __volatile__("scall" \
++ : "=r"(__res_r12) \
++ : "0"(__r12), "r"(__r11), "r"(__r10), \
++ "r"(__r9), "r"(__r5), "r"(__scno) \
++ : "memory"); \
++ return (type) __res_r12; \
++}
+--- a/src/syscall.h
++++ b/src/syscall.h
+@@ -32,6 +32,8 @@
+ #include "syscall-parisc.h"
+ #elif defined(__mips__)
+ #include "syscall-mips.h"
++#elif defined(__avr32__)
++#include "syscall-avr32.h"
+ #else
+ #error "add syscall-arch.h"
+ #endif
--- /dev/null
+Patch borrowed from OpenEmbedded, available at
+recipes/libaio/libaio-0.3.106/destdir.patch in their source tree.
+
+It just adds support for the traditional DESTDIR variable to install
+the library in a different sysroot than the normal /.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: libaio-0.3.109/Makefile
+===================================================================
+--- libaio-0.3.109.orig/Makefile
++++ libaio-0.3.109/Makefile
+@@ -23,7 +23,7 @@
+ @$(MAKE) -C src
+
+ install:
+- @$(MAKE) -C src install prefix=$(prefix) includedir=$(includedir) libdir=$(libdir)
++ @$(MAKE) -C src install prefix=$(DESTDIR)$(prefix) includedir=$(DESTDIR)$(includedir) libdir=$(DESTDIR)$(libdir)
+
+ check:
+ @$(MAKE) -C harness check
+++ /dev/null
-Patch borrowed from OpenEmbedded, available at
-recipes/libaio/libaio-0.3.106/00_arches.patch in their source
-tree. The patch has been adapted to remove the ARM-related
-definitions, since they have been merged in later versions of libaio.
-
-The patch adds various architecture specific definitions (syscall
-number and macros) for m68k, MIPS, PA/RISC and Sparc. Amongst these,
-Buildroot mostly only cares about MIPS, but it was just easier to take
-the whole OpenEmbedded patch.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- src/libaio.h | 24 +++++
- src/syscall-m68k.h | 78 +++++++++++++++++
- src/syscall-mips.h | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++
- src/syscall-parisc.h | 146 +++++++++++++++++++++++++++++++++
- src/syscall-sparc.h | 130 +++++++++++++++++++++++++++++
- src/syscall.h | 8 +
- 7 files changed, 725 insertions(+)
-
-Index: libaio-0.3.109/src/libaio.h
-===================================================================
---- libaio-0.3.109.orig/src/libaio.h
-+++ libaio-0.3.109/src/libaio.h
-@@ -83,6 +83,30 @@
- #define PADDEDptr(x, y) x; unsigned y
- #define PADDEDul(x, y) unsigned long x; unsigned y
- # endif
-+#elif defined(__m68k__) /* big endian, 32 bits */
-+#define PADDED(x, y) unsigned y; x
-+#define PADDEDptr(x, y) unsigned y; x
-+#define PADDEDul(x, y) unsigned y; unsigned long x
-+#elif defined(__sparc__) /* big endian, 32 bits */
-+#define PADDED(x, y) unsigned y; x
-+#define PADDEDptr(x, y) unsigned y; x
-+#define PADDEDul(x, y) unsigned y; unsigned long x
-+#elif defined(__hppa__) /* big endian, 32 bits */
-+#define PADDED(x, y) unsigned y; x
-+#define PADDEDptr(x, y) unsigned y; x
-+#define PADDEDul(x, y) unsigned y; unsigned long x
-+#elif defined(__mips__)
-+# if defined (__MIPSEB__) /* big endian, 32 bits */
-+#define PADDED(x, y) unsigned y; x
-+#define PADDEDptr(x, y) unsigned y; x
-+#define PADDEDul(x, y) unsigned y; unsigned long x
-+# elif defined(__MIPSEL__) /* little endian, 32 bits */
-+#define PADDED(x, y) x; unsigned y
-+#define PADDEDptr(x, y) x; unsigned y
-+#define PADDEDul(x, y) unsigned long x; unsigned y
-+# else
-+# error "neither mipseb nor mipsel?"
-+# endif
- #else
- #error endian?
- #endif
-Index: libaio-0.3.109/src/syscall-m68k.h
-===================================================================
---- /dev/null
-+++ libaio-0.3.109/src/syscall-m68k.h
-@@ -0,0 +1,78 @@
-+#define __NR_io_setup 241
-+#define __NR_io_destroy 242
-+#define __NR_io_getevents 243
-+#define __NR_io_submit 244
-+#define __NR_io_cancel 245
-+
-+#define io_syscall1(type,fname,sname,atype,a) \
-+type fname(atype a) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+__asm__ __volatile__ ("trap #0" \
-+ : "+d" (__res) \
-+ : "d" (__a) ); \
-+return (type) __res; \
-+}
-+
-+#define io_syscall2(type,fname,sname,atype,a,btype,b) \
-+type fname(atype a,btype b) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+register long __b __asm__ ("%d2") = (long)(b); \
-+__asm__ __volatile__ ("trap #0" \
-+ : "+d" (__res) \
-+ : "d" (__a), "d" (__b) \
-+ ); \
-+return (type) __res; \
-+}
-+
-+#define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \
-+type fname(atype a,btype b,ctype c) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+register long __b __asm__ ("%d2") = (long)(b); \
-+register long __c __asm__ ("%d3") = (long)(c); \
-+__asm__ __volatile__ ("trap #0" \
-+ : "+d" (__res) \
-+ : "d" (__a), "d" (__b), \
-+ "d" (__c) \
-+ ); \
-+return (type) __res; \
-+}
-+
-+#define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \
-+type fname (atype a, btype b, ctype c, dtype d) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+register long __b __asm__ ("%d2") = (long)(b); \
-+register long __c __asm__ ("%d3") = (long)(c); \
-+register long __d __asm__ ("%d4") = (long)(d); \
-+__asm__ __volatile__ ("trap #0" \
-+ : "+d" (__res) \
-+ : "d" (__a), "d" (__b), \
-+ "d" (__c), "d" (__d) \
-+ ); \
-+return (type) __res; \
-+}
-+
-+#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
-+type fname (atype a,btype b,ctype c,dtype d,etype e) \
-+{ \
-+register long __res __asm__ ("%d0") = __NR_##sname; \
-+register long __a __asm__ ("%d1") = (long)(a); \
-+register long __b __asm__ ("%d2") = (long)(b); \
-+register long __c __asm__ ("%d3") = (long)(c); \
-+register long __d __asm__ ("%d4") = (long)(d); \
-+register long __e __asm__ ("%d5") = (long)(e); \
-+__asm__ __volatile__ ("trap #0" \
-+ : "+d" (__res) \
-+ : "d" (__a), "d" (__b), \
-+ "d" (__c), "d" (__d), "d" (__e) \
-+ ); \
-+return (type) __res; \
-+}
-+
-Index: libaio-0.3.109/src/syscall-mips.h
-===================================================================
---- /dev/null
-+++ libaio-0.3.109/src/syscall-mips.h
-@@ -0,0 +1,223 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1995, 96, 97, 98, 99, 2000 by Ralf Baechle
-+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
-+ *
-+ * Changed system calls macros _syscall5 - _syscall7 to push args 5 to 7 onto
-+ * the stack. Robin Farine for ACN S.A, Copyright (C) 1996 by ACN S.A
-+ */
-+
-+#ifndef _MIPS_SIM_ABI32
-+#define _MIPS_SIM_ABI32 1
-+#define _MIPS_SIM_NABI32 2
-+#define _MIPS_SIM_ABI64 3
-+#endif
-+
-+#if _MIPS_SIM == _MIPS_SIM_ABI32
-+
-+/*
-+ * Linux o32 style syscalls are in the range from 4000 to 4999.
-+ */
-+#define __NR_Linux 4000
-+#define __NR_io_setup (__NR_Linux + 241)
-+#define __NR_io_destroy (__NR_Linux + 242)
-+#define __NR_io_getevents (__NR_Linux + 243)
-+#define __NR_io_submit (__NR_Linux + 244)
-+#define __NR_io_cancel (__NR_Linux + 245)
-+
-+#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
-+
-+#if _MIPS_SIM == _MIPS_SIM_ABI64
-+
-+/*
-+ * Linux 64-bit syscalls are in the range from 5000 to 5999.
-+ */
-+#define __NR_Linux 5000
-+#define __NR_io_setup (__NR_Linux + 200)
-+#define __NR_io_destroy (__NR_Linux + 201)
-+#define __NR_io_getevents (__NR_Linux + 202)
-+#define __NR_io_submit (__NR_Linux + 203)
-+#define __NR_io_cancel (__NR_Linux + 204)
-+#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
-+
-+#if _MIPS_SIM == _MIPS_SIM_NABI32
-+
-+/*
-+ * Linux N32 syscalls are in the range from 6000 to 6999.
-+ */
-+#define __NR_Linux 6000
-+#define __NR_io_setup (__NR_Linux + 200)
-+#define __NR_io_destroy (__NR_Linux + 201)
-+#define __NR_io_getevents (__NR_Linux + 202)
-+#define __NR_io_submit (__NR_Linux + 203)
-+#define __NR_io_cancel (__NR_Linux + 204)
-+#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
-+
-+#define io_syscall1(type,fname,sname,atype,a) \
-+type fname(atype a) \
-+{ \
-+ register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+ register unsigned long __a3 asm("$7"); \
-+ unsigned long __v0; \
-+ \
-+ __asm__ volatile ( \
-+ ".set\tnoreorder\n\t" \
-+ "li\t$2, %3\t\t\t# " #fname "\n\t" \
-+ "syscall\n\t" \
-+ "move\t%0, $2\n\t" \
-+ ".set\treorder" \
-+ : "=&r" (__v0), "=r" (__a3) \
-+ : "r" (__a0), "i" (__NR_##sname) \
-+ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+ "memory"); \
-+ \
-+ if (__a3 == 0) \
-+ return (type) __v0; \
-+ return (type) -1; \
-+}
-+
-+#define io_syscall2(type,fname,sname,atype,a,btype,b) \
-+type fname(atype a, btype b) \
-+{ \
-+ register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+ register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+ register unsigned long __a3 asm("$7"); \
-+ unsigned long __v0; \
-+ \
-+ __asm__ volatile ( \
-+ ".set\tnoreorder\n\t" \
-+ "li\t$2, %4\t\t\t# " #fname "\n\t" \
-+ "syscall\n\t" \
-+ "move\t%0, $2\n\t" \
-+ ".set\treorder" \
-+ : "=&r" (__v0), "=r" (__a3) \
-+ : "r" (__a0), "r" (__a1), "i" (__NR_##sname) \
-+ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+ "memory"); \
-+ \
-+ if (__a3 == 0) \
-+ return (type) __v0; \
-+ return (type) -1; \
-+}
-+
-+#define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \
-+type fname(atype a, btype b, ctype c) \
-+{ \
-+ register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+ register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+ register unsigned long __a2 asm("$6") = (unsigned long) c; \
-+ register unsigned long __a3 asm("$7"); \
-+ unsigned long __v0; \
-+ \
-+ __asm__ volatile ( \
-+ ".set\tnoreorder\n\t" \
-+ "li\t$2, %5\t\t\t# " #fname "\n\t" \
-+ "syscall\n\t" \
-+ "move\t%0, $2\n\t" \
-+ ".set\treorder" \
-+ : "=&r" (__v0), "=r" (__a3) \
-+ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname) \
-+ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+ "memory"); \
-+ \
-+ if (__a3 == 0) \
-+ return (type) __v0; \
-+ return (type) -1; \
-+}
-+
-+#define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \
-+type fname(atype a, btype b, ctype c, dtype d) \
-+{ \
-+ register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+ register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+ register unsigned long __a2 asm("$6") = (unsigned long) c; \
-+ register unsigned long __a3 asm("$7") = (unsigned long) d; \
-+ unsigned long __v0; \
-+ \
-+ __asm__ volatile ( \
-+ ".set\tnoreorder\n\t" \
-+ "li\t$2, %5\t\t\t# " #fname "\n\t" \
-+ "syscall\n\t" \
-+ "move\t%0, $2\n\t" \
-+ ".set\treorder" \
-+ : "=&r" (__v0), "+r" (__a3) \
-+ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname) \
-+ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+ "memory"); \
-+ \
-+ if (__a3 == 0) \
-+ return (type) __v0; \
-+ return (type) -1; \
-+}
-+
-+#if (_MIPS_SIM == _MIPS_SIM_ABI32)
-+
-+/*
-+ * Using those means your brain needs more than an oil change ;-)
-+ */
-+
-+#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
-+type fname(atype a, btype b, ctype c, dtype d, etype e) \
-+{ \
-+ register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+ register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+ register unsigned long __a2 asm("$6") = (unsigned long) c; \
-+ register unsigned long __a3 asm("$7") = (unsigned long) d; \
-+ unsigned long __v0; \
-+ \
-+ __asm__ volatile ( \
-+ ".set\tnoreorder\n\t" \
-+ "lw\t$2, %6\n\t" \
-+ "subu\t$29, 32\n\t" \
-+ "sw\t$2, 16($29)\n\t" \
-+ "li\t$2, %5\t\t\t# " #fname "\n\t" \
-+ "syscall\n\t" \
-+ "move\t%0, $2\n\t" \
-+ "addiu\t$29, 32\n\t" \
-+ ".set\treorder" \
-+ : "=&r" (__v0), "+r" (__a3) \
-+ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##sname), \
-+ "m" ((unsigned long)e) \
-+ : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+ "memory"); \
-+ \
-+ if (__a3 == 0) \
-+ return (type) __v0; \
-+ return (type) -1; \
-+}
-+
-+#endif /* (_MIPS_SIM == _MIPS_SIM_ABI32) */
-+
-+#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
-+
-+#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
-+type fname (atype a,btype b,ctype c,dtype d,etype e) \
-+{ \
-+ register unsigned long __a0 asm("$4") = (unsigned long) a; \
-+ register unsigned long __a1 asm("$5") = (unsigned long) b; \
-+ register unsigned long __a2 asm("$6") = (unsigned long) c; \
-+ register unsigned long __a3 asm("$7") = (unsigned long) d; \
-+ register unsigned long __a4 asm("$8") = (unsigned long) e; \
-+ unsigned long __v0; \
-+ \
-+ __asm__ volatile ( \
-+ ".set\tnoreorder\n\t" \
-+ "li\t$2, %6\t\t\t# " #fname "\n\t" \
-+ "syscall\n\t" \
-+ "move\t%0, $2\n\t" \
-+ ".set\treorder" \
-+ : "=&r" (__v0), "+r" (__a3) \
-+ : "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), "i" (__NR_##sname) \
-+ : "$2", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \
-+ "memory"); \
-+ \
-+ if (__a3 == 0) \
-+ return (type) __v0; \
-+ return (type) -1; \
-+}
-+
-+#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
-+
-Index: libaio-0.3.109/src/syscall-parisc.h
-===================================================================
---- /dev/null
-+++ libaio-0.3.109/src/syscall-parisc.h
-@@ -0,0 +1,146 @@
-+/*
-+ * Linux system call numbers.
-+ *
-+ * Cary Coutant says that we should just use another syscall gateway
-+ * page to avoid clashing with the HPUX space, and I think he's right:
-+ * it will would keep a branch out of our syscall entry path, at the
-+ * very least. If we decide to change it later, we can ``just'' tweak
-+ * the LINUX_GATEWAY_ADDR define at the bottom and make __NR_Linux be
-+ * 1024 or something. Oh, and recompile libc. =)
-+ *
-+ * 64-bit HPUX binaries get the syscall gateway address passed in a register
-+ * from the kernel at startup, which seems a sane strategy.
-+ */
-+
-+#define __NR_Linux 0
-+#define __NR_io_setup (__NR_Linux + 215)
-+#define __NR_io_destroy (__NR_Linux + 216)
-+#define __NR_io_getevents (__NR_Linux + 217)
-+#define __NR_io_submit (__NR_Linux + 218)
-+#define __NR_io_cancel (__NR_Linux + 219)
-+
-+#define SYS_ify(syscall_name) __NR_##syscall_name
-+
-+/* Assume all syscalls are done from PIC code just to be
-+ * safe. The worst case scenario is that you lose a register
-+ * and save/restore r19 across the syscall. */
-+#define PIC
-+
-+/* Definition taken from glibc 2.3.3
-+ * sysdeps/unix/sysv/linux/hppa/sysdep.h
-+ */
-+
-+#ifdef PIC
-+/* WARNING: CANNOT BE USED IN A NOP! */
-+# define K_STW_ASM_PIC " copy %%r19, %%r4\n"
-+# define K_LDW_ASM_PIC " copy %%r4, %%r19\n"
-+# define K_USING_GR4 "%r4",
-+#else
-+# define K_STW_ASM_PIC " \n"
-+# define K_LDW_ASM_PIC " \n"
-+# define K_USING_GR4
-+#endif
-+
-+/* GCC has to be warned that a syscall may clobber all the ABI
-+ registers listed as "caller-saves", see page 8, Table 2
-+ in section 2.2.6 of the PA-RISC RUN-TIME architecture
-+ document. However! r28 is the result and will conflict with
-+ the clobber list so it is left out. Also the input arguments
-+ registers r20 -> r26 will conflict with the list so they
-+ are treated specially. Although r19 is clobbered by the syscall
-+ we cannot say this because it would violate ABI, thus we say
-+ r4 is clobbered and use that register to save/restore r19
-+ across the syscall. */
-+
-+#define K_CALL_CLOB_REGS "%r1", "%r2", K_USING_GR4 \
-+ "%r20", "%r29", "%r31"
-+
-+#undef K_INLINE_SYSCALL
-+#define K_INLINE_SYSCALL(name, nr, args...) ({ \
-+ long __sys_res; \
-+ { \
-+ register unsigned long __res __asm__("r28"); \
-+ K_LOAD_ARGS_##nr(args) \
-+ /* FIXME: HACK stw/ldw r19 around syscall */ \
-+ __asm__ volatile( \
-+ K_STW_ASM_PIC \
-+ " ble 0x100(%%sr2, %%r0)\n" \
-+ " ldi %1, %%r20\n" \
-+ K_LDW_ASM_PIC \
-+ : "=r" (__res) \
-+ : "i" (SYS_ify(name)) K_ASM_ARGS_##nr \
-+ : "memory", K_CALL_CLOB_REGS K_CLOB_ARGS_##nr \
-+ ); \
-+ __sys_res = (long)__res; \
-+ } \
-+ __sys_res; \
-+})
-+
-+#define K_LOAD_ARGS_0()
-+#define K_LOAD_ARGS_1(r26) \
-+ register unsigned long __r26 __asm__("r26") = (unsigned long)(r26); \
-+ K_LOAD_ARGS_0()
-+#define K_LOAD_ARGS_2(r26,r25) \
-+ register unsigned long __r25 __asm__("r25") = (unsigned long)(r25); \
-+ K_LOAD_ARGS_1(r26)
-+#define K_LOAD_ARGS_3(r26,r25,r24) \
-+ register unsigned long __r24 __asm__("r24") = (unsigned long)(r24); \
-+ K_LOAD_ARGS_2(r26,r25)
-+#define K_LOAD_ARGS_4(r26,r25,r24,r23) \
-+ register unsigned long __r23 __asm__("r23") = (unsigned long)(r23); \
-+ K_LOAD_ARGS_3(r26,r25,r24)
-+#define K_LOAD_ARGS_5(r26,r25,r24,r23,r22) \
-+ register unsigned long __r22 __asm__("r22") = (unsigned long)(r22); \
-+ K_LOAD_ARGS_4(r26,r25,r24,r23)
-+#define K_LOAD_ARGS_6(r26,r25,r24,r23,r22,r21) \
-+ register unsigned long __r21 __asm__("r21") = (unsigned long)(r21); \
-+ K_LOAD_ARGS_5(r26,r25,r24,r23,r22)
-+
-+/* Even with zero args we use r20 for the syscall number */
-+#define K_ASM_ARGS_0
-+#define K_ASM_ARGS_1 K_ASM_ARGS_0, "r" (__r26)
-+#define K_ASM_ARGS_2 K_ASM_ARGS_1, "r" (__r25)
-+#define K_ASM_ARGS_3 K_ASM_ARGS_2, "r" (__r24)
-+#define K_ASM_ARGS_4 K_ASM_ARGS_3, "r" (__r23)
-+#define K_ASM_ARGS_5 K_ASM_ARGS_4, "r" (__r22)
-+#define K_ASM_ARGS_6 K_ASM_ARGS_5, "r" (__r21)
-+
-+/* The registers not listed as inputs but clobbered */
-+#define K_CLOB_ARGS_6
-+#define K_CLOB_ARGS_5 K_CLOB_ARGS_6, "%r21"
-+#define K_CLOB_ARGS_4 K_CLOB_ARGS_5, "%r22"
-+#define K_CLOB_ARGS_3 K_CLOB_ARGS_4, "%r23"
-+#define K_CLOB_ARGS_2 K_CLOB_ARGS_3, "%r24"
-+#define K_CLOB_ARGS_1 K_CLOB_ARGS_2, "%r25"
-+#define K_CLOB_ARGS_0 K_CLOB_ARGS_1, "%r26"
-+
-+#define io_syscall1(type,fname,sname,type1,arg1) \
-+type fname(type1 arg1) \
-+{ \
-+ return K_INLINE_SYSCALL(sname, 1, arg1); \
-+}
-+
-+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
-+type fname(type1 arg1, type2 arg2) \
-+{ \
-+ return K_INLINE_SYSCALL(sname, 2, arg1, arg2); \
-+}
-+
-+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
-+type fname(type1 arg1, type2 arg2, type3 arg3) \
-+{ \
-+ return K_INLINE_SYSCALL(sname, 3, arg1, arg2, arg3); \
-+}
-+
-+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
-+{ \
-+ return K_INLINE_SYSCALL(sname, 4, arg1, arg2, arg3, arg4); \
-+}
-+
-+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
-+{ \
-+ return K_INLINE_SYSCALL(sname, 5, arg1, arg2, arg3, arg4, arg5); \
-+}
-+
-Index: libaio-0.3.109/src/syscall-sparc.h
-===================================================================
---- /dev/null
-+++ libaio-0.3.109/src/syscall-sparc.h
-@@ -0,0 +1,130 @@
-+/* $Id: unistd.h,v 1.74 2002/02/08 03:57:18 davem Exp $ */
-+
-+/*
-+ * System calls under the Sparc.
-+ *
-+ * Don't be scared by the ugly clobbers, it is the only way I can
-+ * think of right now to force the arguments into fixed registers
-+ * before the trap into the system call with gcc 'asm' statements.
-+ *
-+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
-+ *
-+ * SunOS compatibility based upon preliminary work which is:
-+ *
-+ * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
-+ */
-+
-+
-+#define __NR_io_setup 268
-+#define __NR_io_destroy 269
-+#define __NR_io_submit 270
-+#define __NR_io_cancel 271
-+#define __NR_io_getevents 272
-+
-+
-+#define io_syscall1(type,fname,sname,type1,arg1) \
-+type fname(type1 arg1) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+ "bcc 1f\n\t" \
-+ "mov %%o0, %0\n\t" \
-+ "sub %%g0, %%o0, %0\n\t" \
-+ "1:\n\t" \
-+ : "=r" (__res), "=&r" (__o0) \
-+ : "1" (__o0), "r" (__g1) \
-+ : "cc"); \
-+if (__res < -255 || __res >= 0) \
-+ return (type) __res; \
-+return -1; \
-+}
-+
-+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
-+type fname(type1 arg1,type2 arg2) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+register long __o1 __asm__ ("o1") = (long)(arg2); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+ "bcc 1f\n\t" \
-+ "mov %%o0, %0\n\t" \
-+ "sub %%g0, %%o0, %0\n\t" \
-+ "1:\n\t" \
-+ : "=r" (__res), "=&r" (__o0) \
-+ : "1" (__o0), "r" (__o1), "r" (__g1) \
-+ : "cc"); \
-+if (__res < -255 || __res >= 0) \
-+ return (type) __res; \
-+return -1; \
-+}
-+
-+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
-+type fname(type1 arg1,type2 arg2,type3 arg3) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+register long __o1 __asm__ ("o1") = (long)(arg2); \
-+register long __o2 __asm__ ("o2") = (long)(arg3); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+ "bcc 1f\n\t" \
-+ "mov %%o0, %0\n\t" \
-+ "sub %%g0, %%o0, %0\n\t" \
-+ "1:\n\t" \
-+ : "=r" (__res), "=&r" (__o0) \
-+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1) \
-+ : "cc"); \
-+if (__res < -255 || __res>=0) \
-+ return (type) __res; \
-+return -1; \
-+}
-+
-+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+register long __o1 __asm__ ("o1") = (long)(arg2); \
-+register long __o2 __asm__ ("o2") = (long)(arg3); \
-+register long __o3 __asm__ ("o3") = (long)(arg4); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+ "bcc 1f\n\t" \
-+ "mov %%o0, %0\n\t" \
-+ "sub %%g0, %%o0, %0\n\t" \
-+ "1:\n\t" \
-+ : "=r" (__res), "=&r" (__o0) \
-+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__g1) \
-+ : "cc"); \
-+if (__res < -255 || __res>=0) \
-+ return (type) __res; \
-+return -1; \
-+}
-+
-+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
-+ type5,arg5) \
-+type fname(type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
-+{ \
-+long __res; \
-+register long __g1 __asm__ ("g1") = __NR_##sname; \
-+register long __o0 __asm__ ("o0") = (long)(arg1); \
-+register long __o1 __asm__ ("o1") = (long)(arg2); \
-+register long __o2 __asm__ ("o2") = (long)(arg3); \
-+register long __o3 __asm__ ("o3") = (long)(arg4); \
-+register long __o4 __asm__ ("o4") = (long)(arg5); \
-+__asm__ __volatile__ ("t 0x10\n\t" \
-+ "bcc 1f\n\t" \
-+ "mov %%o0, %0\n\t" \
-+ "sub %%g0, %%o0, %0\n\t" \
-+ "1:\n\t" \
-+ : "=r" (__res), "=&r" (__o0) \
-+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__o4), "r" (__g1) \
-+ : "cc"); \
-+if (__res < -255 || __res>=0) \
-+ return (type) __res; \
-+return -1; \
-+}
-+
-Index: libaio-0.3.109/src/syscall.h
-===================================================================
---- libaio-0.3.109.orig/src/syscall.h
-+++ libaio-0.3.109/src/syscall.h
-@@ -24,6 +24,14 @@
- #include "syscall-alpha.h"
- #elif defined(__arm__)
- #include "syscall-arm.h"
-+#elif defined(__m68k__)
-+#include "syscall-m68k.h"
-+#elif defined(__sparc__)
-+#include "syscall-sparc.h"
-+#elif defined(__hppa__)
-+#include "syscall-parisc.h"
-+#elif defined(__mips__)
-+#include "syscall-mips.h"
- #else
- #error "add syscall-arch.h"
- #endif
+++ /dev/null
-Add AVR32 support to libaio
-
-Taken from OpenWRT repository.
-
---- a/src/libaio.h
-+++ b/src/libaio.h
-@@ -107,6 +107,10 @@ typedef enum io_iocb_cmd {
- # else
- # error "neither mipseb nor mipsel?"
- # endif
-+#elif defined(__avr32__) /* big endian, 32 bits */
-+#define PADDED(x, y) unsigned y; x
-+#define PADDEDptr(x, y) unsigned y; x
-+#define PADDEDul(x, y) unsigned y; unsigned long x;
- #else
- #error endian?
- #endif
---- /dev/null
-+++ b/src/syscall-avr32.h
-@@ -0,0 +1,91 @@
-+/*
-+ * Copyright (C) 2007 Atmel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#define __NR_io_setup 197
-+#define __NR_io_destroy 198
-+#define __NR_io_getevents 199
-+#define __NR_io_submit 200
-+#define __NR_io_cancel 201
-+
-+#define io_syscall1(type,fname,sname,type1,arg1) \
-+type fname(type1 arg1) \
-+{ \
-+ register long __r12 __asm__("r12") = (long)arg1; \
-+ register long __res_r12 __asm__("r12"); \
-+ register long __scno __asm__("r8") = __NR_##sname; \
-+ __asm__ __volatile__("scall" \
-+ : "=r"(__res_r12) \
-+ : "0"(__r12), "r"(__scno) \
-+ : "memory"); \
-+ return (type) __res_r12; \
-+}
-+
-+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
-+type fname(type1 arg1, type2 arg2) \
-+{ \
-+ register long __r12 __asm__("r12") = (long)arg1; \
-+ register long __r11 __asm__("r11") = (long)arg2; \
-+ register long __res_r12 __asm__("r12"); \
-+ register long __scno __asm__("r8") = __NR_##sname; \
-+ __asm__ __volatile__("scall" \
-+ : "=r"(__res_r12) \
-+ : "0"(__r12), "r"(__r11), "r"(__scno) \
-+ : "memory"); \
-+ return (type) __res_r12; \
-+}
-+
-+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
-+type fname(type1 arg1, type2 arg2, type3 arg3) \
-+{ \
-+ register long __r12 __asm__("r12") = (long)arg1; \
-+ register long __r11 __asm__("r11") = (long)arg2; \
-+ register long __r10 __asm__("r10") = (long)arg3; \
-+ register long __res_r12 __asm__("r12"); \
-+ register long __scno __asm__("r8") = __NR_##sname; \
-+ __asm__ __volatile__("scall" \
-+ : "=r"(__res_r12) \
-+ : "0"(__r12), "r"(__r11), "r"(__r10), \
-+ "r"(__scno) \
-+ : "memory"); \
-+ return (type) __res_r12; \
-+}
-+
-+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
-+{ \
-+ register long __r12 __asm__("r12") = (long)arg1; \
-+ register long __r11 __asm__("r11") = (long)arg2; \
-+ register long __r10 __asm__("r10") = (long)arg3; \
-+ register long __r9 __asm__("r9") = (long)arg4; \
-+ register long __res_r12 __asm__("r12"); \
-+ register long __scno __asm__("r8") = __NR_##sname; \
-+ __asm__ __volatile__("scall" \
-+ : "=r"(__res_r12) \
-+ : "0"(__r12), "r"(__r11), "r"(__r10), \
-+ "r"(__r9), "r"(__scno) \
-+ : "memory"); \
-+ return (type) __res_r12; \
-+}
-+
-+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
-+{ \
-+ register long __r12 __asm__("r12") = (long)arg1; \
-+ register long __r11 __asm__("r11") = (long)arg2; \
-+ register long __r10 __asm__("r10") = (long)arg3; \
-+ register long __r9 __asm__("r9") = (long)arg4; \
-+ register long __r5 __asm__("r5") = (long)arg5; \
-+ register long __res_r12 __asm__("r12"); \
-+ register long __scno __asm__("r8") = __NR_##sname; \
-+ __asm__ __volatile__("scall" \
-+ : "=r"(__res_r12) \
-+ : "0"(__r12), "r"(__r11), "r"(__r10), \
-+ "r"(__r9), "r"(__r5), "r"(__scno) \
-+ : "memory"); \
-+ return (type) __res_r12; \
-+}
---- a/src/syscall.h
-+++ b/src/syscall.h
-@@ -32,6 +32,8 @@
- #include "syscall-parisc.h"
- #elif defined(__mips__)
- #include "syscall-mips.h"
-+#elif defined(__avr32__)
-+#include "syscall-avr32.h"
- #else
- #error "add syscall-arch.h"
- #endif
+++ /dev/null
-Patch borrowed from OpenEmbedded, available at
-recipes/libaio/libaio-0.3.106/destdir.patch in their source tree.
-
-It just adds support for the traditional DESTDIR variable to install
-the library in a different sysroot than the normal /.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: libaio-0.3.109/Makefile
-===================================================================
---- libaio-0.3.109.orig/Makefile
-+++ libaio-0.3.109/Makefile
-@@ -23,7 +23,7 @@
- @$(MAKE) -C src
-
- install:
-- @$(MAKE) -C src install prefix=$(prefix) includedir=$(includedir) libdir=$(libdir)
-+ @$(MAKE) -C src install prefix=$(DESTDIR)$(prefix) includedir=$(DESTDIR)$(includedir) libdir=$(DESTDIR)$(libdir)
-
- check:
- @$(MAKE) -C harness check
--- /dev/null
+diff -Nura libart_lgpl-2.3.21.orig/Makefile.am libart_lgpl-2.3.21/Makefile.am
+--- libart_lgpl-2.3.21.orig/Makefile.am 2011-02-01 10:07:39.687545397 -0300
++++ libart_lgpl-2.3.21/Makefile.am 2011-02-01 10:08:48.320545396 -0300
+@@ -5,11 +5,6 @@
+
+ noinst_SCRIPTS = gen_art_config.sh
+
+-BUILT_SOURCES = art_config.h
+-
+-art_config.h:
+- ./gen_art_config.sh > art_config.h
+-
+ EXTRA_DIST = \
+ libart.def \
+ libart-config.in \
+diff -Nura libart_lgpl-2.3.21.orig/art_config.h libart_lgpl-2.3.21/art_config.h
+--- libart_lgpl-2.3.21.orig/art_config.h 2011-02-01 10:07:39.688545397 -0300
++++ libart_lgpl-2.3.21/art_config.h 2011-02-01 10:08:27.315545395 -0300
+@@ -1,9 +1,15 @@
+ /* Automatically generated by gen_art_config */
+
++#include <limits.h>
++
+ #define ART_SIZEOF_CHAR 1
+ #define ART_SIZEOF_SHORT 2
+ #define ART_SIZEOF_INT 4
++#if LONG_MAX == 2147483647L
+ #define ART_SIZEOF_LONG 4
++#else
++#define ART_SIZEOF_LONG 8
++#endif
+
+ typedef unsigned char art_u8;
+ typedef unsigned short art_u16;
+++ /dev/null
-diff -Nura libart_lgpl-2.3.21.orig/Makefile.am libart_lgpl-2.3.21/Makefile.am
---- libart_lgpl-2.3.21.orig/Makefile.am 2011-02-01 10:07:39.687545397 -0300
-+++ libart_lgpl-2.3.21/Makefile.am 2011-02-01 10:08:48.320545396 -0300
-@@ -5,11 +5,6 @@
-
- noinst_SCRIPTS = gen_art_config.sh
-
--BUILT_SOURCES = art_config.h
--
--art_config.h:
-- ./gen_art_config.sh > art_config.h
--
- EXTRA_DIST = \
- libart.def \
- libart-config.in \
-diff -Nura libart_lgpl-2.3.21.orig/art_config.h libart_lgpl-2.3.21/art_config.h
---- libart_lgpl-2.3.21.orig/art_config.h 2011-02-01 10:07:39.688545397 -0300
-+++ libart_lgpl-2.3.21/art_config.h 2011-02-01 10:08:27.315545395 -0300
-@@ -1,9 +1,15 @@
- /* Automatically generated by gen_art_config */
-
-+#include <limits.h>
-+
- #define ART_SIZEOF_CHAR 1
- #define ART_SIZEOF_SHORT 2
- #define ART_SIZEOF_INT 4
-+#if LONG_MAX == 2147483647L
- #define ART_SIZEOF_LONG 4
-+#else
-+#define ART_SIZEOF_LONG 8
-+#endif
-
- typedef unsigned char art_u8;
- typedef unsigned short art_u16;
--- /dev/null
+From 730158700ea7a554c37f24bfbf5f4985f7280f3e Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Wed, 6 Feb 2013 14:07:02 +0100
+Subject: [PATCH] strpool: don't mix up host/build flags when cross compiling
+
+Submitted upstream as https://bugs.freedesktop.org/show_bug.cgi?id=60364
+
+Commit b71035ce89 (build-sys: modernize build system) changed the strpool
+(which needs to be built for the build machine) compilation to use
+AM_CFLAGS / AM_LDFLAGS rather than CFLAGS / LDFLAGS. This is wrong, as
+The AM_ version is used TOGETHER with (the user supplied) CFLAGS/LDFLAGS,
+causing strpool to use both CFLAGS (for host) and CCFLAGS_FOR_BUILD (for
+build) flags, breaking cross compilation with errors like:
+
+cc1: error: unrecognized command line option "-mabi=spe"
+
+Instead overwrite the (user supplied) CFLAGS with the (user supplied)
+CFLAGS_FOR_BUILD (and similar for LDFLAGS) like we used to do.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ strpool/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/strpool/Makefile.am b/strpool/Makefile.am
+index b041cea..5b335a5 100644
+--- a/strpool/Makefile.am
++++ b/strpool/Makefile.am
+@@ -17,8 +17,8 @@
+ # <http://www.gnu.org/licenses/>.
+
+ CC = @CC_FOR_BUILD@
+-AM_CFLAGS = @BUILD_CFLAGS@
+-AM_LDFLAGS = @BUILD_LDFLAGS@
++CFLAGS = @BUILD_CFLAGS@
++LDFLAGS = @BUILD_LDFLAGS@
+
+ noinst_PROGRAMS = \
+ strpool
+--
+1.7.10.4
+
+++ /dev/null
-From 730158700ea7a554c37f24bfbf5f4985f7280f3e Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Wed, 6 Feb 2013 14:07:02 +0100
-Subject: [PATCH] strpool: don't mix up host/build flags when cross compiling
-
-Submitted upstream as https://bugs.freedesktop.org/show_bug.cgi?id=60364
-
-Commit b71035ce89 (build-sys: modernize build system) changed the strpool
-(which needs to be built for the build machine) compilation to use
-AM_CFLAGS / AM_LDFLAGS rather than CFLAGS / LDFLAGS. This is wrong, as
-The AM_ version is used TOGETHER with (the user supplied) CFLAGS/LDFLAGS,
-causing strpool to use both CFLAGS (for host) and CCFLAGS_FOR_BUILD (for
-build) flags, breaking cross compilation with errors like:
-
-cc1: error: unrecognized command line option "-mabi=spe"
-
-Instead overwrite the (user supplied) CFLAGS with the (user supplied)
-CFLAGS_FOR_BUILD (and similar for LDFLAGS) like we used to do.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- strpool/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/strpool/Makefile.am b/strpool/Makefile.am
-index b041cea..5b335a5 100644
---- a/strpool/Makefile.am
-+++ b/strpool/Makefile.am
-@@ -17,8 +17,8 @@
- # <http://www.gnu.org/licenses/>.
-
- CC = @CC_FOR_BUILD@
--AM_CFLAGS = @BUILD_CFLAGS@
--AM_LDFLAGS = @BUILD_LDFLAGS@
-+CFLAGS = @BUILD_CFLAGS@
-+LDFLAGS = @BUILD_LDFLAGS@
-
- noinst_PROGRAMS = \
- strpool
---
-1.7.10.4
-
--- /dev/null
+Index: b/src/cgi.c
+===================================================================
+--- a/src/cgi.c
++++ b/src/cgi.c
+@@ -336,7 +336,7 @@
+ hextable['b'] = 11;
+ hextable['c'] = 12;
+ hextable['d'] = 13;
+- hextable['e'] = 13;
++ hextable['e'] = 14;
+ hextable['f'] = 15;
+ hextable['A'] = 10;
+ hextable['B'] = 11;
+Index: b/src/string.c
+===================================================================
+--- a/src/string.c
++++ b/src/string.c
+@@ -584,7 +584,7 @@
+
+ va_start(ptr, s);
+
+- va_copy(bkp, str);
++ va_copy(bkp, ptr);
+ len = strlen(s);
+
+ while (*str) {
+Index: b/Makefile.in
+===================================================================
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -5,22 +5,32 @@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+
+-SHAREDOPT = -shared
++SHAREDOPT = -shared -fPIC -Wl,-soname,libcgi.so.0
+ LIBDIR = $(prefix)/lib
+-INCDIR = $(prefix)/include
++INCDIR = $(prefix)/include/libcgi/
+ MANDIR = $(prefix)/man/man3
+ SHELL = /bin/sh
+ EXTRA_LIBS =
+
+ INCS = -Isrc
+-FLAGS = -Wall -fpic
++FLAGS = -Wall -D_REENTRANT
+
+ OBJS = src/error.o src/cgi.o src/session.o src/base64.o src/md5.o \
+ src/string.o src/general.o src/list.o src/cookie.o
++SHOBJS=$(OBJS:.o=.sh.o)
+
+-.c.o: $(CC) $(FLAGS) -c $<
++ALL_TARGETS = src/libcgi.a
++ifeq ($(STATIC),)
++ALL_TARGETS += src/libcgi.so
++endif
+
+-all: $(OBJS) src/libcgi.so
++%.o: %.c
++ $(CC) $(FLAGS) -c $*.c -o $@
++
++%.sh.o: %.c
++ $(CC) $(FLAGS) -fPIC -c $*.c -o $@
++
++all: $(ALL_TARGETS)
+
+ @echo ""
+ @echo ""
+@@ -48,14 +58,17 @@
+ src/libcgi.a: $(OBJS)
+ $(AR) rc src/libcgi.a $(OBJS)
+
+-src/libcgi.so: src/libcgi.a
+- $(CC) $(SHAREDOPT) -o src/libcgi.so $(OBJS) $(EXTRA_LIBS)
++src/libcgi.so: $(SHOBJS)
++ $(CC) $(SHAREDOPT) -o src/libcgi.so $(SHOBJS) $(EXTRA_LIBS)
+
+ install:
+- cp src/libcgi.a $(LIBDIR)
+- cp src/libcgi.so $(LIBDIR)
+- cp src/cgi.h $(INCDIR)
+- cp src/session.h $(INCDIR)
++ cp src/libcgi.a $(DESTDIR)/$(LIBDIR)
++ifeq ($(STATIC),)
++ cp src/libcgi.so $(DESTDIR)/$(LIBDIR)
++endif
++ [ -d $(DESTDIR)/$(INCDIR) ] || mkdir -p $(DESTDIR)/$(INCDIR)
++ cp src/cgi.h $(DESTDIR)/$(INCDIR)
++ cp src/session.h $(DESTDIR)/$(INCDIR)
+
+
+ src/error.o: src/error.c src/error.h
+@@ -69,8 +82,9 @@
+ src/list.o: src/list.c
+
+ clean:
+- find src/ -name *.*o -exec rm -f {} \;
++ find src/ -name *.o -exec rm -f {} \;
+ find src/ -name *.a -exec rm -f {} \;
++ find src/ -name *.so -exec rm -f {} \;
+
+ uninstall: clean
+ rm -f $(LIBDIR)/libcgi.*
+@@ -78,11 +92,11 @@
+ rm -f $(INCDIR)/session.h
+ rm -f $(MANDIR)/libcgi*
+
+-install_man:
+- cp doc/man/man3/libcgi_base64.3 $(MANDIR)
+- cp doc/man/man3/libcgi_cgi.3 $(MANDIR)
+- cp doc/man/man3/libcgi_general.3 $(MANDIR)
+- cp doc/man/man3/libcgi_string.3 $(MANDIR)
+- cp doc/man/man3/libcgi_session.3 $(MANDIR)
+- cp doc/man/man3/libcgi_cookie.3 $(MANDIR)
++#install_man:
++# cp doc/man/man3/libcgi_base64.3 $(MANDIR)
++# cp doc/man/man3/libcgi_cgi.3 $(MANDIR)
++# cp doc/man/man3/libcgi_general.3 $(MANDIR)
++# cp doc/man/man3/libcgi_string.3 $(MANDIR)
++# cp doc/man/man3/libcgi_session.3 $(MANDIR)
++# cp doc/man/man3/libcgi_cookie.3 $(MANDIR)
+
+++ /dev/null
-Index: b/src/cgi.c
-===================================================================
---- a/src/cgi.c
-+++ b/src/cgi.c
-@@ -336,7 +336,7 @@
- hextable['b'] = 11;
- hextable['c'] = 12;
- hextable['d'] = 13;
-- hextable['e'] = 13;
-+ hextable['e'] = 14;
- hextable['f'] = 15;
- hextable['A'] = 10;
- hextable['B'] = 11;
-Index: b/src/string.c
-===================================================================
---- a/src/string.c
-+++ b/src/string.c
-@@ -584,7 +584,7 @@
-
- va_start(ptr, s);
-
-- va_copy(bkp, str);
-+ va_copy(bkp, ptr);
- len = strlen(s);
-
- while (*str) {
-Index: b/Makefile.in
-===================================================================
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -5,22 +5,32 @@
- prefix = @prefix@
- exec_prefix = @exec_prefix@
-
--SHAREDOPT = -shared
-+SHAREDOPT = -shared -fPIC -Wl,-soname,libcgi.so.0
- LIBDIR = $(prefix)/lib
--INCDIR = $(prefix)/include
-+INCDIR = $(prefix)/include/libcgi/
- MANDIR = $(prefix)/man/man3
- SHELL = /bin/sh
- EXTRA_LIBS =
-
- INCS = -Isrc
--FLAGS = -Wall -fpic
-+FLAGS = -Wall -D_REENTRANT
-
- OBJS = src/error.o src/cgi.o src/session.o src/base64.o src/md5.o \
- src/string.o src/general.o src/list.o src/cookie.o
-+SHOBJS=$(OBJS:.o=.sh.o)
-
--.c.o: $(CC) $(FLAGS) -c $<
-+ALL_TARGETS = src/libcgi.a
-+ifeq ($(STATIC),)
-+ALL_TARGETS += src/libcgi.so
-+endif
-
--all: $(OBJS) src/libcgi.so
-+%.o: %.c
-+ $(CC) $(FLAGS) -c $*.c -o $@
-+
-+%.sh.o: %.c
-+ $(CC) $(FLAGS) -fPIC -c $*.c -o $@
-+
-+all: $(ALL_TARGETS)
-
- @echo ""
- @echo ""
-@@ -48,14 +58,17 @@
- src/libcgi.a: $(OBJS)
- $(AR) rc src/libcgi.a $(OBJS)
-
--src/libcgi.so: src/libcgi.a
-- $(CC) $(SHAREDOPT) -o src/libcgi.so $(OBJS) $(EXTRA_LIBS)
-+src/libcgi.so: $(SHOBJS)
-+ $(CC) $(SHAREDOPT) -o src/libcgi.so $(SHOBJS) $(EXTRA_LIBS)
-
- install:
-- cp src/libcgi.a $(LIBDIR)
-- cp src/libcgi.so $(LIBDIR)
-- cp src/cgi.h $(INCDIR)
-- cp src/session.h $(INCDIR)
-+ cp src/libcgi.a $(DESTDIR)/$(LIBDIR)
-+ifeq ($(STATIC),)
-+ cp src/libcgi.so $(DESTDIR)/$(LIBDIR)
-+endif
-+ [ -d $(DESTDIR)/$(INCDIR) ] || mkdir -p $(DESTDIR)/$(INCDIR)
-+ cp src/cgi.h $(DESTDIR)/$(INCDIR)
-+ cp src/session.h $(DESTDIR)/$(INCDIR)
-
-
- src/error.o: src/error.c src/error.h
-@@ -69,8 +82,9 @@
- src/list.o: src/list.c
-
- clean:
-- find src/ -name *.*o -exec rm -f {} \;
-+ find src/ -name *.o -exec rm -f {} \;
- find src/ -name *.a -exec rm -f {} \;
-+ find src/ -name *.so -exec rm -f {} \;
-
- uninstall: clean
- rm -f $(LIBDIR)/libcgi.*
-@@ -78,11 +92,11 @@
- rm -f $(INCDIR)/session.h
- rm -f $(MANDIR)/libcgi*
-
--install_man:
-- cp doc/man/man3/libcgi_base64.3 $(MANDIR)
-- cp doc/man/man3/libcgi_cgi.3 $(MANDIR)
-- cp doc/man/man3/libcgi_general.3 $(MANDIR)
-- cp doc/man/man3/libcgi_string.3 $(MANDIR)
-- cp doc/man/man3/libcgi_session.3 $(MANDIR)
-- cp doc/man/man3/libcgi_cookie.3 $(MANDIR)
-+#install_man:
-+# cp doc/man/man3/libcgi_base64.3 $(MANDIR)
-+# cp doc/man/man3/libcgi_cgi.3 $(MANDIR)
-+# cp doc/man/man3/libcgi_general.3 $(MANDIR)
-+# cp doc/man/man3/libcgi_string.3 $(MANDIR)
-+# cp doc/man/man3/libcgi_session.3 $(MANDIR)
-+# cp doc/man/man3/libcgi_cookie.3 $(MANDIR)
-
--- /dev/null
+Index: cgicc-3.2.9/Makefile.am
+===================================================================
+--- cgicc-3.2.9.orig/Makefile.am 2010-02-25 16:34:06.000000000 +0100
++++ cgicc-3.2.9/Makefile.am 2010-02-25 16:34:14.000000000 +0100
+@@ -8,9 +8,15 @@
+ DEMO =
+ endif
+
++if DOC
++DOCDIR = doc
++else
++DOC =
++endif
++
+ ACLOCAL_AMFLAGS=
+
+-SUBDIRS = cgicc doc support $(DEMO)
++SUBDIRS = cgicc $(DOCDIR) support $(DEMO)
+
+ CLEANFILES = *~
+
+Index: cgicc-3.2.9/configure.ac
+===================================================================
+--- cgicc-3.2.9.orig/configure.ac 2010-02-25 16:34:06.000000000 +0100
++++ cgicc-3.2.9/configure.ac 2010-02-25 16:45:46.000000000 +0100
+@@ -17,9 +17,23 @@
+ AC_PROG_CXX
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
+-AC_CHECK_PROG(DOXYGEN, doxygen, doxygen, /bin/echo)
+
+
++AC_ARG_ENABLE(doc,
++ [ --enable-doc build doc [[default=yes]]],
++ [case "${enableval}" in
++ yes) cgicc_doc=yes ;;
++ no) cgicc_doc=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for --enable-doc) ;;
++ esac], cgicc_doc=yes)
++
++if test "$cgicc_doc" = yes; then
++ AC_CHECK_PROG(DOXYGEN, doxygen, doxygen)
++ if test -z "$DOXYGEN" ; then
++ AC_MSG_ERROR([Doxygen is required to build the documentation])
++ fi
++fi
++AM_CONDITIONAL(DOC, test "$cgicc_doc" = yes)
+
+ dnl Determine host system type
+
+++ /dev/null
-Index: cgicc-3.2.9/Makefile.am
-===================================================================
---- cgicc-3.2.9.orig/Makefile.am 2010-02-25 16:34:06.000000000 +0100
-+++ cgicc-3.2.9/Makefile.am 2010-02-25 16:34:14.000000000 +0100
-@@ -8,9 +8,15 @@
- DEMO =
- endif
-
-+if DOC
-+DOCDIR = doc
-+else
-+DOC =
-+endif
-+
- ACLOCAL_AMFLAGS=
-
--SUBDIRS = cgicc doc support $(DEMO)
-+SUBDIRS = cgicc $(DOCDIR) support $(DEMO)
-
- CLEANFILES = *~
-
-Index: cgicc-3.2.9/configure.ac
-===================================================================
---- cgicc-3.2.9.orig/configure.ac 2010-02-25 16:34:06.000000000 +0100
-+++ cgicc-3.2.9/configure.ac 2010-02-25 16:45:46.000000000 +0100
-@@ -17,9 +17,23 @@
- AC_PROG_CXX
- AC_PROG_INSTALL
- AC_PROG_LIBTOOL
--AC_CHECK_PROG(DOXYGEN, doxygen, doxygen, /bin/echo)
-
-
-+AC_ARG_ENABLE(doc,
-+ [ --enable-doc build doc [[default=yes]]],
-+ [case "${enableval}" in
-+ yes) cgicc_doc=yes ;;
-+ no) cgicc_doc=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-doc) ;;
-+ esac], cgicc_doc=yes)
-+
-+if test "$cgicc_doc" = yes; then
-+ AC_CHECK_PROG(DOXYGEN, doxygen, doxygen)
-+ if test -z "$DOXYGEN" ; then
-+ AC_MSG_ERROR([Doxygen is required to build the documentation])
-+ fi
-+fi
-+AM_CONDITIONAL(DOC, test "$cgicc_doc" = yes)
-
- dnl Determine host system type
-
--- /dev/null
+configure: remove po/Makefile.in from AC_CONFIG_FILES
+
+Since we are gettextizing the package, gettextize updates configure.ac
+to add po/Makefile.in to AC_CONFIG_FILES>
+
+Unfortunately, it's already present, and gettextize does not detect it,
+and insists on adding its own. Later on, autoreconf barfs on the double
+occurences.
+
+As suggested by Arnout, just patch configure.ac to remove the
+po/Makefile.in occurence, so gettextize can safely add its own
+
+Reported-by: Arnout Vandecappelle <arnout@mind.be>
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Cc: Alvaro Gamez <alvaro.gamez@hazent.com>
+
+diff -durN libconfuse-V2_7.orig/configure.ac libconfuse-V2_7/configure.ac
+--- libconfuse-V2_7.orig/configure.ac 2010-02-20 10:14:10.000000000 +0100
++++ libconfuse-V2_7/configure.ac 2014-07-17 00:19:18.816785340 +0200
+@@ -49,7 +49,6 @@
+ AC_CONFIG_FILES([Makefile \
+ src/Makefile \
+ examples/Makefile \
+- po/Makefile.in \
+ m4/Makefile \
+ tests/Makefile \
+ doc/Makefile \
+++ /dev/null
-configure: remove po/Makefile.in from AC_CONFIG_FILES
-
-Since we are gettextizing the package, gettextize updates configure.ac
-to add po/Makefile.in to AC_CONFIG_FILES>
-
-Unfortunately, it's already present, and gettextize does not detect it,
-and insists on adding its own. Later on, autoreconf barfs on the double
-occurences.
-
-As suggested by Arnout, just patch configure.ac to remove the
-po/Makefile.in occurence, so gettextize can safely add its own
-
-Reported-by: Arnout Vandecappelle <arnout@mind.be>
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Cc: Alvaro Gamez <alvaro.gamez@hazent.com>
-
-diff -durN libconfuse-V2_7.orig/configure.ac libconfuse-V2_7/configure.ac
---- libconfuse-V2_7.orig/configure.ac 2010-02-20 10:14:10.000000000 +0100
-+++ libconfuse-V2_7/configure.ac 2014-07-17 00:19:18.816785340 +0200
-@@ -49,7 +49,6 @@
- AC_CONFIG_FILES([Makefile \
- src/Makefile \
- examples/Makefile \
-- po/Makefile.in \
- m4/Makefile \
- tests/Makefile \
- doc/Makefile \
--- /dev/null
+[PATCH] fix build on uClibc
+
+Use cue_unused / cue_dead2 for the unused/non-returning annotation macros,
+as uClibc defines a struct member called __unused in stdio.h when built
+with locale support, breaking the build.
+
+According to ANSI C 4.1.2.1, defines beginning with '__' are reserved
+for the implementation, so shouldn't be used in user code.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/libcue/cue_scanner.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+Index: libcue-1.4.0/src/libcue/cue_scanner.c
+===================================================================
+--- libcue-1.4.0.orig/src/libcue/cue_scanner.c
++++ libcue-1.4.0/src/libcue/cue_scanner.c
+@@ -7,9 +7,11 @@
+
+ #if defined(__FreeBSD__)
+ #include <sys/cdefs.h>
++#define cue_unused __unused
++#define cue_dead2 __dead2
+ #else
+-#define __unused
+-#define __dead2
++#define cue_unused
++#define cue_dead2
+ #endif
+
+ #define FLEX_SCANNER
+@@ -248,7 +250,7 @@
+ YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+ static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) __unused;
++static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) cue_unused;
+ static void yy_flex_free YY_PROTO(( void * ));
+
+ #define yy_new_buffer yy_create_buffer
+@@ -285,7 +287,7 @@
+ static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+ static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+ static int yy_get_next_buffer YY_PROTO(( void ));
+-static void yy_fatal_error YY_PROTO(( yyconst char msg[] )) __dead2;
++static void yy_fatal_error YY_PROTO(( yyconst char msg[] )) cue_dead2;
+
+ /* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+++ /dev/null
-[PATCH] fix build on uClibc
-
-Use cue_unused / cue_dead2 for the unused/non-returning annotation macros,
-as uClibc defines a struct member called __unused in stdio.h when built
-with locale support, breaking the build.
-
-According to ANSI C 4.1.2.1, defines beginning with '__' are reserved
-for the implementation, so shouldn't be used in user code.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/libcue/cue_scanner.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-Index: libcue-1.4.0/src/libcue/cue_scanner.c
-===================================================================
---- libcue-1.4.0.orig/src/libcue/cue_scanner.c
-+++ libcue-1.4.0/src/libcue/cue_scanner.c
-@@ -7,9 +7,11 @@
-
- #if defined(__FreeBSD__)
- #include <sys/cdefs.h>
-+#define cue_unused __unused
-+#define cue_dead2 __dead2
- #else
--#define __unused
--#define __dead2
-+#define cue_unused
-+#define cue_dead2
- #endif
-
- #define FLEX_SCANNER
-@@ -248,7 +250,7 @@
- YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
-
- static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
--static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) __unused;
-+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) cue_unused;
- static void yy_flex_free YY_PROTO(( void * ));
-
- #define yy_new_buffer yy_create_buffer
-@@ -285,7 +287,7 @@
- static yy_state_type yy_get_previous_state YY_PROTO(( void ));
- static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
- static int yy_get_next_buffer YY_PROTO(( void ));
--static void yy_fatal_error YY_PROTO(( yyconst char msg[] )) __dead2;
-+static void yy_fatal_error YY_PROTO(( yyconst char msg[] )) cue_dead2;
-
- /* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
--- /dev/null
+Fix static only build
+
+Make sure to build the shared library only if BUILD_SHARED_LIBS is
+ON. Normally, CMake takes care of this automatically, but libcuefile
+wants to build both the shared and static variants, so the normal
+logic of CMake doesn't apply.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/CMakeLists.txt
+===================================================================
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -4,7 +4,11 @@
+ add_library(cuefile-static STATIC cd cdtext cue_parse cue_print cue_scan cuefile time toc toc_parse toc_print toc_scan)
+ set_target_properties(cuefile-static PROPERTIES OUTPUT_NAME cuefile CLEAN_DIRECT_OUTPUT 1)
+
++if (BUILD_SHARED_LIBS)
+ add_library(cuefile-shared SHARED cd cdtext cue_parse cue_print cue_scan cuefile time toc toc_parse toc_print toc_scan)
+ set_target_properties(cuefile-shared PROPERTIES OUTPUT_NAME cuefile CLEAN_DIRECT_OUTPUT 1 VERSION 0.0.0 SOVERSION 0)
+
+ install(TARGETS cuefile-static cuefile-shared LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
++else (BUILD_SHARED_LIBS)
++install(TARGETS cuefile-static LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
++endif (BUILD_SHARED_LIBS)
+++ /dev/null
-Fix static only build
-
-Make sure to build the shared library only if BUILD_SHARED_LIBS is
-ON. Normally, CMake takes care of this automatically, but libcuefile
-wants to build both the shared and static variants, so the normal
-logic of CMake doesn't apply.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/src/CMakeLists.txt
-===================================================================
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -4,7 +4,11 @@
- add_library(cuefile-static STATIC cd cdtext cue_parse cue_print cue_scan cuefile time toc toc_parse toc_print toc_scan)
- set_target_properties(cuefile-static PROPERTIES OUTPUT_NAME cuefile CLEAN_DIRECT_OUTPUT 1)
-
-+if (BUILD_SHARED_LIBS)
- add_library(cuefile-shared SHARED cd cdtext cue_parse cue_print cue_scan cuefile time toc toc_parse toc_print toc_scan)
- set_target_properties(cuefile-shared PROPERTIES OUTPUT_NAME cuefile CLEAN_DIRECT_OUTPUT 1 VERSION 0.0.0 SOVERSION 0)
-
- install(TARGETS cuefile-static cuefile-shared LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
-+else (BUILD_SHARED_LIBS)
-+install(TARGETS cuefile-static LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
-+endif (BUILD_SHARED_LIBS)
--- /dev/null
+examples/testd.c: As the C POSIX library recommends include the <unistd.h>
+instead of <sys/unistd.h>. This removes an error when building libdaemon
+against the musl C library.
+
+Signed-off-by: Jörg Krause <jkrause@posteo.de>
+--- libdaemon-0.14.orig/examples/testd.c 2014-08-30 00:27:08.359832977 +0200
++++ libdaemon-0.14/examples/testd.c 2014-08-30 00:27:25.439832670 +0200
+@@ -23,7 +23,7 @@
+ #include <string.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
+-#include <sys/unistd.h>
++#include <unistd.h>
+ #include <sys/select.h>
+
+ #include <libdaemon/dfork.h>
+++ /dev/null
-examples/testd.c: As the C POSIX library recommends include the <unistd.h>
-instead of <sys/unistd.h>. This removes an error when building libdaemon
-against the musl C library.
-
-Signed-off-by: Jörg Krause <jkrause@posteo.de>
---- libdaemon-0.14.orig/examples/testd.c 2014-08-30 00:27:08.359832977 +0200
-+++ libdaemon-0.14/examples/testd.c 2014-08-30 00:27:25.439832670 +0200
-@@ -23,7 +23,7 @@
- #include <string.h>
- #include <sys/types.h>
- #include <sys/time.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
- #include <sys/select.h>
-
- #include <libdaemon/dfork.h>
--- /dev/null
+--- a/python/dnet.c 2006-01-19 18:08:23.000000000 +1100
++++ b/python/dnet.c 2008-09-03 16:30:47.000000000 +1000
+@@ -2726,7 +2726,7 @@
+ PyObject *__pyx_3 = 0;
+ unsigned short __pyx_4;
+ Py_INCREF(__pyx_v_self);
+- ((PyObject*)__pyx_v_next) = Py_None; Py_INCREF(((PyObject*)__pyx_v_next));
++ __pyx_v_next = (struct __pyx_obj_4dnet_addr*)Py_None; Py_INCREF(((PyObject*)__pyx_v_next));
+
+ /* "/Users/dugsong/projects/libdnet/python/./dnet.pyx":634 */
+ __pyx_1 = (((struct __pyx_obj_4dnet___addr_ip4_iter *)__pyx_v_self)->cur <= ((struct __pyx_obj_4dnet___addr_ip4_iter *)__pyx_v_self)->max);
+@@ -2738,7 +2739,7 @@
+ Py_DECREF(__pyx_2); __pyx_2 = 0;
+ if (!__Pyx_TypeTest(__pyx_3, __pyx_ptype_4dnet_addr)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_v_next));
+- ((PyObject *)__pyx_v_next) = __pyx_3;
++ __pyx_v_next = (struct __pyx_obj_4dnet_addr*)__pyx_3;
+ __pyx_3 = 0;
+
+ /* "/Users/dugsong/projects/libdnet/python/./dnet.pyx":636 */
--- /dev/null
+---
+ python/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: libdnet-1.11/python/Makefile.am
+===================================================================
+--- libdnet-1.11.orig/python/Makefile.am
++++ libdnet-1.11/python/Makefile.am
+@@ -11,6 +11,7 @@
+ pyrexc $(srcdir)/dnet.pyx
+
+ python-build: $(srcdir)/dnet.c
++ CC="$(CC)" LDSHARED="$(CC) -shared" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" $(PYTHON) setup.py build_ext -I$(PYINCDIR) -L$(PYLIBDIR)
+ $(PYTHON) setup.py build
+ touch python-build
+
+++ /dev/null
---- a/python/dnet.c 2006-01-19 18:08:23.000000000 +1100
-+++ b/python/dnet.c 2008-09-03 16:30:47.000000000 +1000
-@@ -2726,7 +2726,7 @@
- PyObject *__pyx_3 = 0;
- unsigned short __pyx_4;
- Py_INCREF(__pyx_v_self);
-- ((PyObject*)__pyx_v_next) = Py_None; Py_INCREF(((PyObject*)__pyx_v_next));
-+ __pyx_v_next = (struct __pyx_obj_4dnet_addr*)Py_None; Py_INCREF(((PyObject*)__pyx_v_next));
-
- /* "/Users/dugsong/projects/libdnet/python/./dnet.pyx":634 */
- __pyx_1 = (((struct __pyx_obj_4dnet___addr_ip4_iter *)__pyx_v_self)->cur <= ((struct __pyx_obj_4dnet___addr_ip4_iter *)__pyx_v_self)->max);
-@@ -2738,7 +2739,7 @@
- Py_DECREF(__pyx_2); __pyx_2 = 0;
- if (!__Pyx_TypeTest(__pyx_3, __pyx_ptype_4dnet_addr)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; goto __pyx_L1;}
- Py_DECREF(((PyObject *)__pyx_v_next));
-- ((PyObject *)__pyx_v_next) = __pyx_3;
-+ __pyx_v_next = (struct __pyx_obj_4dnet_addr*)__pyx_3;
- __pyx_3 = 0;
-
- /* "/Users/dugsong/projects/libdnet/python/./dnet.pyx":636 */
+++ /dev/null
----
- python/Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: libdnet-1.11/python/Makefile.am
-===================================================================
---- libdnet-1.11.orig/python/Makefile.am
-+++ libdnet-1.11/python/Makefile.am
-@@ -11,6 +11,7 @@
- pyrexc $(srcdir)/dnet.pyx
-
- python-build: $(srcdir)/dnet.c
-+ CC="$(CC)" LDSHARED="$(CC) -shared" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" $(PYTHON) setup.py build_ext -I$(PYINCDIR) -L$(PYLIBDIR)
- $(PYTHON) setup.py build
- touch python-build
-
--- /dev/null
+configure: fix build on NIOS II platform
+
+NIOS II is a CPU architecture from Altera, which uses 'nios2' as the
+architecture part of the tuple. Unfortunately, 'nios2' matches the
+current '*os2*' test done by libdvdnav's configure script to detect
+the OS/2 operating system. This leads to build issues as the build
+process of libdvdnav then tries to use OS/2 specific compiler
+options, that do not exist in the gcc used for Linux/NIOS2.
+
+To fix this, this patch makes the test for OS/2 a little bit more
+specific: in the case of the OS/2 operating system, the OS part of the
+tuple contains just 'os2' (confirmed by looking at config.guess and
+config.sub in the gnuconfig project). So using '*-os2-*' will properly
+match the OS/2 operating system but not the NIOS II architecture.
+
+Upstream-status: not needed, newer upstream versions no longer have
+ this test
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -166,7 +166,7 @@
+ *cygwin*)
+ LDFLAGS="-no-undefined $LDFLAGS"
+ ;;
+- *os2*)
++ *-os2-*)
+ LDFLAGS="-no-undefined -Zbin-files $LDFLAGS"
+ ;;
+ *)
+++ /dev/null
-configure: fix build on NIOS II platform
-
-NIOS II is a CPU architecture from Altera, which uses 'nios2' as the
-architecture part of the tuple. Unfortunately, 'nios2' matches the
-current '*os2*' test done by libdvdnav's configure script to detect
-the OS/2 operating system. This leads to build issues as the build
-process of libdvdnav then tries to use OS/2 specific compiler
-options, that do not exist in the gcc used for Linux/NIOS2.
-
-To fix this, this patch makes the test for OS/2 a little bit more
-specific: in the case of the OS/2 operating system, the OS part of the
-tuple contains just 'os2' (confirmed by looking at config.guess and
-config.sub in the gnuconfig project). So using '*-os2-*' will properly
-match the OS/2 operating system but not the NIOS II architecture.
-
-Upstream-status: not needed, newer upstream versions no longer have
- this test
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -166,7 +166,7 @@
- *cygwin*)
- LDFLAGS="-no-undefined $LDFLAGS"
- ;;
-- *os2*)
-+ *-os2-*)
- LDFLAGS="-no-undefined -Zbin-files $LDFLAGS"
- ;;
- *)
--- /dev/null
+configure: fix build on NIOS II platform
+
+NIOS II is a CPU architecture from Altera, which uses 'nios2' as the
+architecture part of the tuple. Unfortunately, 'nios2' matches the
+current '*os2*' test done by libdvdread's configure script to detect
+the OS/2 operating system. This leads to build issues as the build
+process of libdvdread then tries to use OS/2 specific compiler
+options, that do not exist in the gcc used for Linux/NIOS2.
+
+To fix this, this patch makes the test for OS/2 a little bit more
+specific: in the case of the OS/2 operating system, the OS part of the
+tuple contains just 'os2' (confirmed by looking at config.guess and
+config.sub in the gnuconfig project). So using '*-os2-*' will properly
+match the OS/2 operating system but not the NIOS II architecture.
+
+Upstream-status: submitted
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -146,7 +146,7 @@
+ *cygwin*)
+ LDFLAGS="-no-undefined $LDFLAGS"
+ ;;
+- *os2*)
++ *-os2-*)
+ LDFLAGS="-no-undefined -Zbin-files $LDFLAGS"
+ ;;
+ *)
+++ /dev/null
-configure: fix build on NIOS II platform
-
-NIOS II is a CPU architecture from Altera, which uses 'nios2' as the
-architecture part of the tuple. Unfortunately, 'nios2' matches the
-current '*os2*' test done by libdvdread's configure script to detect
-the OS/2 operating system. This leads to build issues as the build
-process of libdvdread then tries to use OS/2 specific compiler
-options, that do not exist in the gcc used for Linux/NIOS2.
-
-To fix this, this patch makes the test for OS/2 a little bit more
-specific: in the case of the OS/2 operating system, the OS part of the
-tuple contains just 'os2' (confirmed by looking at config.guess and
-config.sub in the gnuconfig project). So using '*-os2-*' will properly
-match the OS/2 operating system but not the NIOS II architecture.
-
-Upstream-status: submitted
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -146,7 +146,7 @@
- *cygwin*)
- LDFLAGS="-no-undefined $LDFLAGS"
- ;;
-- *os2*)
-+ *-os2-*)
- LDFLAGS="-no-undefined -Zbin-files $LDFLAGS"
- ;;
- *)
--- /dev/null
+[PATCH] Fix build on systems without IPV6_TCLASS support
+
+The wrong variable name was used.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/eXtl_udp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: libeXosip2-3.6.0/src/eXtl_udp.c
+===================================================================
+--- libeXosip2-3.6.0.orig/src/eXtl_udp.c
++++ libeXosip2-3.6.0/src/eXtl_udp.c
+@@ -178,7 +178,7 @@
+ res = setsockopt(udp_socket, IPPROTO_IPV6, IPV6_TCLASS,
+ (SOCKET_OPTION_VALUE)&tos, sizeof(tos));
+ #else
+- retval = setsockopt(udp_socket, IPPROTO_IPV6, IP_TOS,
++ res = setsockopt(udp_socket, IPPROTO_IPV6, IP_TOS,
+ (SOCKET_OPTION_VALUE)&tos, sizeof(tos));
+ #endif
+ }
--- /dev/null
+configure: use pkg-config to find openssl
+
+The current check is broken for static linking, since the openssl
+libs need to be linked against libz, which is missing in the link
+command when doing a static build:
+ http://autobuild.buildroot.net/results/787/787cd9992b00d8008641af208f5fb7c4afb40b06/build-end.log
+
+Instead of trying convoluted tests to decide what additional libs
+are required, just delegate this job to pkg-config.
+
+At the same time, fix a few legacy, deprecated constructs in favour
+of their new counterparts.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Upstream status: submitted, but no public mailing list (sent to the
+mail documented in: http://www.antisip.com/doc/exosip2/index.html )
+
+diff -durN libeXosip2-3.6.0.orig/configure.in libeXosip2-3.6.0/configure.in
+--- libeXosip2-3.6.0.orig/configure.in 2014-06-22 23:58:26.549487427 +0200
++++ libeXosip2-3.6.0/configure.in 2014-06-22 23:59:12.822008499 +0200
+@@ -44,7 +44,7 @@
+ AC_CONFIG_AUX_DIR(scripts)
+ AC_CONFIG_HEADERS(config.h)
+ AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+-AM_ACLOCAL_INCLUDE(scripts)
++AC_CONFIG_MACRO_DIR([scripts])
+
+ AC_CANONICAL_HOST
+
+@@ -371,13 +371,15 @@
+
+ AC_ARG_ENABLE(openssl,
+ [ --enable-openssl enable support for openssl],
+- enable_openssl=$enableval,enable_openssl="yes")
++ enable_openssl=$enableval,enable_openssl="auto")
+
+-if test "$enable_openssl" = "yes" ; then
+- AC_CHECK_HEADERS(openssl/ssl.h)
+- AC_CHECK_LIB(ssl,SSL_CTX_new,[EXOSIP_LIB="$EXOSIP_LIB -lssl"])
+- AC_CHECK_LIB(crypto,X509_get_issuer_name,[EXOSIP_LIB="$EXOSIP_LIB -lcrypto"])
+-fi
++AS_IF([test "$enable_openssl" = "yes" -o "$enable_openssl" = "auto"],
++ [PKG_CHECK_MODULES([SSL], [openssl],
++ [EXOSIP_LIB="$EXOSIP_LIB $SSL_LIBS"],
++ [AS_IF([test "$enable_openssl" = "yes"],
++ [AC_MSG_ERROR([can not find openssl])])
++ ])
++ ])
+
+ AC_ARG_ENABLE(srvrec,
+ [ --enable-srvrec enable support for SRV records DNS queries (yes) ],
+diff -durN build/libeXosip2-3.6.0.orig/Makefile.am build/libeXosip2-3.6.0/Makefile.am
+--- libeXosip2-3.6.0.orig/Makefile.am 2014-06-23 00:14:25.328226745 +0200
++++ libeXosip2-3.6.0/Makefile.am 2014-06-23 00:14:38.296371236 +0200
+@@ -1,4 +1,4 @@
+-
++ACLOCAL_AMFLAGS = -I scripts
+ EXTRA_DIST = README autogen.sh
+
+ SUBDIRS = scripts platform src include tools help
+++ /dev/null
-[PATCH] Fix build on systems without IPV6_TCLASS support
-
-The wrong variable name was used.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/eXtl_udp.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: libeXosip2-3.6.0/src/eXtl_udp.c
-===================================================================
---- libeXosip2-3.6.0.orig/src/eXtl_udp.c
-+++ libeXosip2-3.6.0/src/eXtl_udp.c
-@@ -178,7 +178,7 @@
- res = setsockopt(udp_socket, IPPROTO_IPV6, IPV6_TCLASS,
- (SOCKET_OPTION_VALUE)&tos, sizeof(tos));
- #else
-- retval = setsockopt(udp_socket, IPPROTO_IPV6, IP_TOS,
-+ res = setsockopt(udp_socket, IPPROTO_IPV6, IP_TOS,
- (SOCKET_OPTION_VALUE)&tos, sizeof(tos));
- #endif
- }
+++ /dev/null
-configure: use pkg-config to find openssl
-
-The current check is broken for static linking, since the openssl
-libs need to be linked against libz, which is missing in the link
-command when doing a static build:
- http://autobuild.buildroot.net/results/787/787cd9992b00d8008641af208f5fb7c4afb40b06/build-end.log
-
-Instead of trying convoluted tests to decide what additional libs
-are required, just delegate this job to pkg-config.
-
-At the same time, fix a few legacy, deprecated constructs in favour
-of their new counterparts.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
----
-Upstream status: submitted, but no public mailing list (sent to the
-mail documented in: http://www.antisip.com/doc/exosip2/index.html )
-
-diff -durN libeXosip2-3.6.0.orig/configure.in libeXosip2-3.6.0/configure.in
---- libeXosip2-3.6.0.orig/configure.in 2014-06-22 23:58:26.549487427 +0200
-+++ libeXosip2-3.6.0/configure.in 2014-06-22 23:59:12.822008499 +0200
-@@ -44,7 +44,7 @@
- AC_CONFIG_AUX_DIR(scripts)
- AC_CONFIG_HEADERS(config.h)
- AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
--AM_ACLOCAL_INCLUDE(scripts)
-+AC_CONFIG_MACRO_DIR([scripts])
-
- AC_CANONICAL_HOST
-
-@@ -371,13 +371,15 @@
-
- AC_ARG_ENABLE(openssl,
- [ --enable-openssl enable support for openssl],
-- enable_openssl=$enableval,enable_openssl="yes")
-+ enable_openssl=$enableval,enable_openssl="auto")
-
--if test "$enable_openssl" = "yes" ; then
-- AC_CHECK_HEADERS(openssl/ssl.h)
-- AC_CHECK_LIB(ssl,SSL_CTX_new,[EXOSIP_LIB="$EXOSIP_LIB -lssl"])
-- AC_CHECK_LIB(crypto,X509_get_issuer_name,[EXOSIP_LIB="$EXOSIP_LIB -lcrypto"])
--fi
-+AS_IF([test "$enable_openssl" = "yes" -o "$enable_openssl" = "auto"],
-+ [PKG_CHECK_MODULES([SSL], [openssl],
-+ [EXOSIP_LIB="$EXOSIP_LIB $SSL_LIBS"],
-+ [AS_IF([test "$enable_openssl" = "yes"],
-+ [AC_MSG_ERROR([can not find openssl])])
-+ ])
-+ ])
-
- AC_ARG_ENABLE(srvrec,
- [ --enable-srvrec enable support for SRV records DNS queries (yes) ],
-diff -durN build/libeXosip2-3.6.0.orig/Makefile.am build/libeXosip2-3.6.0/Makefile.am
---- libeXosip2-3.6.0.orig/Makefile.am 2014-06-23 00:14:25.328226745 +0200
-+++ libeXosip2-3.6.0/Makefile.am 2014-06-23 00:14:38.296371236 +0200
-@@ -1,4 +1,4 @@
--
-+ACLOCAL_AMFLAGS = -I scripts
- EXTRA_DIST = README autogen.sh
-
- SUBDIRS = scripts platform src include tools help
--- /dev/null
+configure: on Linux, the BSD functions require linking against libbsd
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN libedit-20130712-3.1.orig/configure.ac libedit-20130712-3.1/configure.ac
+--- libedit-20130712-3.1.orig/configure.ac 2013-07-12 20:39:22.000000000 +0200
++++ libedit-20130712-3.1/configure.ac 2013-07-28 23:35:35.012676469 +0200
+@@ -108,6 +108,10 @@
+ #AC_FUNC_REALLOC
+ AC_TYPE_SIGNAL
+ AC_FUNC_STAT
++
++# Search for libbsd for *vis functions
++AC_CHECK_LIB([bsd], [vis])
++
+ AC_CHECK_FUNCS([endpwent isascii memchr memset re_comp regcomp strcasecmp strchr strcspn strdup strerror strrchr strstr strtol issetugid wcsdup strlcpy strlcat fgetln vis strvis strunvis __secure_getenv secure_getenv])
+
+ # strlcpy
+++ /dev/null
-configure: on Linux, the BSD functions require linking against libbsd
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN libedit-20130712-3.1.orig/configure.ac libedit-20130712-3.1/configure.ac
---- libedit-20130712-3.1.orig/configure.ac 2013-07-12 20:39:22.000000000 +0200
-+++ libedit-20130712-3.1/configure.ac 2013-07-28 23:35:35.012676469 +0200
-@@ -108,6 +108,10 @@
- #AC_FUNC_REALLOC
- AC_TYPE_SIGNAL
- AC_FUNC_STAT
-+
-+# Search for libbsd for *vis functions
-+AC_CHECK_LIB([bsd], [vis])
-+
- AC_CHECK_FUNCS([endpwent isascii memchr memset re_comp regcomp strcasecmp strchr strcspn strdup strerror strrchr strstr strtol issetugid wcsdup strlcpy strlcat fgetln vis strvis strunvis __secure_getenv secure_getenv])
-
- # strlcpy
--- /dev/null
+[PATCH] fix build with C++ support and gcc >= 4.4
+
+EOF is defined in stdio, so ensure it is included.
+
+Based on similar patch by Markus Rothe:
+http://comments.gmane.org/gmane.comp.web.fastcgi.devel/3205
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ libfcgi/fcgio.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: fcgi-2.4.0/libfcgi/fcgio.cpp
+===================================================================
+--- fcgi-2.4.0.orig/libfcgi/fcgio.cpp
++++ fcgi-2.4.0/libfcgi/fcgio.cpp
+@@ -22,6 +22,7 @@
+ #define DLLAPI __declspec(dllexport)
+ #endif
+
++#include <cstdio>
+ #include <limits.h>
+ #include "fcgio.h"
+
--- /dev/null
+Properly link libfcgi++ against libfcgi
+
+We cannot directly use -lfcgi to link libfcgi++ against libfcgi,
+because libfcgi is not installed at this time. Instead, we should rely
+on libtool doing the right thing, by specifying libfcgi.la in
+libfcgi++ LIBADD variable.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/libfcgi/Makefile.am
+===================================================================
+--- a/libfcgi/Makefile.am
++++ b/libfcgi/Makefile.am
+@@ -23,5 +23,6 @@
+ $(INCLUDEDIR)/fcgio.h \
+ fcgio.cpp
+ libfcgi___la_CFLAGS = @PTHREAD_CFLAGS@
+-libfcgi___la_LDFLAGS = -lfcgi -rpath @libdir@
++libfcgi___la_LIBADD = libfcgi.la
++libfcgi___la_LDFLAGS = -rpath @libdir@
--- /dev/null
+Link against math libraries when needed
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/cgi-fcgi/Makefile.am
+===================================================================
+--- a/cgi-fcgi/Makefile.am
++++ b/cgi-fcgi/Makefile.am
+@@ -11,5 +11,5 @@
+ LIBDIR = ../libfcgi
+ LIBFCGI = $(LIBDIR)/libfcgi.la
+
+-LDADD = $(LIBFCGI)
++LDADD = $(LIBFCGI) -lm
+ cgi_fcgi_SOURCES = $(INCLUDE_FILES) cgi-fcgi.c
+Index: b/examples/Makefile.am
+===================================================================
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -21,7 +21,7 @@
+ LIBDIR = ../libfcgi
+ LIBFCGI = $(LIBDIR)/libfcgi.la
+
+-LDADD = $(LIBFCGI)
++LDADD = $(LIBFCGI) -lm
+
+ echo_SOURCES = $(INCLUDE_FILES) echo.c
+ echo_x_SOURCES = $(INCLUDE_FILES) echo-x.c
--- /dev/null
+Make the package autoreconfigurable
+
+Adjust minor details in Makefile.am and configure.in in order to make
+the package compatible with the autoconf/automake versions we are
+using in Buildroot.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/cgi-fcgi/Makefile.am
+===================================================================
+--- a/cgi-fcgi/Makefile.am
++++ b/cgi-fcgi/Makefile.am
+@@ -2,7 +2,7 @@
+ bin_PROGRAMS = cgi-fcgi
+
+ INCLUDEDIR = ../include
+-CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
+
+ INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h \
+ $(INCLUDEDIR)/fcgiapp.h \
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -4,12 +4,13 @@
+ dnl generate the file "configure", which is run during the build
+ dnl to configure the system for the local environment.
+
+-AC_INIT
+-AM_INIT_AUTOMAKE(fcgi, 2.4.0)
++AC_INIT([fcgi], [2.4.0])
++AM_INIT_AUTOMAKE([foreign])
+
+ AM_CONFIG_HEADER(fcgi_config.h)
+
+ AC_PROG_CC
++AC_PROG_CC_C_O
+ AC_PROG_CPP
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
+Index: b/examples/Makefile.am
+===================================================================
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -11,7 +11,7 @@
+ EXTRA_PROGRAMS = threaded echo-cpp
+
+ INCLUDEDIR = ../include
+-CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
+
+ INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h \
+ $(INCLUDEDIR)/fcgiapp.h \
+Index: b/libfcgi/Makefile.am
+===================================================================
+--- a/libfcgi/Makefile.am
++++ b/libfcgi/Makefile.am
+@@ -1,7 +1,7 @@
+ # $Id: Makefile.am,v 1.9 2001/12/22 03:16:20 robs Exp $
+
+ INCLUDEDIR = ../include
+-CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
++AM_CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
+
+ INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h \
+ $(INCLUDEDIR)/fcgiapp.h \
--- /dev/null
+Common subdirectories: libfcgi-2.4.0.orig/cgi-fcgi and libfcgi-2.4.0/cgi-fcgi
+Common subdirectories: libfcgi-2.4.0.orig/doc and libfcgi-2.4.0/doc
+Common subdirectories: libfcgi-2.4.0.orig/examples and libfcgi-2.4.0/examples
+Common subdirectories: libfcgi-2.4.0.orig/images and libfcgi-2.4.0/images
+Common subdirectories: libfcgi-2.4.0.orig/include and libfcgi-2.4.0/include
+Common subdirectories: libfcgi-2.4.0.orig/java and libfcgi-2.4.0/java
+Common subdirectories: libfcgi-2.4.0.orig/libfcgi and libfcgi-2.4.0/libfcgi
+diff -du libfcgi-2.4.0.orig/Makefile.am libfcgi-2.4.0/Makefile.am
+--- libfcgi-2.4.0.orig/Makefile.am 2001-12-22 14:05:39.000000000 +0100
++++ libfcgi-2.4.0/Makefile.am 2014-07-19 16:56:21.935216540 +0200
+@@ -4,7 +4,7 @@
+ # $Id: Makefile.am,v 1.7 2001/12/22 13:05:39 robs Exp $
+ #
+
+-SUBDIRS = libfcgi cgi-fcgi examples include
++SUBDIRS = libfcgi cgi-fcgi include
+
+ include_HEADERS = fcgi_config.h
+
+Common subdirectories: libfcgi-2.4.0.orig/perl and libfcgi-2.4.0/perl
+Common subdirectories: libfcgi-2.4.0.orig/Win32 and libfcgi-2.4.0/Win32
+++ /dev/null
-[PATCH] fix build with C++ support and gcc >= 4.4
-
-EOF is defined in stdio, so ensure it is included.
-
-Based on similar patch by Markus Rothe:
-http://comments.gmane.org/gmane.comp.web.fastcgi.devel/3205
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- libfcgi/fcgio.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: fcgi-2.4.0/libfcgi/fcgio.cpp
-===================================================================
---- fcgi-2.4.0.orig/libfcgi/fcgio.cpp
-+++ fcgi-2.4.0/libfcgi/fcgio.cpp
-@@ -22,6 +22,7 @@
- #define DLLAPI __declspec(dllexport)
- #endif
-
-+#include <cstdio>
- #include <limits.h>
- #include "fcgio.h"
-
+++ /dev/null
-Properly link libfcgi++ against libfcgi
-
-We cannot directly use -lfcgi to link libfcgi++ against libfcgi,
-because libfcgi is not installed at this time. Instead, we should rely
-on libtool doing the right thing, by specifying libfcgi.la in
-libfcgi++ LIBADD variable.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/libfcgi/Makefile.am
-===================================================================
---- a/libfcgi/Makefile.am
-+++ b/libfcgi/Makefile.am
-@@ -23,5 +23,6 @@
- $(INCLUDEDIR)/fcgio.h \
- fcgio.cpp
- libfcgi___la_CFLAGS = @PTHREAD_CFLAGS@
--libfcgi___la_LDFLAGS = -lfcgi -rpath @libdir@
-+libfcgi___la_LIBADD = libfcgi.la
-+libfcgi___la_LDFLAGS = -rpath @libdir@
+++ /dev/null
-Link against math libraries when needed
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/cgi-fcgi/Makefile.am
-===================================================================
---- a/cgi-fcgi/Makefile.am
-+++ b/cgi-fcgi/Makefile.am
-@@ -11,5 +11,5 @@
- LIBDIR = ../libfcgi
- LIBFCGI = $(LIBDIR)/libfcgi.la
-
--LDADD = $(LIBFCGI)
-+LDADD = $(LIBFCGI) -lm
- cgi_fcgi_SOURCES = $(INCLUDE_FILES) cgi-fcgi.c
-Index: b/examples/Makefile.am
-===================================================================
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -21,7 +21,7 @@
- LIBDIR = ../libfcgi
- LIBFCGI = $(LIBDIR)/libfcgi.la
-
--LDADD = $(LIBFCGI)
-+LDADD = $(LIBFCGI) -lm
-
- echo_SOURCES = $(INCLUDE_FILES) echo.c
- echo_x_SOURCES = $(INCLUDE_FILES) echo-x.c
+++ /dev/null
-Make the package autoreconfigurable
-
-Adjust minor details in Makefile.am and configure.in in order to make
-the package compatible with the autoconf/automake versions we are
-using in Buildroot.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/cgi-fcgi/Makefile.am
-===================================================================
---- a/cgi-fcgi/Makefile.am
-+++ b/cgi-fcgi/Makefile.am
-@@ -2,7 +2,7 @@
- bin_PROGRAMS = cgi-fcgi
-
- INCLUDEDIR = ../include
--CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
-+AM_CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
-
- INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h \
- $(INCLUDEDIR)/fcgiapp.h \
-Index: b/configure.in
-===================================================================
---- a/configure.in
-+++ b/configure.in
-@@ -4,12 +4,13 @@
- dnl generate the file "configure", which is run during the build
- dnl to configure the system for the local environment.
-
--AC_INIT
--AM_INIT_AUTOMAKE(fcgi, 2.4.0)
-+AC_INIT([fcgi], [2.4.0])
-+AM_INIT_AUTOMAKE([foreign])
-
- AM_CONFIG_HEADER(fcgi_config.h)
-
- AC_PROG_CC
-+AC_PROG_CC_C_O
- AC_PROG_CPP
- AC_PROG_INSTALL
- AC_PROG_LIBTOOL
-Index: b/examples/Makefile.am
-===================================================================
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -11,7 +11,7 @@
- EXTRA_PROGRAMS = threaded echo-cpp
-
- INCLUDEDIR = ../include
--CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
-+AM_CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
-
- INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h \
- $(INCLUDEDIR)/fcgiapp.h \
-Index: b/libfcgi/Makefile.am
-===================================================================
---- a/libfcgi/Makefile.am
-+++ b/libfcgi/Makefile.am
-@@ -1,7 +1,7 @@
- # $Id: Makefile.am,v 1.9 2001/12/22 03:16:20 robs Exp $
-
- INCLUDEDIR = ../include
--CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
-+AM_CPPFLAGS = @CPPFLAGS@ -I$(top_srcdir)/include
-
- INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h \
- $(INCLUDEDIR)/fcgiapp.h \
+++ /dev/null
-Common subdirectories: libfcgi-2.4.0.orig/cgi-fcgi and libfcgi-2.4.0/cgi-fcgi
-Common subdirectories: libfcgi-2.4.0.orig/doc and libfcgi-2.4.0/doc
-Common subdirectories: libfcgi-2.4.0.orig/examples and libfcgi-2.4.0/examples
-Common subdirectories: libfcgi-2.4.0.orig/images and libfcgi-2.4.0/images
-Common subdirectories: libfcgi-2.4.0.orig/include and libfcgi-2.4.0/include
-Common subdirectories: libfcgi-2.4.0.orig/java and libfcgi-2.4.0/java
-Common subdirectories: libfcgi-2.4.0.orig/libfcgi and libfcgi-2.4.0/libfcgi
-diff -du libfcgi-2.4.0.orig/Makefile.am libfcgi-2.4.0/Makefile.am
---- libfcgi-2.4.0.orig/Makefile.am 2001-12-22 14:05:39.000000000 +0100
-+++ libfcgi-2.4.0/Makefile.am 2014-07-19 16:56:21.935216540 +0200
-@@ -4,7 +4,7 @@
- # $Id: Makefile.am,v 1.7 2001/12/22 13:05:39 robs Exp $
- #
-
--SUBDIRS = libfcgi cgi-fcgi examples include
-+SUBDIRS = libfcgi cgi-fcgi include
-
- include_HEADERS = fcgi_config.h
-
-Common subdirectories: libfcgi-2.4.0.orig/perl and libfcgi-2.4.0/perl
-Common subdirectories: libfcgi-2.4.0.orig/Win32 and libfcgi-2.4.0/Win32
--- /dev/null
+From 102c02de867bfe831b5366c89d66bcf170db962e Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Thu, 7 Feb 2013 22:26:56 +0100
+Subject: [PATCH] Fix installation location of libffi
+
+The libffi is currently declared as toolexeclib_LTLIBRARIES. In many
+cases, toolexeclib libraries will be installed in /usr/lib, so it
+doesn't make any difference.
+
+However, with multilib toolchains, they get installed in a
+subdirectory of /usr/lib/. For example, with a Sourcery CodeBench
+PowerPC toolchain, if the e500mc multilib variant is used, the libffi
+library gets installed in /usr/lib/te500mc/. This is due to the
+following code in the configure script:
+
+ multi_os_directory=`$CC -print-multi-os-directory`
+ case $multi_os_directory in
+ .) ;; # Avoid trailing /.
+ *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
+ esac
+
+Once the library is installed in /usr/lib/te500mc/, nothing works
+because this installation location is inconsistent with the
+installation location declared in libffi.pc.
+
+So, instead of using this bizarre toolexeclib_LTLIBRARIES, simply use
+the more standard lib_LTLIBRARIES, which ensures that the libffi
+library is always installed in /usr/lib.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 6f669ca..b60bcc1 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -93,7 +93,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
+
+ MAKEOVERRIDES=
+
+-toolexeclib_LTLIBRARIES = libffi.la
++lib_LTLIBRARIES = libffi.la
+ noinst_LTLIBRARIES = libffi_convenience.la
+
+ libffi_la_SOURCES = src/prep_cif.c src/types.c \
+--
+1.7.9.5
+
--- /dev/null
+Newer MIPS toolchains use a different (compact) eh_frame format.
+libffi don't like them, so we have to switch to the older format.
+
+This patch add -mno-compact-eh to CFLAGS when compiling for
+Mips and compiler support it.
+
+Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
+
+--- a/configure.ac 2013-08-08 14:53:11.884267155 +0200
++++ b/configure.ac 2013-08-08 14:54:14.437493244 +0200
+@@ -430,6 +430,16 @@
+ AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1)
+ AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE)
+
++if test x$TARGET = xMIPS; then
++ save_CFLAGS="$CFLAGS"
++ CFLAGS=-mno-compact-eh
++ AC_MSG_CHECKING([whether the C compiler needs -mno-compact-eh])
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
++ [AC_MSG_RESULT([yes])]; [save_CFLAGS="$save_CFLAGS -mno-compact-eh"],
++ [AC_MSG_RESULT([no])])
++ CFLAGS="$save_CFLAGS"
++fi
++
+ if test x$TARGET = xX86_64; then
+ AC_CACHE_CHECK([assembler supports unwind section type],
+ libffi_cv_as_x86_64_unwind_section_type, [
--- /dev/null
+From cbc5a3c0200aa6c2cf8d6798d69a21501557c83f Mon Sep 17 00:00:00 2001
+From: Ryan Hill <rhill@gentoo.org>
+Date: Sat, 31 May 2014 08:26:34 -0400
+Subject: [PATCH 05/10] Fix typo
+
+This patch was borrowed from upstream, commit
+cbc5a3c0200aa6c2cf8d6798d69a21501557c83f, and will be part of the next
+3.1.1 release.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ include/ffi.h.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/include/ffi.h.in b/include/ffi.h.in
+index 93c776f..70c6179 100644
+--- a/include/ffi.h.in
++++ b/include/ffi.h.in
+@@ -1,5 +1,5 @@
+ /* -----------------------------------------------------------------*-C-*-
+- libffi @VERSION@ - Copyright (c) 2011 Anthony Green
++ libffi @VERSION@ - Copyright (c) 2011, 2014 Anthony Green
+ - Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
+
+ Permission is hereby granted, free of charge, to any person
+@@ -221,10 +221,10 @@ typedef struct {
+ #endif
+ } ffi_cif;
+
+-#if HAVE_LONG_DOUBLE_VARIANT
++#if @HAVE_LONG_DOUBLE_VARIANT@
+ /* Used to adjust size/alignment of ffi types. */
+ void ffi_prep_types (ffi_abi abi);
+-# endif
++#endif
+
+ /* Used internally, but overridden by some architectures */
+ ffi_status ffi_prep_cif_core(ffi_cif *cif,
+--
+2.0.0
+
--- /dev/null
+From 978c9540154d320525488db1b7049277122f736d Mon Sep 17 00:00:00 2001
+From: Samuli Suominen <ssuominen@gentoo.org>
+Date: Sat, 31 May 2014 08:53:10 -0400
+Subject: [PATCH 06/10] Add missing GNU stack markings in win32.S
+
+This patch was borrowed from upstream, commit
+978c9540154d320525488db1b7049277122f736d, and will be part of the next
+3.1.1 release.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ src/x86/win32.S | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/x86/win32.S b/src/x86/win32.S
+index daf0e79..e42baf2 100644
+--- a/src/x86/win32.S
++++ b/src/x86/win32.S
+@@ -1,5 +1,6 @@
+ /* -----------------------------------------------------------------------
+- win32.S - Copyright (c) 1996, 1998, 2001, 2002, 2009 Red Hat, Inc.
++ win32.S - Copyright (c) 2014 Anthony Green
++ Copyright (c) 1996, 1998, 2001, 2002, 2009 Red Hat, Inc.
+ Copyright (c) 2001 John Beniton
+ Copyright (c) 2002 Ranjit Mathew
+ Copyright (c) 2009 Daniel Witte
+@@ -1304,3 +1305,6 @@ L_ffi_closure_SYSV_inner$stub:
+
+ #endif /* !_MSC_VER */
+
++#if defined __ELF__ && defined __linux__
++ .section .note.GNU-stack,"",@progbits
++#endif
+--
+2.0.0
+
--- /dev/null
+From ad0d1d239afc7ad09203847793dcc020856d1035 Mon Sep 17 00:00:00 2001
+From: Samuli Suominen <ssuominen@gentoo.org>
+Date: Thu, 12 Jun 2014 06:30:21 -0400
+Subject: [PATCH 09/10] Fix paths in libffi.pc.in
+
+This patch was borrowed from upstream, commit
+ad0d1d239afc7ad09203847793dcc020856d1035, and will be part of the next
+3.1.1 release.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.ac | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4f7fe3f..bbc1a9d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -590,11 +590,11 @@ AC_ARG_ENABLE(purify-safety,
+ if test "x$GCC" = "xyes"; then
+ if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+- toolexecdir='$(exec_prefix)/$(target_alias)'
+- toolexeclibdir='$(toolexecdir)/lib'
++ toolexecdir="${exec_prefix}"/'$(target_alias)'
++ toolexeclibdir="${toolexecdir}"/lib
+ else
+- toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+- toolexeclibdir='$(libdir)'
++ toolexecdir="${libdir}"/gcc-lib/'$(target_alias)'
++ toolexeclibdir="${libdir}"
+ fi
+ multi_os_directory=`$CC $CFLAGS -print-multi-os-directory`
+ case $multi_os_directory in
+@@ -603,7 +603,7 @@ if test "x$GCC" = "xyes"; then
+ esac
+ AC_SUBST(toolexecdir)
+ else
+- toolexeclibdir='$(libdir)'
++ toolexeclibdir="${libdir}"
+ fi
+ AC_SUBST(toolexeclibdir)
+
+--
+2.0.0
+
+++ /dev/null
-From 102c02de867bfe831b5366c89d66bcf170db962e Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Thu, 7 Feb 2013 22:26:56 +0100
-Subject: [PATCH] Fix installation location of libffi
-
-The libffi is currently declared as toolexeclib_LTLIBRARIES. In many
-cases, toolexeclib libraries will be installed in /usr/lib, so it
-doesn't make any difference.
-
-However, with multilib toolchains, they get installed in a
-subdirectory of /usr/lib/. For example, with a Sourcery CodeBench
-PowerPC toolchain, if the e500mc multilib variant is used, the libffi
-library gets installed in /usr/lib/te500mc/. This is due to the
-following code in the configure script:
-
- multi_os_directory=`$CC -print-multi-os-directory`
- case $multi_os_directory in
- .) ;; # Avoid trailing /.
- *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
- esac
-
-Once the library is installed in /usr/lib/te500mc/, nothing works
-because this installation location is inconsistent with the
-installation location declared in libffi.pc.
-
-So, instead of using this bizarre toolexeclib_LTLIBRARIES, simply use
-the more standard lib_LTLIBRARIES, which ensures that the libffi
-library is always installed in /usr/lib.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 6f669ca..b60bcc1 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -93,7 +93,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
-
- MAKEOVERRIDES=
-
--toolexeclib_LTLIBRARIES = libffi.la
-+lib_LTLIBRARIES = libffi.la
- noinst_LTLIBRARIES = libffi_convenience.la
-
- libffi_la_SOURCES = src/prep_cif.c src/types.c \
---
-1.7.9.5
-
+++ /dev/null
-Newer MIPS toolchains use a different (compact) eh_frame format.
-libffi don't like them, so we have to switch to the older format.
-
-This patch add -mno-compact-eh to CFLAGS when compiling for
-Mips and compiler support it.
-
-Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
-
---- a/configure.ac 2013-08-08 14:53:11.884267155 +0200
-+++ b/configure.ac 2013-08-08 14:54:14.437493244 +0200
-@@ -430,6 +430,16 @@
- AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1)
- AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE)
-
-+if test x$TARGET = xMIPS; then
-+ save_CFLAGS="$CFLAGS"
-+ CFLAGS=-mno-compact-eh
-+ AC_MSG_CHECKING([whether the C compiler needs -mno-compact-eh])
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
-+ [AC_MSG_RESULT([yes])]; [save_CFLAGS="$save_CFLAGS -mno-compact-eh"],
-+ [AC_MSG_RESULT([no])])
-+ CFLAGS="$save_CFLAGS"
-+fi
-+
- if test x$TARGET = xX86_64; then
- AC_CACHE_CHECK([assembler supports unwind section type],
- libffi_cv_as_x86_64_unwind_section_type, [
+++ /dev/null
-From cbc5a3c0200aa6c2cf8d6798d69a21501557c83f Mon Sep 17 00:00:00 2001
-From: Ryan Hill <rhill@gentoo.org>
-Date: Sat, 31 May 2014 08:26:34 -0400
-Subject: [PATCH 05/10] Fix typo
-
-This patch was borrowed from upstream, commit
-cbc5a3c0200aa6c2cf8d6798d69a21501557c83f, and will be part of the next
-3.1.1 release.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- include/ffi.h.in | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/include/ffi.h.in b/include/ffi.h.in
-index 93c776f..70c6179 100644
---- a/include/ffi.h.in
-+++ b/include/ffi.h.in
-@@ -1,5 +1,5 @@
- /* -----------------------------------------------------------------*-C-*-
-- libffi @VERSION@ - Copyright (c) 2011 Anthony Green
-+ libffi @VERSION@ - Copyright (c) 2011, 2014 Anthony Green
- - Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
-
- Permission is hereby granted, free of charge, to any person
-@@ -221,10 +221,10 @@ typedef struct {
- #endif
- } ffi_cif;
-
--#if HAVE_LONG_DOUBLE_VARIANT
-+#if @HAVE_LONG_DOUBLE_VARIANT@
- /* Used to adjust size/alignment of ffi types. */
- void ffi_prep_types (ffi_abi abi);
--# endif
-+#endif
-
- /* Used internally, but overridden by some architectures */
- ffi_status ffi_prep_cif_core(ffi_cif *cif,
---
-2.0.0
-
+++ /dev/null
-From 978c9540154d320525488db1b7049277122f736d Mon Sep 17 00:00:00 2001
-From: Samuli Suominen <ssuominen@gentoo.org>
-Date: Sat, 31 May 2014 08:53:10 -0400
-Subject: [PATCH 06/10] Add missing GNU stack markings in win32.S
-
-This patch was borrowed from upstream, commit
-978c9540154d320525488db1b7049277122f736d, and will be part of the next
-3.1.1 release.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- src/x86/win32.S | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/x86/win32.S b/src/x86/win32.S
-index daf0e79..e42baf2 100644
---- a/src/x86/win32.S
-+++ b/src/x86/win32.S
-@@ -1,5 +1,6 @@
- /* -----------------------------------------------------------------------
-- win32.S - Copyright (c) 1996, 1998, 2001, 2002, 2009 Red Hat, Inc.
-+ win32.S - Copyright (c) 2014 Anthony Green
-+ Copyright (c) 1996, 1998, 2001, 2002, 2009 Red Hat, Inc.
- Copyright (c) 2001 John Beniton
- Copyright (c) 2002 Ranjit Mathew
- Copyright (c) 2009 Daniel Witte
-@@ -1304,3 +1305,6 @@ L_ffi_closure_SYSV_inner$stub:
-
- #endif /* !_MSC_VER */
-
-+#if defined __ELF__ && defined __linux__
-+ .section .note.GNU-stack,"",@progbits
-+#endif
---
-2.0.0
-
+++ /dev/null
-From ad0d1d239afc7ad09203847793dcc020856d1035 Mon Sep 17 00:00:00 2001
-From: Samuli Suominen <ssuominen@gentoo.org>
-Date: Thu, 12 Jun 2014 06:30:21 -0400
-Subject: [PATCH 09/10] Fix paths in libffi.pc.in
-
-This patch was borrowed from upstream, commit
-ad0d1d239afc7ad09203847793dcc020856d1035, and will be part of the next
-3.1.1 release.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- configure.ac | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 4f7fe3f..bbc1a9d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -590,11 +590,11 @@ AC_ARG_ENABLE(purify-safety,
- if test "x$GCC" = "xyes"; then
- if test -n "$with_cross_host" &&
- test x"$with_cross_host" != x"no"; then
-- toolexecdir='$(exec_prefix)/$(target_alias)'
-- toolexeclibdir='$(toolexecdir)/lib'
-+ toolexecdir="${exec_prefix}"/'$(target_alias)'
-+ toolexeclibdir="${toolexecdir}"/lib
- else
-- toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-- toolexeclibdir='$(libdir)'
-+ toolexecdir="${libdir}"/gcc-lib/'$(target_alias)'
-+ toolexeclibdir="${libdir}"
- fi
- multi_os_directory=`$CC $CFLAGS -print-multi-os-directory`
- case $multi_os_directory in
-@@ -603,7 +603,7 @@ if test "x$GCC" = "xyes"; then
- esac
- AC_SUBST(toolexecdir)
- else
-- toolexeclibdir='$(libdir)'
-+ toolexeclibdir="${libdir}"
- fi
- AC_SUBST(toolexeclibdir)
-
---
-2.0.0
-
--- /dev/null
+From 7ca66c10c05168c7d342df7c7a70d4a1ae0629f7 Mon Sep 17 00:00:00 2001
+From: Eric Nelson <eric.nelson@boundarydevices.com>
+Date: Sat, 28 Jun 2014 09:45:09 -0700
+Subject: [PATCH] vpu_wrapper: fix tests of return value from IOGetVirtMem
+
+IOGetVirtMem() returns a pointer or specifically -1 (MAP_FAILED)
+in the case of failure.
+
+This problem is being discussed upstream at
+https://lists.yoctoproject.org/pipermail/meta-freescale/2014-June/008993.html.
+
+Upstream-Status: Pending
+
+Signed-off-by: Laci Tele <laci@boundarydevices.com>
+Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
+---
+ vpu_wrapper.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/vpu_wrapper.c b/vpu_wrapper.c
+index 9249174..148c5df 100755
+--- a/vpu_wrapper.c
++++ b/vpu_wrapper.c
+@@ -6653,7 +6653,7 @@ VpuDecRetCode VPU_DecGetMem(VpuMemDesc* pInOutMem)
+ return VPU_DEC_RET_FAILURE;
+ }
+ ret=IOGetVirtMem(&buff);
+- if(ret==0) //if(ret!=RETCODE_SUCCESS)
++ if(ret == -1) //if(ret==MAP_FAILED)
+ {
+ VPU_ERROR("%s: get virtual memory failure: size=%d, ret=%d \r\n",__FUNCTION__,buff.size,ret);
+ return VPU_DEC_RET_FAILURE;
+@@ -8277,7 +8277,7 @@ VpuEncRetCode VPU_EncGetMem(VpuMemDesc* pInOutMem)
+ return VPU_ENC_RET_FAILURE;
+ }
+ ret=IOGetVirtMem(&buff);
+- if(ret==0) //if(ret!=RETCODE_SUCCESS)
++ if(ret == -1) //if(ret==MAP_FAILED)
+ {
+ VPU_ENC_ERROR("%s: get virtual memory failure: size=%d, ret=%d \r\n",__FUNCTION__,buff.size,(UINT32)ret);
+ return VPU_ENC_RET_FAILURE;
+--
+1.9.1
+
+++ /dev/null
-From 7ca66c10c05168c7d342df7c7a70d4a1ae0629f7 Mon Sep 17 00:00:00 2001
-From: Eric Nelson <eric.nelson@boundarydevices.com>
-Date: Sat, 28 Jun 2014 09:45:09 -0700
-Subject: [PATCH] vpu_wrapper: fix tests of return value from IOGetVirtMem
-
-IOGetVirtMem() returns a pointer or specifically -1 (MAP_FAILED)
-in the case of failure.
-
-This problem is being discussed upstream at
-https://lists.yoctoproject.org/pipermail/meta-freescale/2014-June/008993.html.
-
-Upstream-Status: Pending
-
-Signed-off-by: Laci Tele <laci@boundarydevices.com>
-Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
----
- vpu_wrapper.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/vpu_wrapper.c b/vpu_wrapper.c
-index 9249174..148c5df 100755
---- a/vpu_wrapper.c
-+++ b/vpu_wrapper.c
-@@ -6653,7 +6653,7 @@ VpuDecRetCode VPU_DecGetMem(VpuMemDesc* pInOutMem)
- return VPU_DEC_RET_FAILURE;
- }
- ret=IOGetVirtMem(&buff);
-- if(ret==0) //if(ret!=RETCODE_SUCCESS)
-+ if(ret == -1) //if(ret==MAP_FAILED)
- {
- VPU_ERROR("%s: get virtual memory failure: size=%d, ret=%d \r\n",__FUNCTION__,buff.size,ret);
- return VPU_DEC_RET_FAILURE;
-@@ -8277,7 +8277,7 @@ VpuEncRetCode VPU_EncGetMem(VpuMemDesc* pInOutMem)
- return VPU_ENC_RET_FAILURE;
- }
- ret=IOGetVirtMem(&buff);
-- if(ret==0) //if(ret!=RETCODE_SUCCESS)
-+ if(ret == -1) //if(ret==MAP_FAILED)
- {
- VPU_ENC_ERROR("%s: get virtual memory failure: size=%d, ret=%d \r\n",__FUNCTION__,buff.size,(UINT32)ret);
- return VPU_ENC_RET_FAILURE;
---
-1.9.1
-
--- /dev/null
+Fix build on the AArch64 platform
+
+Upstream-Status: Submitted
+
+Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
+
+--- a/include/fuse_kernel.h
++++ b/include/fuse_kernel.h
+@@ -88,12 +88,7 @@
+ #ifndef _LINUX_FUSE_H
+ #define _LINUX_FUSE_H
+
+-#include <sys/types.h>
+-#define __u64 uint64_t
+-#define __s64 int64_t
+-#define __u32 uint32_t
+-#define __s32 int32_t
+-#define __u16 uint16_t
++#include <linux/types.h>
+
+ /*
+ * Version negotiation:
+++ /dev/null
-Fix build on the AArch64 platform
-
-Upstream-Status: Submitted
-
-Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
-
---- a/include/fuse_kernel.h
-+++ b/include/fuse_kernel.h
-@@ -88,12 +88,7 @@
- #ifndef _LINUX_FUSE_H
- #define _LINUX_FUSE_H
-
--#include <sys/types.h>
--#define __u64 uint64_t
--#define __s64 int64_t
--#define __u32 uint32_t
--#define __s32 int32_t
--#define __u16 uint16_t
-+#include <linux/types.h>
-
- /*
- * Version negotiation:
--- /dev/null
+From cca72c48b5643fa62e1d55b7b181e147f5ba7fe9 Mon Sep 17 00:00:00 2001
+From: Lionel Landwerlin <llandwerlin@gmail.com>
+Date: Sun, 28 Mar 2010 21:47:38 +0200
+Subject: [PATCH] Relax X11 dependency
+
+Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
+---
+ configure.in | 4 +++-
+ gail/gailwindow.c | 2 +-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 3801655..abaf417 100644
+--- a/configure.in
++++ b/configure.in
+@@ -86,7 +86,9 @@ GTK_REQUIRED_VERSION=2.9.4
+ PKG_CHECK_MODULES(DEP, $ATK_PACKAGES >= $ATK_REQUIRED_VERSION \
+ $GTK_PACKAGES >= $GTK_REQUIRED_VERSION)
+
+-if test "$gail_native_win32" != "yes"; then
++AC_ARG_ENABLE(x, [ --disable-x disable x11 backend ],x11_backend=no,x11_backend=yes)
++
++if test "$gail_native_win32" != "yes" -a "$x11_backend" != "no"; then
+
+ PKG_CHECK_MODULES(X, x11, :, [
+ # pkg-config modules not found (only present since X11R7 aka Xorg); use
+diff --git a/gail/gailwindow.c b/gail/gailwindow.c
+index 616b25e..add454b 100644
+--- a/gail/gailwindow.c
++++ b/gail/gailwindow.c
+@@ -1071,7 +1071,7 @@ gail_window_get_mdi_zorder (AtkComponent *component)
+ return get_window_zorder (widget->window);
+ }
+
+-#elif defined (GDK_WINDOWING_WIN32)
++#elif defined (GDK_WINDOWING_WIN32) || defined (GDK_WINDOWING_DIRECTFB)
+
+ static gint
+ gail_window_get_mdi_zorder (AtkComponent *component)
+--
+1.7.0.2
+
+++ /dev/null
-From cca72c48b5643fa62e1d55b7b181e147f5ba7fe9 Mon Sep 17 00:00:00 2001
-From: Lionel Landwerlin <llandwerlin@gmail.com>
-Date: Sun, 28 Mar 2010 21:47:38 +0200
-Subject: [PATCH] Relax X11 dependency
-
-Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
----
- configure.in | 4 +++-
- gail/gailwindow.c | 2 +-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 3801655..abaf417 100644
---- a/configure.in
-+++ b/configure.in
-@@ -86,7 +86,9 @@ GTK_REQUIRED_VERSION=2.9.4
- PKG_CHECK_MODULES(DEP, $ATK_PACKAGES >= $ATK_REQUIRED_VERSION \
- $GTK_PACKAGES >= $GTK_REQUIRED_VERSION)
-
--if test "$gail_native_win32" != "yes"; then
-+AC_ARG_ENABLE(x, [ --disable-x disable x11 backend ],x11_backend=no,x11_backend=yes)
-+
-+if test "$gail_native_win32" != "yes" -a "$x11_backend" != "no"; then
-
- PKG_CHECK_MODULES(X, x11, :, [
- # pkg-config modules not found (only present since X11R7 aka Xorg); use
-diff --git a/gail/gailwindow.c b/gail/gailwindow.c
-index 616b25e..add454b 100644
---- a/gail/gailwindow.c
-+++ b/gail/gailwindow.c
-@@ -1071,7 +1071,7 @@ gail_window_get_mdi_zorder (AtkComponent *component)
- return get_window_zorder (widget->window);
- }
-
--#elif defined (GDK_WINDOWING_WIN32)
-+#elif defined (GDK_WINDOWING_WIN32) || defined (GDK_WINDOWING_DIRECTFB)
-
- static gint
- gail_window_get_mdi_zorder (AtkComponent *component)
---
-1.7.0.2
-
--- /dev/null
+From 9cbd876ebc6ef8cbe647d4a914d03f527f822424 Mon Sep 17 00:00:00 2001
+Message-Id: <9cbd876ebc6ef8cbe647d4a914d03f527f822424.1398253762.git.baruch@tkos.co.il>
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Wed, 23 Apr 2014 14:42:21 +0300
+Subject: [PATCH] Fix build on Linux/x86_64 under uClibc
+
+* include/private/gcconfig.h (GETCONTEXT_FPU_EXCMASK_BUG): don't define for
+uClibc, as it may not have fenv.h
+
+Patch status: sent upstream
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+ include/private/gcconfig.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
+index de7998be0f54..f866cc4ed8cc 100644
+--- a/include/private/gcconfig.h
++++ b/include/private/gcconfig.h
+@@ -2235,7 +2235,7 @@
+ extern int etext[];
+ # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
+ # endif
+-# if defined(__GLIBC__)
++# if defined(__GLIBC__) && !defined(__UCLIBC__)
+ /* At present, there's a bug in GLibc getcontext() on */
+ /* Linux/x64 (it clears FPU exception mask). We define this */
+ /* macro to workaround it. */
+--
+1.9.2
+
+++ /dev/null
-From 9cbd876ebc6ef8cbe647d4a914d03f527f822424 Mon Sep 17 00:00:00 2001
-Message-Id: <9cbd876ebc6ef8cbe647d4a914d03f527f822424.1398253762.git.baruch@tkos.co.il>
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Wed, 23 Apr 2014 14:42:21 +0300
-Subject: [PATCH] Fix build on Linux/x86_64 under uClibc
-
-* include/private/gcconfig.h (GETCONTEXT_FPU_EXCMASK_BUG): don't define for
-uClibc, as it may not have fenv.h
-
-Patch status: sent upstream
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- include/private/gcconfig.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
-index de7998be0f54..f866cc4ed8cc 100644
---- a/include/private/gcconfig.h
-+++ b/include/private/gcconfig.h
-@@ -2235,7 +2235,7 @@
- extern int etext[];
- # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
- # endif
--# if defined(__GLIBC__)
-+# if defined(__GLIBC__) && !defined(__UCLIBC__)
- /* At present, there's a bug in GLibc getcontext() on */
- /* Linux/x64 (it clears FPU exception mask). We define this */
- /* macro to workaround it. */
---
-1.9.2
-
--- /dev/null
+diff --git a/acinclude.m4 b/acinclude.m4
+index a7bc0fa..1a5bffc 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -76,13 +76,14 @@ case "${host}" in
+ i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp)
+ ac_cv_sys_symbol_underscore=yes
+ ;;
+- *)
+- if test "$cross_compiling" = yes; then
+- if test "x$ac_cv_sys_symbol_underscore" = x ; then
+- ac_cv_sys_symbol_underscore=yes
+- fi
+- else
+- tmp_do_check="yes"
++ *) if test -z "$ac_cv_sys_symbol_underscore"; then
++ if test "$cross_compiling" = yes; then
++ if test "x$ac_cv_sys_symbol_underscore" = x ; then
++ ac_cv_sys_symbol_underscore=yes
++ fi
++ else
++ tmp_do_check="yes"
++ fi
+ fi
+ ;;
+ esac
+
--- /dev/null
+diff --git a/configure b/configure
+index 70a6d50..8f55d95 100755
+--- a/configure
++++ b/configure
+@@ -22306,14 +22306,15 @@ case "${host}" in
+ i386-emx-os2 | i345686-pc-os2*emx | i386-pc-msdosdjgpp)
+ ac_cv_sys_symbol_underscore=yes
+ ;;
+- *)
+- if test "$cross_compiling" = yes; then
+- if test "x$ac_cv_sys_symbol_underscore" = x ; then
+- ac_cv_sys_symbol_underscore=yes
++ *)if test -z "$ac_cv_sys_symbol_underscore";then
++ if test "$cross_compiling" = yes; then
++ if test "x$ac_cv_sys_symbol_underscore" = x ; then
++ ac_cv_sys_symbol_underscore=yes
++ fi
++ else
++ tmp_do_check="yes"
++ fi
+ fi
+- else
+- tmp_do_check="yes"
+- fi
+ ;;
+ esac
+ if test "$tmp_do_check" = "yes"; then
+++ /dev/null
-diff --git a/acinclude.m4 b/acinclude.m4
-index a7bc0fa..1a5bffc 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -76,13 +76,14 @@ case "${host}" in
- i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp)
- ac_cv_sys_symbol_underscore=yes
- ;;
-- *)
-- if test "$cross_compiling" = yes; then
-- if test "x$ac_cv_sys_symbol_underscore" = x ; then
-- ac_cv_sys_symbol_underscore=yes
-- fi
-- else
-- tmp_do_check="yes"
-+ *) if test -z "$ac_cv_sys_symbol_underscore"; then
-+ if test "$cross_compiling" = yes; then
-+ if test "x$ac_cv_sys_symbol_underscore" = x ; then
-+ ac_cv_sys_symbol_underscore=yes
-+ fi
-+ else
-+ tmp_do_check="yes"
-+ fi
- fi
- ;;
- esac
-
+++ /dev/null
-diff --git a/configure b/configure
-index 70a6d50..8f55d95 100755
---- a/configure
-+++ b/configure
-@@ -22306,14 +22306,15 @@ case "${host}" in
- i386-emx-os2 | i345686-pc-os2*emx | i386-pc-msdosdjgpp)
- ac_cv_sys_symbol_underscore=yes
- ;;
-- *)
-- if test "$cross_compiling" = yes; then
-- if test "x$ac_cv_sys_symbol_underscore" = x ; then
-- ac_cv_sys_symbol_underscore=yes
-+ *)if test -z "$ac_cv_sys_symbol_underscore";then
-+ if test "$cross_compiling" = yes; then
-+ if test "x$ac_cv_sys_symbol_underscore" = x ; then
-+ ac_cv_sys_symbol_underscore=yes
-+ fi
-+ else
-+ tmp_do_check="yes"
-+ fi
- fi
-- else
-- tmp_do_check="yes"
-- fi
- ;;
- esac
- if test "$tmp_do_check" = "yes"; then
--- /dev/null
+Use pkg-config for libtiff detection
+
+Using pkg-config allows proper behavior in static-only contexts: the
+libtiff library might depend on libz and libjpeg.
+
+This patch also fixes a few other issues in the configure.ac script
+that prevents autoreconf to work, or proper detection of the proj
+library.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -196,39 +196,12 @@
+
+ TIFF_CONFIG="no"
+
+-AC_ARG_WITH(libtiff, [ --with-libtiff=dir Use libtiff in directory dir],,)
+-
+-if test "$with_libtiff" != "" ; then
+- if test -f $with_libtiff/include/tiffio.h -a -d $with_libtiff/lib ; then
+- LIBS="-L$with_libtiff/lib -ltiff $LIBS"
+- TIFF_INC=-I$with_libtiff/include
+- else
+- LIBS="-L$with_libtiff -ltiff $LIBS"
+- TIFF_INC=-I$with_libtiff
+- fi
+- LIBS_SAVED="$LIBS"
+- AC_CHECK_LIB(tiff,TIFFOpen,[TIFF_CONFIG=yes],
+- AC_MSG_ERROR([failed to link with -ltiff to find TIFFOpen]),-lm)
+- AC_CHECK_LIB(tiff,TIFFMergeFieldInfo,[TIFF_CONFIG=yes],
+- AC_MSG_ERROR([Libtiff 3.6.0 Beta or later required for this version of
+-libgeotiff. Please upgrade or use an older version of libgeotiff.]),-lm)
+- LIBS="$LIBS_SAVED"
+-else
+- AC_CHECK_LIB(tiff,TIFFOpen,[TIFF_CONFIG=yes],
+- AC_MSG_ERROR([You will need to substantially rewrite libxtiff to
+-build libgeotiff without libtiff]),-lm)
+- LIBS_SAVED="$LIBS"
+- AC_CHECK_LIB(tiff,TIFFMergeFieldInfo,[TIFF_CONFIG=yes],
+- AC_MSG_ERROR([Libtiff 3.6.0 Beta or later required for this version of
+-libgeotiff. Please upgrade libtiff or use an older version of libgeotiff.]),-lm)
+- LIBS="$LIBS -ltiff"
+- TIFF_INC=
+- TIFF_CONFIG="yes"
+-fi
+-
++PKG_CHECK_MODULES(LIBTIFF, libtiff-4)
++TIFF_INC="$LIBTIFF_CFLAGS"
++LIBS="$LIBS $LIBTIFF_LIBS"
++TIFF_CONFIG="yes"
+
+ AC_SUBST([TIFF_INC])
+-AC_SUBST([TIFF_PREFIX])
+ AM_CONDITIONAL([TIFF_IS_CONFIG], [test ! x$TIFF_CONFIG = xno])
+
+ dnl
+@@ -280,15 +253,16 @@
+ PROJ_INC=-I$PROJ_INC
+
+ AC_SUBST(PROJ_INC,$PROJ_INC)
+- AC_DEFINE(HAVE_PROJECTS_H)
++ AC_DEFINE([HAVE_PROJECTS_H], [], [Whether proj library header is available])
+ AC_DEFINE(HAVE_LIBPROJ)
+ AC_SUBST([HAVE_LIBPROJ])
+ PROJ_CONFIG="yes"
+-
+ else
+ AC_CHECK_LIB(proj,pj_init,,,-lm)
+ AC_CHECK_HEADERS(proj_api.h,,)
+- PROJ_CONFIG="yes"
++ if "$ac_cv_lib_proj_pj_init" = "yes" -a "$ac_cv_header_proj_api_h" = "yes"; then
++ PROJ_CONFIG="yes"
++ fi
+ fi
+
+ AM_CONDITIONAL([PROJ_IS_CONFIG], [test ! x$PROJ_CONFIG = xno])
+++ /dev/null
-Use pkg-config for libtiff detection
-
-Using pkg-config allows proper behavior in static-only contexts: the
-libtiff library might depend on libz and libjpeg.
-
-This patch also fixes a few other issues in the configure.ac script
-that prevents autoreconf to work, or proper detection of the proj
-library.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -196,39 +196,12 @@
-
- TIFF_CONFIG="no"
-
--AC_ARG_WITH(libtiff, [ --with-libtiff=dir Use libtiff in directory dir],,)
--
--if test "$with_libtiff" != "" ; then
-- if test -f $with_libtiff/include/tiffio.h -a -d $with_libtiff/lib ; then
-- LIBS="-L$with_libtiff/lib -ltiff $LIBS"
-- TIFF_INC=-I$with_libtiff/include
-- else
-- LIBS="-L$with_libtiff -ltiff $LIBS"
-- TIFF_INC=-I$with_libtiff
-- fi
-- LIBS_SAVED="$LIBS"
-- AC_CHECK_LIB(tiff,TIFFOpen,[TIFF_CONFIG=yes],
-- AC_MSG_ERROR([failed to link with -ltiff to find TIFFOpen]),-lm)
-- AC_CHECK_LIB(tiff,TIFFMergeFieldInfo,[TIFF_CONFIG=yes],
-- AC_MSG_ERROR([Libtiff 3.6.0 Beta or later required for this version of
--libgeotiff. Please upgrade or use an older version of libgeotiff.]),-lm)
-- LIBS="$LIBS_SAVED"
--else
-- AC_CHECK_LIB(tiff,TIFFOpen,[TIFF_CONFIG=yes],
-- AC_MSG_ERROR([You will need to substantially rewrite libxtiff to
--build libgeotiff without libtiff]),-lm)
-- LIBS_SAVED="$LIBS"
-- AC_CHECK_LIB(tiff,TIFFMergeFieldInfo,[TIFF_CONFIG=yes],
-- AC_MSG_ERROR([Libtiff 3.6.0 Beta or later required for this version of
--libgeotiff. Please upgrade libtiff or use an older version of libgeotiff.]),-lm)
-- LIBS="$LIBS -ltiff"
-- TIFF_INC=
-- TIFF_CONFIG="yes"
--fi
--
-+PKG_CHECK_MODULES(LIBTIFF, libtiff-4)
-+TIFF_INC="$LIBTIFF_CFLAGS"
-+LIBS="$LIBS $LIBTIFF_LIBS"
-+TIFF_CONFIG="yes"
-
- AC_SUBST([TIFF_INC])
--AC_SUBST([TIFF_PREFIX])
- AM_CONDITIONAL([TIFF_IS_CONFIG], [test ! x$TIFF_CONFIG = xno])
-
- dnl
-@@ -280,15 +253,16 @@
- PROJ_INC=-I$PROJ_INC
-
- AC_SUBST(PROJ_INC,$PROJ_INC)
-- AC_DEFINE(HAVE_PROJECTS_H)
-+ AC_DEFINE([HAVE_PROJECTS_H], [], [Whether proj library header is available])
- AC_DEFINE(HAVE_LIBPROJ)
- AC_SUBST([HAVE_LIBPROJ])
- PROJ_CONFIG="yes"
--
- else
- AC_CHECK_LIB(proj,pj_init,,,-lm)
- AC_CHECK_HEADERS(proj_api.h,,)
-- PROJ_CONFIG="yes"
-+ if "$ac_cv_lib_proj_pj_init" = "yes" -a "$ac_cv_header_proj_api_h" = "yes"; then
-+ PROJ_CONFIG="yes"
-+ fi
- fi
-
- AM_CONDITIONAL([PROJ_IS_CONFIG], [test ! x$PROJ_CONFIG = xno])
--- /dev/null
+[PATCH]: fix build on uClibc without IPv6 support
+
+Updated to glib 2.36 by Thomas Petazzoni.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ gio/ginetaddress.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+Index: b/gio/ginetaddress.c
+===================================================================
+--- a/gio/ginetaddress.c
++++ b/gio/ginetaddress.c
+@@ -21,6 +21,7 @@
+ * Samuel Cormier-Iijima <sciyoshi@gmail.com>
+ */
+
++#include <features.h>
+ #include <config.h>
+
+ #include <string.h>
+@@ -423,7 +424,11 @@
+ return NULL;
+ }
+
++#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)
++#define G_INET_ADDRESS_FAMILY_IS_VALID(family) ((family) == AF_INET)
++#else
+ #define G_INET_ADDRESS_FAMILY_IS_VALID(family) ((family) == AF_INET || (family) == AF_INET6)
++#endif
+
+ /**
+ * g_inet_address_new_from_bytes:
+@@ -472,8 +477,10 @@
+
+ return g_inet_address_new_from_bytes (addr, family);
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else
+ return g_inet_address_new_from_bytes (in6addr_loopback.s6_addr, family);
++#endif
+ }
+
+ /**
+@@ -499,8 +506,10 @@
+
+ return g_inet_address_new_from_bytes (addr, family);
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else
+ return g_inet_address_new_from_bytes (in6addr_any.s6_addr, family);
++#endif
+ }
+
+
+Index: b/gio/gsocket.c
+===================================================================
+--- a/gio/gsocket.c
++++ b/gio/gsocket.c
+@@ -425,7 +425,9 @@
+ switch (family)
+ {
+ case G_SOCKET_FAMILY_IPV4:
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ case G_SOCKET_FAMILY_IPV6:
++#endif
+ socket->priv->family = address.ss_family;
+ switch (socket->priv->type)
+ {
+@@ -1321,11 +1323,13 @@
+ g_socket_get_option (socket, IPPROTO_IP, IP_TTL,
+ &value, &error);
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
+ {
+ g_socket_get_option (socket, IPPROTO_IPV6, IPV6_UNICAST_HOPS,
+ &value, &error);
+ }
++#endif
+ else
+ g_return_val_if_reached (0);
+
+@@ -1362,6 +1366,7 @@
+ g_socket_set_option (socket, IPPROTO_IP, IP_TTL,
+ ttl, &error);
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
+ {
+ g_socket_set_option (socket, IPPROTO_IP, IP_TTL,
+@@ -1369,6 +1374,7 @@
+ g_socket_set_option (socket, IPPROTO_IPV6, IPV6_UNICAST_HOPS,
+ ttl, &error);
+ }
++#endif
+ else
+ g_return_if_reached ();
+
+@@ -1470,11 +1476,13 @@
+ g_socket_get_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP,
+ &value, &error);
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
+ {
+ g_socket_get_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_LOOP,
+ &value, &error);
+ }
++#endif
+ else
+ g_return_val_if_reached (FALSE);
+
+@@ -1515,6 +1523,7 @@
+ g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP,
+ loopback, &error);
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
+ {
+ g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP,
+@@ -1522,6 +1531,7 @@
+ g_socket_set_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_LOOP,
+ loopback, &error);
+ }
++#endif
+ else
+ g_return_if_reached ();
+
+@@ -1559,11 +1569,13 @@
+ g_socket_get_option (socket, IPPROTO_IP, IP_MULTICAST_TTL,
+ &value, &error);
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
+ {
+ g_socket_get_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
+ &value, &error);
+ }
++#endif
+ else
+ g_return_val_if_reached (FALSE);
+
+@@ -1601,6 +1613,7 @@
+ g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_TTL,
+ ttl, &error);
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
+ {
+ g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_TTL,
+@@ -1608,6 +1621,7 @@
+ g_socket_set_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
+ ttl, &error);
+ }
++#endif
+ else
+ g_return_if_reached ();
+
+@@ -1965,6 +1979,7 @@
+ result = setsockopt (socket->priv->fd, IPPROTO_IP, optname,
+ &mc_req, sizeof (mc_req));
+ }
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
+ else if (g_inet_address_get_family (group) == G_SOCKET_FAMILY_IPV6)
+ {
+ struct ipv6_mreq mc_req_ipv6;
+@@ -1982,6 +1997,7 @@
+ result = setsockopt (socket->priv->fd, IPPROTO_IPV6, optname,
+ &mc_req_ipv6, sizeof (mc_req_ipv6));
+ }
++#endif
+ else
+ g_return_val_if_reached (FALSE);
+
+@@ -2089,8 +2105,8 @@
+ case G_SOCKET_FAMILY_IPV4:
+ return TRUE;
+
+- case G_SOCKET_FAMILY_IPV6:
+ #if defined (IPPROTO_IPV6) && defined (IPV6_V6ONLY)
++ case G_SOCKET_FAMILY_IPV6:
+ {
+ gint v6_only;
+
+@@ -2101,8 +2117,6 @@
+
+ return !v6_only;
+ }
+-#else
+- return FALSE;
+ #endif
+
+ default:
+++ /dev/null
-[PATCH]: fix build on uClibc without IPv6 support
-
-Updated to glib 2.36 by Thomas Petazzoni.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- gio/ginetaddress.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-Index: b/gio/ginetaddress.c
-===================================================================
---- a/gio/ginetaddress.c
-+++ b/gio/ginetaddress.c
-@@ -21,6 +21,7 @@
- * Samuel Cormier-Iijima <sciyoshi@gmail.com>
- */
-
-+#include <features.h>
- #include <config.h>
-
- #include <string.h>
-@@ -423,7 +424,11 @@
- return NULL;
- }
-
-+#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)
-+#define G_INET_ADDRESS_FAMILY_IS_VALID(family) ((family) == AF_INET)
-+#else
- #define G_INET_ADDRESS_FAMILY_IS_VALID(family) ((family) == AF_INET || (family) == AF_INET6)
-+#endif
-
- /**
- * g_inet_address_new_from_bytes:
-@@ -472,8 +477,10 @@
-
- return g_inet_address_new_from_bytes (addr, family);
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else
- return g_inet_address_new_from_bytes (in6addr_loopback.s6_addr, family);
-+#endif
- }
-
- /**
-@@ -499,8 +506,10 @@
-
- return g_inet_address_new_from_bytes (addr, family);
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else
- return g_inet_address_new_from_bytes (in6addr_any.s6_addr, family);
-+#endif
- }
-
-
-Index: b/gio/gsocket.c
-===================================================================
---- a/gio/gsocket.c
-+++ b/gio/gsocket.c
-@@ -425,7 +425,9 @@
- switch (family)
- {
- case G_SOCKET_FAMILY_IPV4:
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- case G_SOCKET_FAMILY_IPV6:
-+#endif
- socket->priv->family = address.ss_family;
- switch (socket->priv->type)
- {
-@@ -1321,11 +1323,13 @@
- g_socket_get_option (socket, IPPROTO_IP, IP_TTL,
- &value, &error);
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
- {
- g_socket_get_option (socket, IPPROTO_IPV6, IPV6_UNICAST_HOPS,
- &value, &error);
- }
-+#endif
- else
- g_return_val_if_reached (0);
-
-@@ -1362,6 +1366,7 @@
- g_socket_set_option (socket, IPPROTO_IP, IP_TTL,
- ttl, &error);
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
- {
- g_socket_set_option (socket, IPPROTO_IP, IP_TTL,
-@@ -1369,6 +1374,7 @@
- g_socket_set_option (socket, IPPROTO_IPV6, IPV6_UNICAST_HOPS,
- ttl, &error);
- }
-+#endif
- else
- g_return_if_reached ();
-
-@@ -1470,11 +1476,13 @@
- g_socket_get_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP,
- &value, &error);
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
- {
- g_socket_get_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_LOOP,
- &value, &error);
- }
-+#endif
- else
- g_return_val_if_reached (FALSE);
-
-@@ -1515,6 +1523,7 @@
- g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP,
- loopback, &error);
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
- {
- g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP,
-@@ -1522,6 +1531,7 @@
- g_socket_set_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_LOOP,
- loopback, &error);
- }
-+#endif
- else
- g_return_if_reached ();
-
-@@ -1559,11 +1569,13 @@
- g_socket_get_option (socket, IPPROTO_IP, IP_MULTICAST_TTL,
- &value, &error);
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
- {
- g_socket_get_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
- &value, &error);
- }
-+#endif
- else
- g_return_val_if_reached (FALSE);
-
-@@ -1601,6 +1613,7 @@
- g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_TTL,
- ttl, &error);
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else if (socket->priv->family == G_SOCKET_FAMILY_IPV6)
- {
- g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_TTL,
-@@ -1608,6 +1621,7 @@
- g_socket_set_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
- ttl, &error);
- }
-+#endif
- else
- g_return_if_reached ();
-
-@@ -1965,6 +1979,7 @@
- result = setsockopt (socket->priv->fd, IPPROTO_IP, optname,
- &mc_req, sizeof (mc_req));
- }
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__))
- else if (g_inet_address_get_family (group) == G_SOCKET_FAMILY_IPV6)
- {
- struct ipv6_mreq mc_req_ipv6;
-@@ -1982,6 +1997,7 @@
- result = setsockopt (socket->priv->fd, IPPROTO_IPV6, optname,
- &mc_req_ipv6, sizeof (mc_req_ipv6));
- }
-+#endif
- else
- g_return_val_if_reached (FALSE);
-
-@@ -2089,8 +2105,8 @@
- case G_SOCKET_FAMILY_IPV4:
- return TRUE;
-
-- case G_SOCKET_FAMILY_IPV6:
- #if defined (IPPROTO_IPV6) && defined (IPV6_V6ONLY)
-+ case G_SOCKET_FAMILY_IPV6:
- {
- gint v6_only;
-
-@@ -2101,8 +2117,6 @@
-
- return !v6_only;
- }
--#else
-- return FALSE;
- #endif
-
- default:
--- /dev/null
+Hack the configure.in file to add a "none" gdktarget which removes
+dependencies on graphic backends such as X.org or DirectFB. Gtk does
+not fully build in this mode, but it builds sufficiently to build the
+host tools that are needed to build the target Gtk.
+
+Changes:
+ Ported to 2.24.18
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
+---
+Index: libgtk2-2.24.18/configure.ac
+===================================================================
+--- libgtk2-2.24.18.orig/configure.ac 2013-05-13 07:02:44.000000000 -0500
++++ libgtk2-2.24.18/configure.ac 2013-05-27 02:12:09.947030335 -0500
+@@ -258,12 +258,12 @@
+ gdktarget=x11
+ fi
+
+-AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
++AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb/none]] select non-default GDK target],
+ gdktarget=$with_gdktarget)
+
+ AC_SUBST(gdktarget)
+ case $gdktarget in
+- x11|win32|quartz|directfb) ;;
++ x11|win32|quartz|directfb|none) ;;
+ *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
+ esac
+
+@@ -372,11 +373,15 @@
+ ## annoying to construct
+ PKG_CHECK_MODULES(BASE_DEPENDENCIES,
+ [glib-2.0 >= glib_required_version dnl
+- atk >= atk_required_version dnl
+- pango >= pango_required_version dnl
+- cairo >= cairo_required_version dnl
+ gdk-pixbuf-2.0 >= gdk_pixbuf_required_version])
+
++if test "x$gdktarget" != "xnone"; then
++ PKG_CHECK_MODULES(BASE_DEPENDENCIES,
++ [atk >= atk_required_version dnl
++ pango >= pango_required_version dnl
++ cairo >= cairo_required_version])
++fi
++
+ ## In addition to checking that cairo is present, we also need to
+ ## check that the correct cairo backend is there. E.g. if the GDK
+ ## target is win32 we need the cairo-win32 backend and so on.
+@@ -387,8 +392,11 @@
+ if test "x$cairo_backend" = "xx11"; then
+ cairo_backend=xlib
+ fi
+-PKG_CHECK_MODULES(CAIRO_BACKEND,
+- [cairo-$cairo_backend >= cairo_required_version])
++
++if test "x$gdktarget" != "xnone"; then
++ PKG_CHECK_MODULES(CAIRO_BACKEND,
++ [cairo-$cairo_backend >= cairo_required_version])
++fi
+
+ PKG_CHECK_MODULES(GMODULE, [gmodule-2.0])
+
+@@ -1279,6 +1287,7 @@
+ AM_CONDITIONAL(USE_DIRECTFB, false)
+ fi
+
++if test "x$gdktarget" != "xnone"; then
+
+ # Check for Pango flags
+
+@@ -1324,6 +1333,8 @@
+ GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend"
+ fi
+
++fi # gdktarget != none
++
+ GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PACKAGES` $MATH_LIB"
+ GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PACKAGES` $GDK_EXTRA_CFLAGS"
+ #
+@@ -1341,6 +1352,7 @@
+ AC_SUBST(GDK_DEP_LIBS)
+ AC_SUBST(GDK_DEP_CFLAGS)
+
++if test "x$gdktarget" != "xnone"; then
+
+ ########################################
+ # Check for Accessibility Toolkit flags
+@@ -1372,6 +1384,10 @@
+ fi
+
+ GTK_PACKAGES="atk cairo gdk-pixbuf-2.0 gio-2.0"
++else # gdktarget != none
++GTK_PACKAGES="gdk-pixbuf-2.0"
++fi # gdktarget != none
++
+ if test "x$gdktarget" = "xx11"; then
+ GTK_PACKAGES="$GTK_PACKAGES pangoft2"
+ fi
+@@ -1533,6 +1549,8 @@
+ gtk_save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS $GDK_DEP_CFLAGS"
+
++if test "x$gdktarget" != "xnone"; then
++
+ AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
+ *** Can't find cairo-pdf.h. You must build Cairo with the pdf
+ *** backend enabled.]))
+@@ -1547,6 +1565,8 @@
+ *** svg backend enabled.]))
+ fi
+
++fi # gdktarget != none
++
+ CPPFLAGS="$gtk_save_cppflags"
+
+
+++ /dev/null
-Hack the configure.in file to add a "none" gdktarget which removes
-dependencies on graphic backends such as X.org or DirectFB. Gtk does
-not fully build in this mode, but it builds sufficiently to build the
-host tools that are needed to build the target Gtk.
-
-Changes:
- Ported to 2.24.18
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
----
-Index: libgtk2-2.24.18/configure.ac
-===================================================================
---- libgtk2-2.24.18.orig/configure.ac 2013-05-13 07:02:44.000000000 -0500
-+++ libgtk2-2.24.18/configure.ac 2013-05-27 02:12:09.947030335 -0500
-@@ -258,12 +258,12 @@
- gdktarget=x11
- fi
-
--AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
-+AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb/none]] select non-default GDK target],
- gdktarget=$with_gdktarget)
-
- AC_SUBST(gdktarget)
- case $gdktarget in
-- x11|win32|quartz|directfb) ;;
-+ x11|win32|quartz|directfb|none) ;;
- *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
- esac
-
-@@ -372,11 +373,15 @@
- ## annoying to construct
- PKG_CHECK_MODULES(BASE_DEPENDENCIES,
- [glib-2.0 >= glib_required_version dnl
-- atk >= atk_required_version dnl
-- pango >= pango_required_version dnl
-- cairo >= cairo_required_version dnl
- gdk-pixbuf-2.0 >= gdk_pixbuf_required_version])
-
-+if test "x$gdktarget" != "xnone"; then
-+ PKG_CHECK_MODULES(BASE_DEPENDENCIES,
-+ [atk >= atk_required_version dnl
-+ pango >= pango_required_version dnl
-+ cairo >= cairo_required_version])
-+fi
-+
- ## In addition to checking that cairo is present, we also need to
- ## check that the correct cairo backend is there. E.g. if the GDK
- ## target is win32 we need the cairo-win32 backend and so on.
-@@ -387,8 +392,11 @@
- if test "x$cairo_backend" = "xx11"; then
- cairo_backend=xlib
- fi
--PKG_CHECK_MODULES(CAIRO_BACKEND,
-- [cairo-$cairo_backend >= cairo_required_version])
-+
-+if test "x$gdktarget" != "xnone"; then
-+ PKG_CHECK_MODULES(CAIRO_BACKEND,
-+ [cairo-$cairo_backend >= cairo_required_version])
-+fi
-
- PKG_CHECK_MODULES(GMODULE, [gmodule-2.0])
-
-@@ -1279,6 +1287,7 @@
- AM_CONDITIONAL(USE_DIRECTFB, false)
- fi
-
-+if test "x$gdktarget" != "xnone"; then
-
- # Check for Pango flags
-
-@@ -1324,6 +1333,8 @@
- GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend"
- fi
-
-+fi # gdktarget != none
-+
- GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PACKAGES` $MATH_LIB"
- GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PACKAGES` $GDK_EXTRA_CFLAGS"
- #
-@@ -1341,6 +1352,7 @@
- AC_SUBST(GDK_DEP_LIBS)
- AC_SUBST(GDK_DEP_CFLAGS)
-
-+if test "x$gdktarget" != "xnone"; then
-
- ########################################
- # Check for Accessibility Toolkit flags
-@@ -1372,6 +1384,10 @@
- fi
-
- GTK_PACKAGES="atk cairo gdk-pixbuf-2.0 gio-2.0"
-+else # gdktarget != none
-+GTK_PACKAGES="gdk-pixbuf-2.0"
-+fi # gdktarget != none
-+
- if test "x$gdktarget" = "xx11"; then
- GTK_PACKAGES="$GTK_PACKAGES pangoft2"
- fi
-@@ -1533,6 +1549,8 @@
- gtk_save_cppflags="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS $GDK_DEP_CFLAGS"
-
-+if test "x$gdktarget" != "xnone"; then
-+
- AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
- *** Can't find cairo-pdf.h. You must build Cairo with the pdf
- *** backend enabled.]))
-@@ -1547,6 +1565,8 @@
- *** svg backend enabled.]))
- fi
-
-+fi # gdktarget != none
-+
- CPPFLAGS="$gtk_save_cppflags"
-
-
--- /dev/null
+MD_CONF_DEBUGGING changes CFLAGS and CXXFLAGS with a horrible magic so disable
+it to prevent compilation errors.
+
+downloaded from
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/libhid/files/libhid-0.2.16-gentoo.patch?revision=1.1&view=markup
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr libhid-0.2.16.org/configure.ac libhid-0.2.16/configure.ac
+--- libhid-0.2.16.org/configure.ac 2007-04-01 22:32:10.000000000 +0200
++++ libhid-0.2.16/configure.ac 2014-10-19 21:31:00.550091947 +0200
+@@ -78,7 +78,6 @@
+ AC_C_BIGENDIAN
+ AC_C_STRINGIZE
+
+-MD_CONF_DEBUGGING
+ MD_CONF_COMPILER
+ AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "linux")
+ AM_CONDITIONAL(OS_BSD, test "$MD_OS" = "bsd")
--- /dev/null
+Fix improper usage of macro that introduces a wrong newline
+
+The MD_CONF_FLAGS() macro was used with a final newline that
+introduces an invalid newline in the middle of the macro expansion
+when defining LDFLAGS.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: libhid-0.2.16/configure.ac
+===================================================================
+--- libhid-0.2.16.orig/configure.ac 2007-04-01 22:32:10.000000000 +0200
++++ libhid-0.2.16/configure.ac 2012-12-12 20:24:03.000000000 +0100
+@@ -102,8 +102,7 @@
+ [],
+ [$OS_CFLAGS $LIBUSB_CFLAGS],
+ [],
+- [$OS_LDFLAGS $LIBUSB_LIBS]
+-)
++ [$OS_LDFLAGS $LIBUSB_LIBS])
+
+ MD_CONF_DB2MAN
+
--- /dev/null
+Good old 'uclinux is also linux'
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura libhid-0.2.16.orig/configure.ac libhid-0.2.16/configure.ac
+--- libhid-0.2.16.orig/configure.ac 2014-06-22 09:35:50.277261742 -0300
++++ libhid-0.2.16/configure.ac 2014-06-22 09:36:10.688951947 -0300
+@@ -80,6 +80,7 @@
+
+ MD_CONF_DEBUGGING
+ MD_CONF_COMPILER
++AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "uclinux")
+ AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "linux")
+ AM_CONDITIONAL(OS_BSD, test "$MD_OS" = "bsd")
+ AM_CONDITIONAL(OS_SOLARIS, test "$MD_OS" = "solaris")
+diff -Nura libhid-0.2.16.orig/m4/md_check_os.m4 libhid-0.2.16/m4/md_check_os.m4
+--- libhid-0.2.16.orig/m4/md_check_os.m4 2014-06-22 09:35:50.275261675 -0300
++++ libhid-0.2.16/m4/md_check_os.m4 2014-06-22 09:46:17.651475891 -0300
+@@ -3,7 +3,7 @@
+ AC_CANONICAL_HOST
+ AC_MSG_CHECKING(for target OS)
+ case $host in
+- *-linux*)
++ *-linux*|*-uclinux*)
+ AC_DEFINE(OS_LINUX, [], [define to 1 if building for Linux])
+ AC_SUBST(OS_LINUX)
+ MD_OS=linux
+++ /dev/null
-MD_CONF_DEBUGGING changes CFLAGS and CXXFLAGS with a horrible magic so disable
-it to prevent compilation errors.
-
-downloaded from
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/libhid/files/libhid-0.2.16-gentoo.patch?revision=1.1&view=markup
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr libhid-0.2.16.org/configure.ac libhid-0.2.16/configure.ac
---- libhid-0.2.16.org/configure.ac 2007-04-01 22:32:10.000000000 +0200
-+++ libhid-0.2.16/configure.ac 2014-10-19 21:31:00.550091947 +0200
-@@ -78,7 +78,6 @@
- AC_C_BIGENDIAN
- AC_C_STRINGIZE
-
--MD_CONF_DEBUGGING
- MD_CONF_COMPILER
- AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "linux")
- AM_CONDITIONAL(OS_BSD, test "$MD_OS" = "bsd")
+++ /dev/null
-Fix improper usage of macro that introduces a wrong newline
-
-The MD_CONF_FLAGS() macro was used with a final newline that
-introduces an invalid newline in the middle of the macro expansion
-when defining LDFLAGS.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: libhid-0.2.16/configure.ac
-===================================================================
---- libhid-0.2.16.orig/configure.ac 2007-04-01 22:32:10.000000000 +0200
-+++ libhid-0.2.16/configure.ac 2012-12-12 20:24:03.000000000 +0100
-@@ -102,8 +102,7 @@
- [],
- [$OS_CFLAGS $LIBUSB_CFLAGS],
- [],
-- [$OS_LDFLAGS $LIBUSB_LIBS]
--)
-+ [$OS_LDFLAGS $LIBUSB_LIBS])
-
- MD_CONF_DB2MAN
-
+++ /dev/null
-Good old 'uclinux is also linux'
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura libhid-0.2.16.orig/configure.ac libhid-0.2.16/configure.ac
---- libhid-0.2.16.orig/configure.ac 2014-06-22 09:35:50.277261742 -0300
-+++ libhid-0.2.16/configure.ac 2014-06-22 09:36:10.688951947 -0300
-@@ -80,6 +80,7 @@
-
- MD_CONF_DEBUGGING
- MD_CONF_COMPILER
-+AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "uclinux")
- AM_CONDITIONAL(OS_LINUX, test "$MD_OS" = "linux")
- AM_CONDITIONAL(OS_BSD, test "$MD_OS" = "bsd")
- AM_CONDITIONAL(OS_SOLARIS, test "$MD_OS" = "solaris")
-diff -Nura libhid-0.2.16.orig/m4/md_check_os.m4 libhid-0.2.16/m4/md_check_os.m4
---- libhid-0.2.16.orig/m4/md_check_os.m4 2014-06-22 09:35:50.275261675 -0300
-+++ libhid-0.2.16/m4/md_check_os.m4 2014-06-22 09:46:17.651475891 -0300
-@@ -3,7 +3,7 @@
- AC_CANONICAL_HOST
- AC_MSG_CHECKING(for target OS)
- case $host in
-- *-linux*)
-+ *-linux*|*-uclinux*)
- AC_DEFINE(OS_LINUX, [], [define to 1 if building for Linux])
- AC_SUBST(OS_LINUX)
- MD_OS=linux
--- /dev/null
+From 46660112b76664473cc98b8ae6c863fd27c27d2d Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Fri, 29 Aug 2014 23:40:59 +0200
+Subject: [PATCH 1/1] cmake: handle static library and find required thread
+ module
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ CMakeLists.txt | 2 ++
+ src/CMakeLists.txt | 4 +++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 79f644c..7779a2a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,7 +6,9 @@ enable_testing()
+ # use local module (for Findlibusb-1.0.cmake)
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+
++find_package(Threads REQUIRED)
+ find_package(libusb-1.0 REQUIRED)
++
+ if (NOT LIBUSB_1_FOUND)
+ message(FATAL_ERROR "libusb-1.0 not installed. (try apt-get install libusb-1.0-0-dev)")
+ endif (NOT LIBUSB_1_FOUND)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 149d198..0597ccd 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -18,8 +18,10 @@ set (iqrf_sources
+
+ include_directories ("${LIBUSB_1_INCLUDE_DIRS}")
+
+-add_library(iqrf SHARED ${iqrf_sources} ${iqrf_headers})
++add_library(iqrf ${iqrf_sources} ${iqrf_headers})
++
+ target_link_libraries(iqrf ${LIBUSB_1_LIBRARIES})
++target_link_libraries(iqrf ${CMAKE_THREAD_LIBS_INIT})
+
+ set_target_properties(iqrf PROPERTIES
+ VERSION "${iqrf_version_major}.${iqrf_version_minor}"
+--
+2.1.0
+
--- /dev/null
+Use only the C language
+
+libirqf is written completely in C, but by default, CMake assumes that
+both C and C++ are used, and therefore verifies that a C++ compiler is
+installed. This may not necessarily be the case for a C-only package
+in Buildroot.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/CMakeLists.txt
+===================================================================
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,5 +1,3 @@
+-project(iqrf)
+-
+ set (iqrf_version_major 0)
+ set (iqrf_version_minor 1)
+ set (iqrf_version_patch 2)
+Index: b/CMakeLists.txt
+===================================================================
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,3 +1,5 @@
++project(iqrf C)
++
+ cmake_minimum_required(VERSION 2.8.1)
+ enable_testing()
+
+++ /dev/null
-From 46660112b76664473cc98b8ae6c863fd27c27d2d Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Fri, 29 Aug 2014 23:40:59 +0200
-Subject: [PATCH 1/1] cmake: handle static library and find required thread
- module
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- CMakeLists.txt | 2 ++
- src/CMakeLists.txt | 4 +++-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 79f644c..7779a2a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,7 +6,9 @@ enable_testing()
- # use local module (for Findlibusb-1.0.cmake)
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
-
-+find_package(Threads REQUIRED)
- find_package(libusb-1.0 REQUIRED)
-+
- if (NOT LIBUSB_1_FOUND)
- message(FATAL_ERROR "libusb-1.0 not installed. (try apt-get install libusb-1.0-0-dev)")
- endif (NOT LIBUSB_1_FOUND)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 149d198..0597ccd 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -18,8 +18,10 @@ set (iqrf_sources
-
- include_directories ("${LIBUSB_1_INCLUDE_DIRS}")
-
--add_library(iqrf SHARED ${iqrf_sources} ${iqrf_headers})
-+add_library(iqrf ${iqrf_sources} ${iqrf_headers})
-+
- target_link_libraries(iqrf ${LIBUSB_1_LIBRARIES})
-+target_link_libraries(iqrf ${CMAKE_THREAD_LIBS_INIT})
-
- set_target_properties(iqrf PROPERTIES
- VERSION "${iqrf_version_major}.${iqrf_version_minor}"
---
-2.1.0
-
+++ /dev/null
-Use only the C language
-
-libirqf is written completely in C, but by default, CMake assumes that
-both C and C++ are used, and therefore verifies that a C++ compiler is
-installed. This may not necessarily be the case for a C-only package
-in Buildroot.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/src/CMakeLists.txt
-===================================================================
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -1,5 +1,3 @@
--project(iqrf)
--
- set (iqrf_version_major 0)
- set (iqrf_version_minor 1)
- set (iqrf_version_patch 2)
-Index: b/CMakeLists.txt
-===================================================================
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,3 +1,5 @@
-+project(iqrf C)
-+
- cmake_minimum_required(VERSION 2.8.1)
- enable_testing()
-
--- /dev/null
+Fix the broken libjson makefile.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/makefile b/makefile
+--- a/makefile 2012-05-30 10:15:42.000000000 +0100
++++ b/makefile 2013-03-27 18:45:34.814670534 +0000
+@@ -170,7 +170,7 @@ include_path = $(prefix)/$(includedi
+ # Usage check
+ ifdef CXXFLAGS
+ ifdef BUILD_TYPE
+- $(error CXXFLAGS and BUILD_TYPE are mutually exclusive)
++$(error CXXFLAGS and BUILD_TYPE are mutually exclusive)
+ endif
+ endif
+
+++ /dev/null
-Fix the broken libjson makefile.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/makefile b/makefile
---- a/makefile 2012-05-30 10:15:42.000000000 +0100
-+++ b/makefile 2013-03-27 18:45:34.814670534 +0000
-@@ -170,7 +170,7 @@ include_path = $(prefix)/$(includedi
- # Usage check
- ifdef CXXFLAGS
- ifdef BUILD_TYPE
-- $(error CXXFLAGS and BUILD_TYPE are mutually exclusive)
-+$(error CXXFLAGS and BUILD_TYPE are mutually exclusive)
- endif
- endif
-
--- /dev/null
+diff -ur liblockfile-1.06.1/Makefile.in liblockfile-1.06.1-patched/Makefile.in
+--- liblockfile-1.06.1/Makefile.in 2001-03-16 22:08:33.000000000 -0600
++++ liblockfile-1.06.1-patched/Makefile.in 2007-04-11 07:18:38.000000000 -0500
+@@ -60,11 +60,7 @@
+
+ install_common:
+ install -m 644 lockfile.h maillock.h $(ROOT)$(includedir)
+- if [ "$(MAILGROUP)" != "" ]; then\
+- install -g $(MAILGROUP) -m 2755 dotlockfile $(ROOT)$(bindir);\
+- else \
+- install -g root -m 755 dotlockfile $(ROOT)$(bindir); \
+- fi
++ install -m 2755 dotlockfile $(ROOT)$(bindir);\
+ install -m 644 *.1 $(ROOT)$(mandir)/man1
+ install -m 644 *.3 $(ROOT)$(mandir)/man3
+
+++ /dev/null
-diff -ur liblockfile-1.06.1/Makefile.in liblockfile-1.06.1-patched/Makefile.in
---- liblockfile-1.06.1/Makefile.in 2001-03-16 22:08:33.000000000 -0600
-+++ liblockfile-1.06.1-patched/Makefile.in 2007-04-11 07:18:38.000000000 -0500
-@@ -60,11 +60,7 @@
-
- install_common:
- install -m 644 lockfile.h maillock.h $(ROOT)$(includedir)
-- if [ "$(MAILGROUP)" != "" ]; then\
-- install -g $(MAILGROUP) -m 2755 dotlockfile $(ROOT)$(bindir);\
-- else \
-- install -g root -m 755 dotlockfile $(ROOT)$(bindir); \
-- fi
-+ install -m 2755 dotlockfile $(ROOT)$(bindir);\
- install -m 644 *.1 $(ROOT)$(mandir)/man1
- install -m 644 *.3 $(ROOT)$(mandir)/man3
-
--- /dev/null
+http://patchwork.openembedded.org/patch/921/
+
+diff -ur libmad-0.15.1b-orig/fixed.h libmad-0.15.1b/fixed.h
+--- libmad-0.15.1b-orig/fixed.h 2004-02-17 12:32:03.000000000 +1030
++++ libmad-0.15.1b/fixed.h 2009-08-05 10:46:30.000000000 +0930
+@@ -299,6 +299,23 @@
+
+ # elif defined(FPM_MIPS)
+
++/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
++#if defined (__GNUC__) && defined (__GNUC_MINOR__)
++#define __GNUC_PREREQ(maj, min) \
++ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
++#else
++#define __GNUC_PREREQ(maj, min) 0
++#endif
++
++#if __GNUC_PREREQ(4,4)
++ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
++# define MAD_F_MLX(hi, lo, x, y) \
++ do { \
++ u64_di_t __ll = (u64_di_t) (x) * (y); \
++ hi = __ll >> 32; \
++ lo = __ll; \
++ } while (0)
++#else
+ /*
+ * This MIPS version is fast and accurate; the disposition of the least
+ * significant bit depends on OPT_ACCURACY via mad_f_scale64().
+@@ -328,6 +345,7 @@
+ : "%r" ((x) >> 12), "r" ((y) >> 16))
+ # define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
+ # endif
++#endif /* __GNU_PREREQ(4,4) */
+
+ # if defined(OPT_SPEED)
+ # define mad_f_scale64(hi, lo) \
+diff -ur libmad-0.15.1b-orig/mad.h libmad-0.15.1b/mad.h
+--- libmad-0.15.1b-orig/mad.h 2004-02-17 13:25:44.000000000 +1030
++++ libmad-0.15.1b/mad.h 2009-08-05 10:42:40.000000000 +0930
+@@ -344,6 +344,23 @@
+
+ # elif defined(FPM_MIPS)
+
++/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
++#if defined (__GNUC__) && defined (__GNUC_MINOR__)
++#define __GNUC_PREREQ(maj, min) \
++ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
++#else
++#define __GNUC_PREREQ(maj, min) 0
++#endif
++
++#if __GNUC_PREREQ(4,4)
++ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
++# define MAD_F_MLX(hi, lo, x, y) \
++ do { \
++ u64_di_t __ll = (u64_di_t) (x) * (y); \
++ hi = __ll >> 32; \
++ lo = __ll; \
++ } while (0)
++#else
+ /*
+ * This MIPS version is fast and accurate; the disposition of the least
+ * significant bit depends on OPT_ACCURACY via mad_f_scale64().
+@@ -373,6 +390,7 @@
+ : "%r" ((x) >> 12), "r" ((y) >> 16))
+ # define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
+ # endif
++#endif /* __GNU_PREREQ(4,4) */
+
+ # if defined(OPT_SPEED)
+ # define mad_f_scale64(hi, lo) \
--- /dev/null
+diff --git a/bit.c b/bit.c
+index c2bfb24..262ce3a 100644
+--- a/bit.c
++++ b/bit.c
+@@ -25,12 +25,6 @@
+
+ # include "global.h"
+
+-# ifdef HAVE_LIMITS_H
+-# include <limits.h>
+-# else
+-# define CHAR_BIT 8
+-# endif
+-
+ # include "bit.h"
+
+ /*
+@@ -81,6 +75,8 @@ unsigned short const crc_table[256] = {
+
+ # define CRC_POLY 0x8005
+
++#ifndef FPM_AVR32
++
+ /*
+ * NAME: bit->init()
+ * DESCRIPTION: initialize bit pointer struct
+@@ -190,6 +186,8 @@ void mad_bit_write(struct mad_bitptr *bitptr, unsigned int len,
+ }
+ # endif
+
++#endif
++
+ /*
+ * NAME: bit->crc()
+ * DESCRIPTION: compute CRC-check word
+diff --git a/bit.h b/bit.h
+index 5a51570..70f550a 100644
+--- a/bit.h
++++ b/bit.h
+@@ -22,6 +22,92 @@
+ # ifndef LIBMAD_BIT_H
+ # define LIBMAD_BIT_H
+
++# ifdef HAVE_LIMITS_H
++# include <limits.h>
++# else
++# define CHAR_BIT 8
++# endif
++
++#ifdef FPM_AVR32
++
++struct mad_bitptr {
++ unsigned char const *byte;
++ unsigned int read_bytes;
++};
++
++/*
++ * NAME: bit->init()
++ * DESCRIPTION: initialize bit pointer struct
++ */
++static void mad_bit_init(struct mad_bitptr *bitptr, unsigned char const *byte)
++{
++ bitptr->byte = byte;
++ bitptr->read_bytes = 0;
++}
++
++/*
++ * NAME: bit->length()
++ * DESCRIPTION: return number of bits between start and end points
++ */
++static unsigned int mad_bit_length(struct mad_bitptr const *begin,
++ struct mad_bitptr const *end)
++{
++ return (end->read_bytes - begin->read_bytes) +
++ 8 * (end->byte - begin->byte);
++}
++
++/*
++ * NAME: bit->nextbyte()
++ * DESCRIPTION: return pointer to next unprocessed byte
++ */
++static unsigned char const *mad_bit_nextbyte(struct mad_bitptr const *bitptr)
++{
++ return bitptr->byte + ((bitptr->read_bytes + 0x7) >> 3);
++}
++
++/*
++ * NAME: bit->skip()
++ * DESCRIPTION: advance bit pointer
++ */
++static void mad_bit_skip(struct mad_bitptr *bitptr, unsigned int len)
++{
++ bitptr->read_bytes += len;
++ bitptr->byte += (bitptr->read_bytes >> 3);
++ bitptr->read_bytes &= 0x7;
++}
++
++/*
++ * NAME: bit->read()
++ * DESCRIPTION: read an arbitrary number of bits and return their UIMSBF value
++ */
++static unsigned long mad_bit_read(struct mad_bitptr *bitptr, unsigned int len)
++{
++ register unsigned long value;
++
++ if (!len)
++ return 0;
++
++ value = *(unsigned int *)bitptr->byte;
++
++ value <<= bitptr->read_bytes;
++ value >>= (32 - len);
++
++ bitptr->read_bytes += len;
++ bitptr->byte += (bitptr->read_bytes >> 3);
++ bitptr->read_bytes &= 0x7;
++
++ return value;
++}
++
++# define mad_bit_finish(bitptr) /* nothing */
++
++static unsigned long mad_bit_bitsleft(struct mad_bitptr *bitptr)
++{
++ return (8 - (bitptr)->read_bytes);
++}
++
++#else /* #ifdef FPM_AVR32 */
++
+ struct mad_bitptr {
+ unsigned char const *byte;
+ unsigned short cache;
+@@ -42,6 +128,8 @@ void mad_bit_skip(struct mad_bitptr *, unsigned int);
+ unsigned long mad_bit_read(struct mad_bitptr *, unsigned int);
+ void mad_bit_write(struct mad_bitptr *, unsigned int, unsigned long);
+
++#endif
++
+ unsigned short mad_bit_crc(struct mad_bitptr, unsigned int, unsigned short);
+
+ # endif
+diff --git a/configure.ac b/configure.ac
+index 9b79399..063cb9b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -274,13 +274,14 @@ fi
+ AC_MSG_CHECKING(for architecture-specific fixed-point math routines)
+ AC_ARG_ENABLE(fpm, AC_HELP_STRING([--enable-fpm=ARCH],
+ [use ARCH-specific fixed-point math routines
+- (one of: intel, arm, mips, sparc, ppc, 64bit, default)]),
++ (one of: intel, arm, avr32, mips, sparc, ppc, 64bit, default)]),
+ [
+ case "$enableval" in
+ yes) ;;
+ no|default|approx) FPM="DEFAULT" ;;
+ intel|i?86) FPM="INTEL" ;;
+ arm) FPM="ARM" ;;
++ avr32) FPM="AVR32" ;;
+ mips) FPM="MIPS" ;;
+ sparc) FPM="SPARC" ;;
+ ppc|powerpc) FPM="PPC" ;;
+@@ -298,6 +299,7 @@ then
+ case "$host" in
+ i?86-*) FPM="INTEL" ;;
+ arm*-*) FPM="ARM" ;;
++ avr32*-*) FPM="AVR32" ;;
+ mips*-*) FPM="MIPS" ;;
+ sparc*-*) FPM="SPARC" ;;
+ powerpc*-*) FPM="PPC" ;;
+@@ -343,6 +345,11 @@ then
+ ASO="$ASO -DASO_IMDCT"
+ ASO_OBJS="imdct_l_arm.lo"
+ ;;
++ avr32*-*)
++ ASO="$ASO -DASO_INTERLEAVE2"
++ ASO="$ASO -DASO_ZEROCHECK"
++ ASO_OBJS="dct32_avr32.lo synth_avr32.lo imdct_avr32.lo"
++ ;;
+ mips*-*)
+ ASO="$ASO -DASO_INTERLEAVE2"
+ ASO="$ASO -DASO_ZEROCHECK"
+diff --git a/configure b/configure
+index ee421cc..7a9f0c8 100755
+--- a/configure
++++ b/configure
+@@ -1048,7 +1048,7 @@ Optional Features:
+ --enable-speed optimize for speed over accuracy
+ --enable-accuracy optimize for accuracy over speed
+ --enable-fpm=ARCH use ARCH-specific fixed-point math routines (one of:
+- intel, arm, mips, sparc, ppc, 64bit, default)
++ intel, arm, avr32, mips, sparc, ppc, 64bit, default)
+ --enable-sso use subband synthesis optimization
+ --disable-aso disable architecture-specific optimizations
+ --enable-strict-iso use strict ISO/IEC interpretations
+@@ -21477,6 +21477,7 @@ if test "${enable_fpm+set}" = set; then
+ no|default|approx) FPM="DEFAULT" ;;
+ intel|i?86) FPM="INTEL" ;;
+ arm) FPM="ARM" ;;
++ avr32) FPM="AVR32" ;;
+ mips) FPM="MIPS" ;;
+ sparc) FPM="SPARC" ;;
+ ppc|powerpc) FPM="PPC" ;;
+@@ -21498,6 +21499,7 @@ then
+ case "$host" in
+ i?86-*) FPM="INTEL" ;;
+ arm*-*) FPM="ARM" ;;
++ avr32*-*) FPM="AVR32" ;;
+ mips*-*) FPM="MIPS" ;;
+ sparc*-*) FPM="SPARC" ;;
+ powerpc*-*) FPM="PPC" ;;
+@@ -21554,6 +21556,11 @@ then
+ ASO="$ASO -DASO_IMDCT"
+ ASO_OBJS="imdct_l_arm.lo"
+ ;;
++ avr32*-*)
++ ASO="$ASO -DASO_INTERLEAVE2"
++ ASO="$ASO -DASO_ZEROCHECK"
++ ASO_OBJS="dct32_avr32.lo synth_avr32.lo imdct_avr32.lo"
++ ;;
+ mips*-*)
+ ASO="$ASO -DASO_INTERLEAVE2"
+ ASO="$ASO -DASO_ZEROCHECK"
+diff --git a/dct32_avr32.S b/dct32_avr32.S
+new file mode 100644
+index 0000000..7513340
+--- /dev/null
++++ b/dct32_avr32.S
+@@ -0,0 +1,780 @@
++/*
++ Optimized 32-point Discrete Cosine Transform (DCT)
++ Copyright 2003-2006 Atmel Corporation.
++
++ Written by Ronny Pedersen, Atmel Norway
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++
++#define SHIFT 12
++#define MAD_F_SCALEBITS 28
++#define SLOTS 8
++
++#define MAD_F(x) ((x + (1 << 15)) >> 16)
++
++# define costab1 MAD_F(0x7fd8878e)
++# define costab2 MAD_F(0x7f62368f)
++# define costab3 MAD_F(0x7e9d55fc)
++# define costab4 MAD_F(0x7d8a5f40)
++# define costab5 MAD_F(0x7c29fbee)
++# define costab6 MAD_F(0x7a7d055b)
++# define costab7 MAD_F(0x78848414)
++# define costab8 MAD_F(0x7641af3d)
++# define costab9 MAD_F(0x73b5ebd1)
++# define costab10 MAD_F(0x70e2cbc6)
++# define costab11 MAD_F(0x6dca0d14)
++# define costab12 MAD_F(0x6a6d98a4)
++# define costab13 MAD_F(0x66cf8120)
++# define costab14 MAD_F(0x62f201ac)
++# define costab15 MAD_F(0x5ed77c8a)
++# define costab16 MAD_F(0x5a82799a)
++# define costab17 MAD_F(0x55f5a4d2)
++# define costab18 MAD_F(0x5133cc94)
++# define costab19 MAD_F(0x4c3fdff4)
++# define costab20 MAD_F(0x471cece7)
++# define costab21 MAD_F(0x41ce1e65)
++# define costab22 MAD_F(0x3c56ba70)
++# define costab23 MAD_F(0x36ba2014)
++# define costab24 MAD_F(0x30fbc54d)
++# define costab25 MAD_F(0x2b1f34eb)
++# define costab26 MAD_F(0x25280c5e)
++# define costab27 MAD_F(0x1f19f97b)
++# define costab28 MAD_F(0x18f8b83c)
++# define costab29 MAD_F(0x12c8106f)
++# define costab30 MAD_F(0x0c8bd35e)
++# define costab31 MAD_F(0x0647d97c)
++
++
++ .macro butterfly2_in out1, out2, out3, out4, in, idx_in1, idx_in2, idx_in3, idx_in4, coeff1, coeff2, tmplo, tmphi
++ mov \tmplo, \coeff1
++ ld.w \out1, \in[\idx_in1 * 4]
++ ld.w \out2, \in[\idx_in2 * 4]
++ ld.w \out3, \in[\idx_in3 * 4]
++ ld.w \out4, \in[\idx_in4 * 4]
++ sub \tmphi, \out1, \out2
++ add \out1, \out2
++ mulsatrndwh.w \out2, \tmphi, \tmplo:b
++
++ sub \tmphi, \out3, \out4
++ mov \tmplo, \coeff2
++ add \out3, \out4
++ mulsatrndwh.w \out4, \tmphi, \tmplo:b
++ .endm
++
++ .macro butterfly2 in1, in2, in3, in4, coeff1, tmplo, tmphi, tmp
++ mov \tmp, \coeff1
++ sub \tmphi, \in1, \in2
++ add \in1, \in2
++ mulsatrndwh.w \in2, \tmphi, \tmp:b
++
++ sub \tmphi, \in3, \in4
++ add \in3, \in4
++ mulsatrndwh.w \in4, \tmphi, \tmp:b
++ .endm
++
++ .macro butterfly4 in1, in2, in3, in4, in5, in6, in7, in8, coeff1, tmplo, tmphi, tmp
++ mov \tmp, \coeff1
++ sub \tmphi, \in1, \in2
++ add \in1, \in2
++ mulsatrndwh.w \in2, \tmphi, \tmp:b
++
++ sub \tmphi, \in3, \in4
++ add \in3, \in4
++ mulsatrndwh.w \in4, \tmphi, \tmp:b
++
++ sub \tmphi, \in5, \in6
++ add \in5, \in6
++ mulsatrndwh.w \in6, \tmphi, \tmp:b
++
++ sub \tmphi, \in7, \in8
++ add \in7, \in8
++ mulsatrndwh.w \in8, \tmphi, \tmp:b
++ .endm
++
++ .macro scale reg
++ .endm
++
++/*void dct32( mad_fixed_t const in[32], unsigned int slot,
++ mad_fixed_t lo[16][8], mad_fixed_t hi[16][8]) */
++
++ .global dct32_avr32
++dct32_avr32:
++ stm --sp, r0-r7, r9-r11, lr
++
++ sub sp, 32*4
++
++/* t0 = in[0] + in[31]; t16 = MUL(in[0] - in[31], costab1);
++ t1 = in[15] + in[16]; t17 = MUL(in[15] - in[16], costab31); */
++ butterfly2_in r4/*t0*/, r5/*t16*/, r6/*t1*/, r7/*t17*/, r12, 0, 31, 15, 16, costab1, costab31, r10, r11
++
++/* t41 = t16 + t17;
++ t59 = MUL(t16 - t17, costab2);
++ t33 = t0 + t1;
++ t50 = MUL(t0 - t1, costab2);*/
++ butterfly2 r5/*t41*/, r7/*t59*/, r4/*t33*/, r6/*t50*/, costab2, r10, r11, lr
++
++/* t2 = in[7] + in[24]; t18 = MUL(in[7] - in[24], costab15);
++ t3 = in[8] + in[23]; t19 = MUL(in[8] - in[23], costab17); */
++ butterfly2_in r0/*t2*/, r1/*t18*/, r2/*t3*/, r3/*t19*/, r12, 7, 24, 8, 23, costab15, costab17, r10, r11
++
++/* t42 = t18 + t19;
++ t60 = MUL(t18 - t19, costab30);
++ t34 = t2 + t3;
++ t51 = MUL(t2 - t3, costab30); */
++ butterfly2 r1/*t42*/, r3/*t60*/, r0/*t34*/, r2/*t51*/, costab30, r10, r11, lr
++
++/* t73 = t41 + t42; t94 = MUL(t41 - t42, costab4);
++ t83 = t59 + t60; t106 = MUL(t59 - t60, costab4); */
++
++
++/* t69 = t33 + t34; t89 = MUL(t33 - t34, costab4);
++ t78 = t50 + t51; t100 = MUL(t50 - t51, costab4); */
++ butterfly4 r5/*t73*/, r1/*t94*/, r7/*t83*/, r3/*t106*/,r4/*t69*/, r0/*t89*/, r6/*t78*/, r2/*t100*/, costab4, r10, r11, lr
++
++/* Store away the computed butterflies:
++ sp[0-7] = t83, t78, t73, t69, t106, t100, t94, t89 */
++ stm sp, r0-r7
++
++
++/* t4 = in[3] + in[28]; t20 = MUL(in[3] - in[28], costab7);
++ t5 = in[12] + in[19]; t21 = MUL(in[12] - in[19], costab25); */
++ butterfly2_in r4/*t4*/, r5/*t20*/, r6/*t5*/, r7/*t21*/, r12, 3, 28, 12, 19, costab7, costab25, r10, r11
++
++/* t43 = t20 + t21;
++ t61 = MUL(t20 - t21, costab14);
++ t35 = t4 + t5;
++ t52 = MUL(t4 - t5, costab14); */
++ butterfly2 r5/*t43*/, r7/*t61*/, r4/*t35*/, r6/*t52*/, costab14, r10, r11, lr
++
++/* t6 = in[4] + in[27]; t22 = MUL(in[4] - in[27], costab9);
++ t7 = in[11] + in[20]; t23 = MUL(in[11] - in[20], costab23); */
++ butterfly2_in r0/*t6*/, r1/*t22*/, r2/*t7*/, r3/*t23*/, r12, 4, 27, 11, 20, costab9, costab23, r10, r11
++
++/* t44 = t22 + t23;
++ t62 = MUL(t22 - t23, costab18);
++ t36 = t6 + t7;
++ t53 = MUL(t6 - t7, costab18); */
++ butterfly2 r1/*t44*/, r3/*t62*/, r0/*t36*/, r2/*t53*/, costab18, r10, r11, lr
++
++/* t74 = t43 + t44; t95 = MUL(t43 - t44, costab28);
++ t84 = t61 + t62; t107 = MUL(t61 - t62, costab28); */
++
++/* t70 = t35 + t36; t90 = MUL(t35 - t36, costab28);
++ t79 = t52 + t53; t101 = MUL(t52 - t53, costab28); */
++ butterfly4 r5/*t74*/, r1/*t95*/, r7/*t84*/, r3/*t107*/, r4/*t70*/, r0/*t90*/, r6/*t79*/, r2/*t101*/, costab28, r10, r11, lr
++
++/* Store away the computed butterflies:
++ sp[8-15] = t84, t79, t74, t70, t107, t101, t95, t90 */
++ sub r10, sp, -8*4
++ stm r10, r0-r7
++
++
++/* t8 = in[1] + in[30]; t24 = MUL(in[1] - in[30], costab3);
++ t9 = in[14] + in[17]; t25 = MUL(in[14] - in[17], costab29); */
++ butterfly2_in r4/*t8*/, r5/*t24*/, r6/*t9*/, r7/*t25*/, r12, 1, 30, 14, 17, costab3, costab29, r10, r11
++
++
++/* t45 = t24 + t25;
++ t63 = MUL(t24 - t25, costab6);
++ t37 = t8 + t9;
++ t54 = MUL(t8 - t9, costab6); */
++ butterfly2 r5/*t45*/, r7/*t63*/, r4/*t37*/, r6/*t54*/, costab6, r10, r11, lr
++
++/* t10 = in[6] + in[25]; t26 = MUL(in[6] - in[25], costab13);
++ t11 = in[9] + in[22]; t27 = MUL(in[9] - in[22], costab19); */
++ butterfly2_in r0/*t10*/, r1/*t26*/, r2/*t11*/, r3/*t27*/, r12, 6, 25, 9, 22, costab13, costab19, r10, r11
++
++/* t46 = t26 + t27;
++ t64 = MUL(t26 - t27, costab26);
++ t38 = t10 + t11;
++ t55 = MUL(t10 - t11, costab26); */
++ butterfly2 r1/*t46*/, r3/*t64*/, r0/*t38*/, r2/*t55*/, costab26, r10, r11, lr
++
++/* t75 = t45 + t46; t96 = MUL(t45 - t46, costab12);
++ t85 = t63 + t64; t108 = MUL(t63 - t64, costab12); */
++
++/* t71 = t37 + t38; t91 = MUL(t37 - t38, costab12);
++ t80 = t54 + t55; t102 = MUL(t54 - t55, costab12); */
++ butterfly4 r5/*t75*/, r1/*t96*/, r7/*t85*/, r3/*t108*/, r4/*t71*/, r0/*t91*/, r6/*t80*/, r2/*t102*/, costab12, r10, r11, lr
++
++/* Store away the computed butterflies:
++ sp[16-23] = t85, t80, t75, t71, t108, t102, t96, t91 */
++ sub r10, sp, -16*4
++ stm r10, r0-r7
++
++/* t12 = in[2] + in[29]; t28 = MUL(in[2] - in[29], costab5);
++ t13 = in[13] + in[18]; t29 = MUL(in[13] - in[18], costab27); */
++ butterfly2_in r4/*t12*/, r5/*t28*/, r6/*t13*/, r7/*t29*/, r12, 2, 29, 13, 18, costab5, costab27, r10, r11
++
++/* t47 = t28 + t29;
++ t65 = MUL(t28 - t29, costab10);
++ t39 = t12 + t13;
++ t56 = MUL(t12 - t13, costab10); */
++ butterfly2 r5/*t47*/, r7/*t65*/, r4/*t39*/, r6/*t56*/, costab10, r10, r11, lr
++
++/* t14 = in[5] + in[26]; t30 = MUL(in[5] - in[26], costab11);
++ t15 = in[10] + in[21]; t31 = MUL(in[10] - in[21], costab21);*/
++ butterfly2_in r0/*t14*/, r1/*t30*/, r2/*t15*/, r3/*t31*/, r12, 5, 26, 10, 21, costab11, costab21, r10, r11
++
++/* t48 = t30 + t31;
++ t66 = MUL(t30 - t31, costab22);
++ t40 = t14 + t15;
++ t57 = MUL(t14 - t15, costab22);*/
++ butterfly2 r1/*t48*/, r3/*t66*/, r0/*t40*/, r2/*t57*/, costab22, r10, r11, lr
++
++/* t76 = t47 + t48; t97 = MUL(t47 - t48, costab20);
++ t86 = t65 + t66; t109 = MUL(t65 - t66, costab20);*/
++
++/* t72 = t39 + t40; t92 = MUL(t39 - t40, costab20);
++ t81 = t56 + t57; t103 = MUL(t56 - t57, costab20);*/
++ butterfly4 r5/*t76*/, r1/*t97*/, r7/*t86*/, r3/*t109*/,r4/*t72*/, r0/*t92*/, r6/*t81*/, r2/*t103*/, costab20, r10, r11, lr
++
++/* Store away the computed butterflies:
++ sp[24-31] = t86, t81, t76, t72, t109, t103, t97, t92 */
++ sub r10, sp, -24*4
++ stm r10, r0-r7
++
++/* We now have the following on the stack:
++
++ sp[0-7] = t83, t78, t73, t69, t106, t100, t94, t89
++ sp[8-15] = t84, t79, t74, t70, t107, t101, t95, t90
++ sp[16-23] = t85, t80, t75, t71, t108, t102, t96, t91
++ sp[24-31] = t86, t81, t76, t72, t109, t103, t97, t92 */
++
++/* Load {r0...r7} = { t72, t76, t71, t75, t70, t74, t69, t73 } */
++ ld.d r6, sp[2*4]
++ ld.d r4, sp[10*4]
++ ld.d r2, sp[18*4]
++ ld.d r0, sp[26*4]
++
++
++/* t113 = t69 + t70;
++ t141 = MUL(t69 - t70, costab8);
++
++ t115 = t73 + t74;
++ t144 = MUL(t73 - t74, costab8); */
++ butterfly2 r6/*t113*/, r4/*t141*/, r7/*t115*/, r5/*t144*/, costab8, r10, r11, lr
++
++/* t114 = t71 + t72;
++ t142 = MUL(t71 - t72, costab24);
++
++ t116 = t75 + t76;
++ t145 = MUL(t75 - t76, costab24); */
++ butterfly2 r2/*t114*/, r0/*t142*/, r3/*t116*/, r1/*t145*/, costab24, r10, r11, lr
++
++
++/*
++ t191 = t113 + t114;
++ t192 = MUL(t113 - t114, costab16)
++
++ t32 = t115 + t116;
++ t177 = MUL(t115 - t116, costab16) ;
++
++ t143 = t141 + t142;
++ t190 = MUL(t141 - t142, costab16) ;
++
++ t146 = t144 + t145;
++ t184 = MUL(t144 - t145, costab16) ; */
++ butterfly4 r6/*t191*/, r2/*t192*/, r7/*t32*/, r3/*t177*/, r4/*t143*/, r0/*190*/, r5/*t146*/, r1/*t184*/, costab16, r10, r11, lr
++
++/* Store away the computed butterflies:
++ sp[2-3] = t32, t191
++ sp[10-11] = t146, t143
++ sp[18-19] = t177, t192
++ sp[26-27] = t184, t190 */
++ st.d sp[2*4] , r6
++ st.d sp[10*4], r4
++ st.d sp[18*4], r2
++ st.d sp[26*4], r0
++
++/* Load {r0...r7} = { t81, t86, t80, t85, t79, t84, t78, t83 } */
++ ld.d r6, sp[0*4]
++ ld.d r4, sp[8*4]
++ ld.d r2, sp[16*4]
++ ld.d r0, sp[24*4]
++
++
++/* t118 = t78 + t79;
++ t148 = MUL(t78 - t79, costab8);
++
++ t121 = t83 + t84;
++ t152 = MUL(t83 - t84, costab8); */
++ butterfly2 r6/*t118*/, r4/*t148*/, r7/*t121*/, r5/*t152*/, costab8, r10, r11, lr
++
++/* t119 = t80 + t81;
++ t149 = MUL(t80 - t81, costab24);
++
++ t122 = t85 + t86;
++ t153 = MUL(t85 - t86, costab24); */
++ butterfly2 r2/*t119*/, r0/*t149*/, r3/*t122*/, r1/*t153*/, costab24, r10, r11, lr
++
++
++
++/* t58 = t118 + t119;
++ t178 = MUL(t118 - t119, costab16) ;
++
++ t67 = t121 + t122;
++ t179 = MUL(t121 - t122, costab16) ;
++
++ t150 = t148 + t149;
++ t185 = MUL(t148 - t149, costab16) ;
++
++ t154 = t152 + t153;
++ t186 = MUL(t152 - t153, costab16) ; */
++ butterfly4 r6/*t58*/, r2/*t178*/, r7/*t67*/, r3/*t179*/, r4/*t150*/, r0/*185*/, r5/*t154*/, r1/*t186*/, costab16, r10, r11, lr
++
++/* Store away the computed butterflies:
++ sp[0-1] = t67, t58
++ sp[8-9] = t154, t150
++ sp[16-17] = t179, t178
++ sp[24-25] = t186, t185 */
++ st.d sp[0*4] , r6
++ st.d sp[8*4], r4
++ st.d sp[16*4], r2
++ st.d sp[24*4], r0
++
++/* Load {r0...r7} = { t92, t97, t91, t96, t90, t95, t89, t94 } */
++ ld.d r6, sp[6*4]
++ ld.d r4, sp[14*4]
++ ld.d r2, sp[22*4]
++ ld.d r0, sp[30*4]
++
++
++/* t125 = t89 + t90;
++ t157 = MUL(t89 - t90, costab8);
++
++ t128 = t94 + t95;
++ t161 = MUL(t94 - t95, costab8); */
++ butterfly2 r6/*t125*/, r4/*t157*/, r7/*t128*/, r5/*t161*/, costab8, r10, r11, lr
++
++/* t126 = t91 + t92;
++ t158 = MUL(t91 - t92, costab24);
++
++ t129 = t96 + t97;
++ t162 = MUL(t96 - t97, costab24); */
++ butterfly2 r2/*t126*/, r0/*t158*/, r3/*t129*/, r1/*t162*/, costab24, r10, r11, lr
++
++
++/*
++ t93 = t125 + t126;
++ t180 = MUL(t125 - t126, costab16) ;
++
++ t98 = t128 + t129;
++ t181 = MUL(t128 - t129, costab16) ;
++
++ t159 = t157 + t158;
++ t187 = MUL(t157 - t158, costab16) ;
++
++ t163 = t161 + t162;
++ t188 = MUL(t161 - t162, costab16) ; */
++ butterfly4 r6/*t93*/, r2/*t180*/, r7/*t98*/, r3/*t181*/, r4/*t159*/, r0/*187*/, r5/*t163*/, r1/*t188*/, costab16, r10, r11, lr
++
++
++/* Store away the computed butterflies:
++ sp[6-7] = t98, t93
++ sp[14-15] = t163, t159
++ sp[22-23] = t181, t180
++ sp[30-31] = t188, t187 */
++ st.d sp[6*4] , r6
++ st.d sp[14*4], r4
++ st.d sp[22*4], r2
++ st.d sp[30*4], r0
++
++/* Load {r0...r7} = { t103, t109, t102, t108, t101, t107, t100, t106 } */
++ ld.d r6, sp[4*4]
++ ld.d r4, sp[12*4]
++ ld.d r2, sp[20*4]
++ ld.d r0, sp[28*4]
++
++
++
++/* t132 = t100 + t101;
++ t166 = MUL(t100 - t101, costab8);
++
++ t136 = t106 + t107;
++ t171 = MUL(t106 - t107, costab8); */
++ butterfly2 r6/*t132*/, r4/*t166*/, r7/*t136*/, r5/*t171*/, costab8, r10, r11, lr
++
++/* t133 = t102 + t103;
++ t167 = MUL(t102 - t103, costab24);
++
++ t137 = t108 + t109;
++ t172 = MUL(t108 - t109, costab24);*/
++ butterfly2 r2/*t133*/, r0/*t167*/, r3/*t137*/, r1/*t172*/, costab24, r10, r11, lr
++
++
++/* t104 = t132 + t133;
++ t182 = MUL(t132 - t133, costab16) ;
++
++ t110 = t136 + t137;
++ t183 = MUL(t136 - t137, costab16) ;
++
++ t168 = t166 + t167;
++ t189 = MUL(t166 - t167, costab16) ;
++
++ t173 = t171 + t172;
++ t208 = MUL(t171 - t172, costab16) ; */
++ butterfly4 r6/*t104*/, r2/*t182*/, r7/*t110*/, r3/*t183*/, r4/*t168*/, r0/*189*/, r5/*t173*/, r1/*t208*/, costab16, r10, r11, lr
++
++/* Store away the computed butterflies:
++ sp[4-5] = t110, t104
++ sp[12-13] = t173, t168
++ sp[20-21] = t183, t182
++ sp[28-29] = t208, t189 */
++ st.d sp[4*4] , r6
++ st.d sp[12*4], r4
++ st.d sp[20*4], r2
++ st.d sp[28*4], r0
++
++/* Now we have the following stack
++
++ sp[0-7] = t67, t58 , t32, t191, t110, t104, t98, t93
++ sp[8-15] = t154, t150, t146, t143, t173, t168, t163, t159
++ sp[16-23] = t179, t178, t177, t192, t183, t182, t181, t180
++ sp[24-31] = t186, t185, t184, t190, t208, t189, t188, t187
++*/
++
++ /* Get slot, lo and hi from stack */
++ lddsp lr, sp[32*4 + 4] /*slot*/
++ lddsp r12, sp[32*4 + 8] /*lo*/
++ lddsp r11, sp[32*4 + 12] /*hi*/
++
++ add r12, r12, lr << 2
++ add r11, r11, lr << 2
++
++
++/* t49 = -(t67 * 2) + t32;
++ hi[14][slot] = SHIFT(t32);
++ t87 = -(t110 * 2) + t67;
++ t138 = -(t173 * 2) + t110;
++ t203 = -(t208 * 2) + t173; */
++
++ lddsp r0/*t67*/, sp[0]
++ lddsp r1/*t32*/, sp[2*4]
++ lddsp r2/*t110*/, sp[4*4]
++ lddsp r3/*t173*/, sp[12*4]
++ lddsp r5/*t208*/, sp[28*4]
++
++ sub r4/*t49*/, r1, r0 << 1
++ scale r1
++ sub r0/*t87*/, r0, r2 << 1
++ st.w r11[14*SLOTS*4], r1
++ sub r2/*t138*/, r2, r3 << 1
++ sub r1/*t203*/, r3, r5 << 1
++
++/* Live: r0 = t87, r1= t203, r2= t138, r4 = t49
++ Free: r3, r5, r6, r7, r8, r9, r10, lr */
++
++/* t68 = (t98 * 2) + t49;
++ hi[12][slot] = SHIFT(-t49);
++ t130 = -(t163 * 2) + t98;
++ t201 = -(t188 * 2) + t163;
++ t200 = -(t186 * 2) + t154;
++ t111 = (t154 * 2) + t87;
++ t77 = -(-(t87 * 2) - t68);
++ t88 = (t146 * 2) + t77;
++ t199 = -(t184 * 2) + t146;
++ hi[ 8][slot] = SHIFT(-t77);
++ hi[10][slot] = SHIFT(t68);*/
++ lddsp r3/*t98*/, sp[6*4]
++ lddsp r5/*t163*/, sp[14*4]
++ lddsp r6/*t188*/, sp[30*4]
++ lddsp r10/*t186*/, sp[24*4]
++
++ add r7/*t68*/, r4, r3 << 1
++ neg r4
++ scale r4
++ lddsp r9/*t154*/, sp[8*4]
++ sub r3/*t130*/, r3, r5 << 1
++ st.w r11[12*SLOTS*4], r4
++ sub r8/*t201*/, r5, r6 << 1
++ sub r4/*t200*/, r9, r10 << 1
++ lddsp lr/*t146*/, sp[10*4]
++ lddsp r6/*t184*/, sp[26*4]
++ add r10/*t111*/, r0, r9 << 1
++ add r5/*t77*/,r7, r0 << 1
++ add r0/*t88*/, r5, lr << 1
++ sub r6/*t199*/, lr, r6 << 1
++ neg r5
++ scale r5
++ scale r7
++ st.w r11[8*SLOTS*4], r5
++ st.w r11[10*SLOTS*4], r7
++
++/* Live: r0 = t88, r1= t203, r2= t138, r3 = t130, r4 = t200,
++ r6 = 199, r8 = t201, r10 = t111
++ Free: r5, r7, r9, lr */
++
++
++/*
++ t123 = -(-(t138 * 2) - t111);
++ t174 = (t183 * 2) + t138;
++ t99 = -(t111 * 2) + t88;
++ hi[ 6][slot] = SHIFT(t88); */
++ lddsp r5/*t183*/, sp[20*4]
++
++ add r7/*t123*/, r10, r2 << 1
++ sub r10/*t99*/, r0, r10 << 1
++ scale r0
++ add r2/*t174*/, r2, r5 << 1
++ st.w r11[6*SLOTS*4], r0
++
++/* Live: r1 = t203, r2 = t174, r3 = t130, r4 = t200,
++ r6 = t199, r7 = t123, r8 = t201, r10 = t99
++ Free: r0, r5, r9, lr */
++
++/* t112 = -(t130 * 2) + t99;
++ t164 = (t181 * 2) + t130;
++ hi[ 4][slot] = SHIFT(-t99); */
++ lddsp r0/*t181*/, sp[22*4]
++
++ sub r5/*t112*/, r10, r3 << 1
++ neg r10
++ scale r10
++ add r3/*164*/, r3, r0 << 1
++ st.w r11[4*SLOTS*4], r10
++
++/* Live: r1 = t203, r2 = t174, r3 = t164, r4 = t200,
++ r5 = t112, r6 = t199, r7 = t123, r8 = t201
++ Free: r0, r9, r10, lr */
++
++
++/* t117 = -(-(t123 * 2) - t112);
++ t139 = (t179 * 2) + t123;
++ hi[ 2][slot] = SHIFT(t112); */
++ lddsp r0/*t179*/, sp[16*4]
++
++ add r9/*t117*/, r5, r7 << 1
++ scale r5
++ add r7/*t139*/, r7, r0 << 1
++ st.w r11[2*SLOTS*4], r5
++
++/* Live: r1 = t203, r2 = t174, r3 = t164, r4 = t200,
++ r6 = t199, r7 = t139, r8 = t201, r9 = t117
++ Free: r0, r5, r10, lr */
++
++/* t155 = -(t174 * 2) + t139;
++ t204 = -(-(t203 * 2) - t174);
++ t124 = (t177 * 2) + t117;
++ hi[ 0][slot] = SHIFT(-t117);
++ t131 = -(t139 * 2) + t124;
++ lo[ 1][slot] = SHIFT(t124);*/
++ lddsp r0/*t177*/, sp[18*4]
++
++ sub r5/*t155*/, r7, r2 << 1
++ add r2/*t204*/, r2, r1 << 1
++ add r0/*t124*/, r9, r0 << 1
++ neg r9
++ scale r9
++ sub r7/*t131*/, r0, r7 << 1
++ scale r0
++ st.w r11[0*SLOTS*4], r9
++ st.w r12[1*SLOTS*4], r0
++
++/* Live: r2 = t204, r3 = t164, r4 = t200,
++ r5 = t155, r6 = t199, r7 = t131, r8 = t201
++ Free: r0, r1, r9, r10, lr */
++
++/* t140 = (t164 * 2) + t131;
++ lo[ 3][slot] = SHIFT(-t131);
++ t202 = -(-(t201 * 2) - t164); */
++ add r0/*t140*/, r7, r3 << 1
++ neg r7
++ scale r7
++ add r3/*t202*/, r3, r8 << 1
++ st.w r12[3*SLOTS*4], r7
++
++/* Live: r0 = t140, r2 = t204, r3 = t202, r4 = t200,
++ r5 = t155, r6 = t199
++ Free: r1, r7, r8, r9, r10, lr */
++
++
++/* t147 = -(-(t155 * 2) - t140);
++ lo[ 5][slot] = SHIFT(t140);
++ t175 = -(t200 * 2) + t155;
++ t156 = -(t199 * 2) + t147;
++ lo[ 7][slot] = SHIFT(-t147); */
++ add r1/*t147*/, r0, r5 << 1
++ scale r0
++ sub r5/*t175*/, r5, r4 << 1
++ sub r4/*156*/, r1, r6 << 1
++ neg r1
++ scale r1
++ st.w r12[5*SLOTS*4], r0
++ st.w r12[7*SLOTS*4], r1
++
++/* Live: r2 = t204, r3 = t202,
++ r4 = t156, r5 = t175
++ Free: r0, r1, r6, r7, r8, r9, r10, lr */
++
++
++/* t205 = -(-(t204 * 2) - t175);
++ t165 = -(t175 * 2) + t156;
++ lo[ 9][slot] = SHIFT(t156);
++ t176 = -(t202 * 2) + t165;
++ lo[11][slot] = SHIFT(-t165);
++ t206 = -(-(t205 * 2) - t176);
++ lo[15][slot] = SHIFT(-t206)
++ lo[13][slot] = SHIFT(t176) */
++ add r0/*t205*/, r5, r2 << 1
++ sub r1/*t165*/, r4, r5 << 1
++ scale r4
++ sub r3/*t176*/, r1, r3 << 1
++ st.w r12[9*SLOTS*4], r4
++ neg r1
++ scale r1
++ add r6/*t206*/, r3, r0 << 1
++ neg r6
++ scale r6
++ scale r3
++ st.w r12[11*SLOTS*4], r1
++ st.w r12[15*SLOTS*4], r6
++ st.w r12[13*SLOTS*4], r3
++
++/* t193 = -((t190 * 2) - t143)
++ hi[ 7][slot] = SHIFT(t143);
++ lo[ 8][slot] = SHIFT(-t193);
++ t82 = -(t104 * 2) + t58;
++ hi[13][slot] = SHIFT(t58);
++ t134 = -(t168 * 2) + t104;
++ t196 = -(t189 * 2) + t168; */
++
++ lddsp r0/*t190*/, sp[27*4]
++ lddsp r1/*t143*/, sp[11*4]
++ lddsp r2/*t104*/, sp[5*4]
++ lddsp r3/*t58*/, sp[1*4]
++ lddsp r4/*t168*/, sp[13*4]
++ lddsp r5/*t189*/, sp[29*4]
++ sub r0/*t193*/, r1, r0 << 1
++ neg r0
++ scale r1
++ scale r0
++ st.w r11[7*SLOTS*4], r1
++ st.w r12[8*SLOTS*4], r0
++ sub r0/*t82*/, r3, r2 << 1
++ scale r3
++ sub r2/*t134*/, r2, r4 << 1
++ sub r4/*t196*/, r4, r5 << 1
++ st.w r11[13*SLOTS*4], r3
++
++/* Live: r0 = t82, r2 = t134,
++ r4 = t196
++ Free: r1, r3, r5, r6, r7, r8, r9, r10, lr */
++
++
++
++/*
++
++ t207 = -(t185 * 2) + t150;
++ t105 = (t150 * 2) + t82;
++ hi[ 9][slot] = SHIFT(-t82);
++ t120 = -(-(t134 * 2) - t105);
++ hi[ 5][slot] = SHIFT(t105);
++ t169 = (t182 * 2) + t134;
++
++ t135 = (t178 * 2) + t120;
++ hi[ 1][slot] = SHIFT(-t120);
++ t197 = -(-(t196 * 2) - t169);
++ t151 = -(t169 * 2) + t135;
++ lo[ 2][slot] = SHIFT(t135); */
++ lddsp r1/*t185*/, sp[25*4]
++ lddsp r3/*t150*/, sp[9*4]
++ lddsp r5/*t182*/, sp[21*4]
++ lddsp r8/*t178*/, sp[17*4]
++
++ sub r6/*t207*/, r3, r1 << 1
++ add r3/*t105*/, r0, r3 << 1
++ neg r0
++ scale r0
++ add r7/*t120*/, r3, r2 << 1
++ scale r3
++ st.w r11[9*SLOTS*4], r0
++ st.w r11[5*SLOTS*4], r3
++ add r2/*t169*/, r2, r5 << 1
++ add r8/*t135*/, r7, r8 << 1
++ neg r7
++ scale r7
++ add r4/*t197*/, r2, r4 << 1
++ sub r2/*t151*/, r8, r2 << 1
++ scale r8
++ st.w r11[1*SLOTS*4], r7
++ st.w r12[2*SLOTS*4], r8
++
++/* Live: r2 = t151, r4 = t197, r6 = t207
++
++ Free: r0, r1, r3, r5, r7, r8, r9, r10, lr */
++
++
++
++/* t170 = -(t207 * 2) + t151;
++ lo[ 6][slot] = SHIFT(-t151);
++
++ t198 = -(-(t197 * 2) - t170);
++ lo[10][slot] = SHIFT(t170);
++ lo[14][slot] = SHIFT(-t198);
++
++ t127 = -(t159 * 2) + t93;
++ hi[11][slot] = SHIFT(t93);
++ t194 = -(t187 * 2) + t159; */
++ lddsp r0/*t159*/, sp[15*4]
++ lddsp r1/*t93*/, sp[7*4]
++ lddsp r3/*t187*/, sp[31*4]
++ sub r5/*t170*/, r2, r6 << 1
++ neg r2
++ scale r2
++ add r4/*t198*/,r5, r4 << 1
++ neg r4
++ scale r5
++ scale r4
++ st.w r12[6*SLOTS*4], r2
++ st.w r12[10*SLOTS*4], r5
++ st.w r12[14*SLOTS*4], r4
++ sub r7/*t127*/, r1, r0 << 1
++ scale r1
++ sub r0/*t194*/, r0, r3 << 1
++ st.w r11[11*SLOTS*4], r1
++
++
++/* Live: r0 = t194, r7 = t127
++ Free: r1, r2, r3, r4, r6, r5, r8, r9, r10, lr */
++
++/* t160 = (t180 * 2) + t127;
++ hi[ 3][slot] = SHIFT(-t127);
++ t195 = -(-(t194 * 2) - t160);
++ lo[ 4][slot] = SHIFT(t160);
++ lo[12][slot] = SHIFT(-t195);
++
++ hi[15][slot] = SHIFT(t191);
++ lo[ 0][slot] = SHIFT(t192); */
++ lddsp r1/*t180*/, sp[23*4]
++ lddsp r2/*t191*/, sp[3*4]
++ lddsp r3/*t192*/, sp[19*4]
++ add r4/*t160*/, r7, r1 << 1
++ neg r7
++ scale r7
++ add r6/*t195*/, r4, r0 << 1
++ scale r4
++ neg r6
++ scale r6
++ st.w r11[3*SLOTS*4], r7
++ st.w r12[4*SLOTS*4], r4
++ st.w r12[12*SLOTS*4], r6
++ scale r2
++ scale r3
++ st.w r11[15*SLOTS*4], r2
++ st.w r12[0*SLOTS*4], r3
++
++ sub sp, -32*4
++ ldm sp++,r0-r7, r9-r11, pc
+diff --git a/fixed.h b/fixed.h
+index 4b58abf..0a1350a 100644
+--- a/fixed.h
++++ b/fixed.h
+@@ -237,6 +237,46 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
+ # define MAD_F_SCALEBITS MAD_F_FRACBITS
+ # endif
+
++/* --- AVR32 ----------------------------------------------------------------- */
++
++# elif defined(FPM_AVR32)
++
++typedef signed short mad_coeff_t;
++
++struct DWstruct {int high, low;};
++
++typedef union {
++ struct DWstruct s;
++ long long ll;
++} DWunion;
++
++# define MAD_F_MLX(hi, lo, x, y) \
++ { register DWunion __res; \
++ __res.ll = (long long)x * (long long)y; \
++ /* asm ("muls.d\t%0, %1, %2" : "=r" (__res.ll) : "r" (x), "r" (y));*/ \
++ hi = __res.s.high; \
++ lo = __res.s.low; }
++
++# define MAD_F_MLA(hi, lo, x, y) \
++ { register DWunion __res; \
++ __res.s.high = hi; \
++ __res.s.low = lo; \
++ __res.ll += (long long)x * (long long)y; \
++/* asm ("macs.d\t%0, %1, %2" : "+r" (__res.ll) : "r" (x), "r" (y));*/ \
++ hi = __res.s.high; \
++ lo = __res.s.low; }
++
++
++# define MAD_F_MLN(hi, lo) \
++ asm ("neg %0\n" \
++ "acr %1\n" \
++ "neg %1" \
++ : "+r" (lo), "+r" (hi) \
++ :: "cc")
++
++
++# define MAD_F_SCALEBITS MAD_F_FRACBITS
++
+ /* --- ARM ----------------------------------------------------------------- */
+
+ # elif defined(FPM_ARM)
+@@ -433,6 +473,8 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
+ *
+ * Pre-rounding is required to stay within the limits of compliance.
+ */
++typedef signed int mad_coeff_t;
++
+ # if defined(OPT_SPEED)
+ # define mad_f_mul(x, y) (((x) >> 12) * ((y) >> 16))
+ # else
+diff --git a/imdct_avr32.S b/imdct_avr32.S
+new file mode 100644
+index 0000000..d0ee6b4
+--- /dev/null
++++ b/imdct_avr32.S
+@@ -0,0 +1,789 @@
++/*
++ Optimized 36-point Inverse Modified Cosine Transform (IMDCT)
++ Copyright 2003-2006 Atmel Corporation.
++
++ Written by Ronny Pedersen, Atmel Norway
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++
++#define MAD_F(x) ((x + (1 << 13)) >> 14)
++
++ .public imdct36_avr32
++
++/*
++ void imdct36(mad_fixed_t const x[18], mad_fixed_t y[36])
++ {
++ mad_fixed_t tmp[18];
++ int i;
++*/
++/* DCT-IV */
++imdct36_avr32:
++ pushm r0-r7,r11,lr
++ sub sp, 4*18
++/*
++ {
++ mad_fixed_t tmp2[18];
++ int i;
++
++ /* scale[i] = 2 * cos(PI * (2 * i + 1) / (4 * 18)) */
++/*
++ static mad_fixed_t const scale[18] = {
++ MAD_F(0x1ff833fa), MAD_F(0x1fb9ea93), MAD_F(0x1f3dd120),
++ MAD_F(0x1e84d969), MAD_F(0x1d906bcf), MAD_F(0x1c62648b),
++ MAD_F(0x1afd100f), MAD_F(0x1963268b), MAD_F(0x1797c6a4),
++ MAD_F(0x159e6f5b), MAD_F(0x137af940), MAD_F(0x11318ef3),
++ MAD_F(0x0ec6a507), MAD_F(0x0c3ef153), MAD_F(0x099f61c5),
++ MAD_F(0x06ed12c5), MAD_F(0x042d4544), MAD_F(0x0165547c)
++ };
++*/
++
++ /* scaling */
++
++/*
++ for (i = 0; i < 18; i += 3) {
++ tmp2[i + 0] = mad_f_mul(x[i + 0], scale[i + 0]);
++ tmp2[i + 1] = mad_f_mul(x[i + 1], scale[i + 1]);
++ tmp2[i + 2] = mad_f_mul(x[i + 2], scale[i + 2]);
++ }
++*/
++ /* even input butterfly */
++
++/*
++ for (i = 0; i < 9; i += 3) {
++ tmp3[i + 0] = tmp2[i + 0] + tmp2[18 - (i + 0) - 1];
++ tmp3[i + 1] = tmp2[i + 1] + tmp2[18 - (i + 1) - 1];
++ tmp3[i + 2] = tmp2[i + 2] + tmp2[18 - (i + 2) - 1];
++ }
++ for (i = 0; i < 9; i += 3) {
++ tmp4[i + 0] = tmp2[i + 0] - tmp2[18 - (i + 0) - 1];
++ tmp4[i + 1] = tmp2[i + 1] - tmp2[18 - (i + 1) - 1];
++ tmp4[i + 2] = tmp2[i + 2] - tmp2[18 - (i + 2) - 1];
++ }
++*/
++
++ ld.d r8, r12[0] /*r8 = x[1], r9 = x[0]*/
++ ld.d r0, pc[scale_dctIV - .] /*r0 = {scale[2], scale[3]}, r1 = { scale[0], scale[1] }*/
++ ld.d r2, r12[2*4] /*r2 = x[3], r3 = x[2]*/
++ ld.d r4, pc[scale_dctIV - . + 14*2] /*r4 = {scale[16], scale[17]}, r5 = { scale[14], scale[15] }*/
++ mulsatrndwh.w r9/*tmp2[0]*/, r9, r1:t /*tmp2[0] = mad_f_mul(x[0], scale[0]) */
++ ld.d r6, r12[16*4] /*r6 = x[17], r7 = x[16]*/
++ mulsatrndwh.w r8/*tmp2[1]*/, r8, r1:b /*tmp2[1] = mad_f_mul(x[1], scale[1]) */
++ mulsatrndwh.w r3/*tmp2[2]*/, r3, r0:t /*tmp2[2] = mad_f_mul(x[2], scale[2]) */
++ mulsatrndwh.w r2/*tmp2[3]*/, r2, r0:b /*tmp2[3] = mad_f_mul(x[3], scale[3]) */
++ ld.d r0, r12[14*4] /*r0 = x[15], r1 = x[14]*/
++ mulsatrndwh.w r7/*tmp2[16]*/, r7, r4:t /*tmp2[16] = mad_f_mul(x[16], scale[16]) */
++ mulsatrndwh.w r6/*tmp2[17]*/, r6, r4:b /*tmp2[17] = mad_f_mul(x[17], scale[17]) */
++ mulsatrndwh.w r1/*tmp2[14]*/, r1, r5:t /*tmp2[14] = mad_f_mul(x[14], scale[14]) */
++ mulsatrndwh.w r0/*tmp2[15]*/, r0, r5:b /*tmp2[15] = mad_f_mul(x[15], scale[15]) */
++
++ ld.d r4, r12[4*4] /*r4 = x[5], r5 = x[4]*/
++
++ sub lr/*tmp4[0]*/, r9, r6
++ add r6/*tmp3[0]*/, r9, r6
++ sub r10/*tmp4[1]*/, r8, r7
++ add r7/*tmp3[1]*/, r8, r7
++ sub r9/*tmp4[2]*/, r3, r0
++ add r0/*tmp3[2]*/, r3, r0
++ sub r8/*tmp4[3]*/, r2, r1
++ add r1/*tmp3[3]*/, r2, r1
++
++ ld.d r2, pc[scale_dctIV - . + 4*2] /*r2 = {scale[6], scale[7]}, r3 = { scale[4], scale[5] }*/
++
++ stm --sp, r8-r10, lr /*sp[0] = tmp4[0],sp[1] = tmp4[1],
++ sp[2] = tmp4[2],sp[3] = tmp4[3] */
++
++ /* Registers used: r0 = tmp3[2], r1 = tmp3[3], r6 = tmp3[0], r7 = tmp3[1], r12 = x
++ Free registers: r2-r5, r8-r11, lr
++ */
++ ld.d r8, r12[6*4] /*r8 = x[7], r9 = x[6]*/
++ ld.d r10, pc[scale_dctIV - . + 10*2] /*r10 = {scale[12], scale[13]}, r11 = { scale[10], scale[11] }*/
++ mulsatrndwh.w r5/*tmp2[4]*/, r5, r3:t /*tmp2[4] = mad_f_mul(x[4], scale[4]) */
++ mulsatrndwh.w r4/*tmp2[5]*/, r4, r3:b /*tmp2[5] = mad_f_mul(x[5], scale[5]) */
++ mulsatrndwh.w r9/*tmp2[6]*/, r9, r2:t /*tmp2[6] = mad_f_mul(x[6], scale[6]) */
++ mulsatrndwh.w r8/*tmp2[7]*/, r8, r2:b /*tmp2[7] = mad_f_mul(x[7], scale[7]) */
++
++ ld.d r2, r12[12*4] /*r2 = x[13], r3 = x[12]*/
++ ld.w lr, r12[11*4] /*lr = x[11] */
++ mulsatrndwh.w r3/*tmp2[12]*/, r3, r10:t /*tmp2[12] = mad_f_mul(x[12], scale[12]) */
++ mulsatrndwh.w r2/*tmp2[13]*/, r2, r10:b /*tmp2[13] = mad_f_mul(x[13], scale[13]) */
++ ld.w r10, r12[10*4] /*r10 = x[10] */
++ mulsatrndwh.w lr/*tmp2[11]*/, lr, r11:b /*tmp2[11] = mad_f_mul(x[11], scale[11]) */
++ mulsatrndwh.w r10/*tmp2[10]*/, r10, r11:t /*tmp2[10] = mad_f_mul(x[10], scale[10]) */
++
++ sub r11/*tmp4[4]*/, r5, r2
++ add r2/*tmp3[4]*/, r5, r2
++ sub r5/*tmp4[5]*/, r4, r3
++ add r3/*tmp3[5]*/, r4, r3
++ sub r4/*tmp4[6]*/, r9, lr
++ add lr/*tmp3[6]*/, r9, lr
++ sub r9/*tmp4[7]*/, r8, r10
++ add r10/*tmp3[7]*/, r8, r10
++ lddpc r8, scale_dctIV + 8*2 /*r8 = {scale[8], scale[9]} */
++
++ stm --sp, r4, r5, r9, r11 /*sp[0] = tmp4[4],sp[1] = tmp4[7],
++ sp[2] = tmp4[5],sp[3] = tmp4[6] */
++ ld.d r4, r12[8*4] /*r4 = x[9], r5 = x[8]*/
++ mulsatrndwh.w r5/*tmp2[8]*/, r5, r8:t /*tmp2[8] = mad_f_mul(x[8], scale[8]) */
++ mulsatrndwh.w r4/*tmp2[9]*/, r4, r8:b /*tmp2[9] = mad_f_mul(x[9], scale[9]) */
++ sub r9/*tmp4[8]*/, r5, r4
++ add r5/*tmp3[8]*/, r5, r4
++
++ st.w --sp, r9 /* sp[0] = tmp4[8] */
++
++ /* Registers used:
++
++ r0=tmp3[2], r1=tmp3[3], r2=tmp3[4], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
++ r7 = tmp3[1], r10=tmp3[7], lr=tmp3[6]
++ Free registers:
++ r4, r8, r9, r11, r12
++ */
++
++
++ /* SDCT-II */
++/*
++
++ {
++ mad_fixed_t tmp3[9];
++ int i;
++*/
++ /* scale[i] = 2 * cos(PI * (2 * i + 1) / (2 * 18)) */
++/*
++ static mad_fixed_t const scale[9] = {
++ MAD_F(0x1fe0d3b4), MAD_F(0x1ee8dd47), MAD_F(0x1d007930),
++ MAD_F(0x1a367e59), MAD_F(0x16a09e66), MAD_F(0x125abcf8),
++ MAD_F(0x0d8616bc), MAD_F(0x08483ee1), MAD_F(0x02c9fad7)
++ };
++*/
++ /* divide the 18-point SDCT-II into two 9-point SDCT-IIs */
++
++
++ /* fastdct */
++
++/*
++ {
++ mad_fixed_t a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12;
++ mad_fixed_t a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25;
++ mad_fixed_t m0, m1, m2, m3, m4, m5, m6, m7;
++*/
++// enum {
++// c0 = MAD_F(0x1f838b8d), /* 2 * cos( 1 * PI / 18) */
++// c1 = MAD_F(0x1bb67ae8), /* 2 * cos( 3 * PI / 18) */
++// c2 = MAD_F(0x18836fa3), /* 2 * cos( 4 * PI / 18) */
++// c3 = MAD_F(0x1491b752), /* 2 * cos( 5 * PI / 18) */
++// c4 = MAD_F(0x0af1d43a), /* 2 * cos( 7 * PI / 18) */
++// c5 = MAD_F(0x058e86a0), /* 2 * cos( 8 * PI / 18) */
++// c6 = -MAD_F(0x1e11f642) /* 2 * cos(16 * PI / 18) */
++// };
++
++/*
++ a2 = tmp3[6] + tmp3[2];
++ a6 = tmp3[8] + tmp3[0];
++ a11 = a2 - a6;
++ m5 = mad_f_mul(a11, -c6) ;
++ a4 = tmp3[1] + tmp3[7];
++
++ a18 = tmp3[4] + a4;
++ a19 = -2 * tmp3[4] + a4;
++
++ a0 = tmp3[3] + tmp3[5];
++
++*/
++ add r11/*a4*/, r7, r10
++ add r12/*a18*/, r2, r11
++ sub r11/*a19*/, r11, r2<<1
++
++ add r4/*a2*/, lr, r0
++ add r8/*a6*/, r5, r6
++ sub r9/*a11*/, r4, r8
++
++ st.d --sp, r0 /* sp[0] = tmp3[3], sp1[1] = tmp3[2]*/
++
++ mov r2, MAD_F(0x1e11f642)
++ mulsatrndwh.w r9/*m5*/, r9, r2:b
++
++ add r2/*a0*/, r1, r3
++
++ /* Registers used:
++
++ r2=a0, r3=tmp3[5], r4=a2, r5=tmp3[8], r6 = tmp3[0],
++ r7 = tmp3[1], r8=a6, r10=tmp3[7], r9=m5, r11=a19, r12=a18,lr=tmp3[6]
++ Free registers:
++ r0, r1
++ */
++
++/*
++ a8 = a0 + a2;
++ a12 = a8 + a6;
++ a10 = a0 - a6;
++ a9 = a0 - a2;
++ m7 = mad_f_mul(a9, -c2) ;
++ m6 = mad_f_mul(a10, -c5) ;
++*/
++
++ add r0/*a8*/, r2, r4
++ add r0/*a12*/, r8
++ rsub r8/*a10*/, r2
++ sub r2/*a9*/, r4
++ mov r1, -MAD_F(0x18836fa3)
++ mulsatrndwh.w r2/*m7*/, r2, r1:b
++ mov r1, -MAD_F(0x058e86a0)
++ mulsatrndwh.w r8/*m6*/, r8, r1:b
++
++ /* Registers used:
++
++ r0=a12, r2=m7, r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
++ r7 = tmp3[1], r8=m6, r10=tmp3[7], r9=m5, r11=a19, r12=a18,lr=tmp3[6]
++ Free registers:
++ r1, r4
++ */
++
++
++/*
++ a21 = -a19 - (m5 << 1);
++ tmp[ 8] = a21 - (m6 << 1);
++
++ a20 = a19 - (m5 << 1);
++ tmp[ 4] = (m7 << 1) + a20;
++ a22 = -a19 + (m6 << 1);
++ tmp[16] = a22 + (m7 << 1);
++ tmp[ 0] = a18 + a12;
++ tmp[12] = a12 - 2 * a18;
++*/
++ add r1/*a21*/, r11, r9 << 1
++ neg r1
++ sub r1/*tmp[8]*/, r1, r8 << 1
++ stdsp sp[4*11/*tmp3[..] on the stack*/ + 8*4], r1
++ sub r4/*a20*/, r11, r9 << 1
++ add r4/*tmp[4]*/, r4, r2 << 1
++ stdsp sp[4*11/*tmp3[..] on the stack*/ + 4*4], r4
++ neg r11
++ add r1/*a22*/, r11, r8 << 1
++ add r1/*tmp[16]*/, r1, r2 << 1
++ stdsp sp[4*11/*tmp3[..] on the stack*/ + 16*4], r1
++ add r4, r12, r0
++ sub r1, r0, r12 << 1
++ stdsp sp[4*11/*tmp3[..] on the stack*/ + 0*4], r4
++ stdsp sp[4*11/*tmp3[..] on the stack*/ + 12*4], r1
++
++ ld.d r0, sp++
++
++ /* Registers used:
++
++ r0 = tmp3[2], r1 = tmp3[3], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
++ r7 = tmp3[1], r10=tmp3[7], r11=a19, lr=tmp3[6]
++ Free registers:
++ r2,r4,r8,r9,r12
++ */
++
++/*
++ a5 = tmp3[1] - tmp3[7];
++ a7 = tmp3[8] - tmp3[0];
++ a3 = tmp3[6] - tmp3[2];
++ a1 = tmp3[3] - tmp3[5];
++ a13 = a1 - a3;
++ a14 = a13 + a7;
++ m3 = mad_f_mul(a14, -c1) ;
++ m4 = mad_f_mul(a5, -c1) ;
++ tmp[ 6] = m3 << 1;
++*/
++ sub r7/*a5*/, r10
++ sub r2/*a7*/, r5, r6
++ sub r4/*a3*/, lr, r0
++ sub r8/*a1*/, r1, r3
++ sub r9/*a13*/, r8, r4
++ add r12/*a14*/, r9, r2
++ mov r0, -MAD_F(0x1bb67ae8)
++ mulsatrndwh.w r12/*m3*/, r12, r0:b
++ mulsatrndwh.w r7/*m4*/, r7, r0:b
++ lsl r12, 1
++ stdsp sp[4*9/*tmp3[..] on the stack*/ + 6*4], r12
++
++ /* Registers used:
++ r2 = a7, r4 = a3, r7 = m4, r8 = a1, r12 = m3
++
++ Free registers:
++ r0, r1, r3, r5, r6, r10, r9, r11, lr
++ */
++
++
++/*
++ a15 = a3 + a7;
++ m2 = mad_f_mul(a15, -c4) ;
++ a17 = a1 + a3;
++ m0 = mad_f_mul(a17, -c3) ;
++ a23 = (m4 << 1) + (m2 << 1);
++ tmp[14] = a23 + (m0 << 1); */
++ add r0/*a15*/, r4, r2
++ mov r1, -MAD_F(0x0af1d43a)
++ mulsatrndwh.w r0/*m2*/, r0, r1:b
++ mov r3, -MAD_F(0x1491b752)
++ add r5/*a17*/, r8, r4
++ mulsatrndwh.w r5/*m0*/, r5, r3:b
++ lsl r7, 1
++ add r6/*a23*/, r7, r0 << 1
++ add r6/*tmp[14]*/, r6, r5 << 1
++ stdsp sp[4*9/*tmp3[..] on the stack*/ + 14*4], r6
++
++ /* Registers used:
++ r0 = m2, r2 = a7, r5 = m0, r7 = m4, r8 = a1
++
++ Free registers:
++ r1, r3, r4, r6, r10, r9, r11, lr
++ */
++
++/*
++ a16 = a1 - a7;
++ m1 = mad_f_mul(a16, -c0) ;
++ a24 = (m4 << 1) - (m2 << 1);
++ tmp[10] = a24 - (m1 << 1);
++
++ a25 = (m4 << 1) + (m1 << 1);
++ tmp[ 2] = (m0 << 1) - a25;
++*/
++ sub r3/*a16*/, r8, r2
++ mov r4, -MAD_F(0x1f838b8d)
++ mulsatrndwh.w r3/*m1*/, r3, r4:b
++ sub r1/*a24*/, r7, r0 << 1
++ sub r1/*tmp[10]*/, r1, r3 << 1
++ stdsp sp[4*9/*tmp3[..] on the stack*/ + 10*4], r1
++ add r7/*a25*/, r7, r3 << 1
++ sub r7, r7, r5 << 1
++ neg r7
++ stdsp sp[4*9/*tmp3[..] on the stack*/ + 2*4], r7
++
++
++
++
++ /* output to every other slot for convenience */
++
++ /*} */
++ /* End fastdct */
++
++ /* odd input butterfly and scaling */
++
++
++ /* On the stack:
++ sp[0] = tmp4[8], sp[1] = tmp4[4],sp[2] = tmp4[7], sp[3] = tmp4[5],sp[4] = tmp4[6]
++ sp[5] = tmp4[0], sp[6] = tmp4[1],sp[7] = tmp4[2],sp[8] = tmp4[3]
++ */
++
++ /*
++ tmp3[0] = mad_f_mul(tmp4[0], scale[0]);
++ tmp3[1] = mad_f_mul(tmp4[1], scale[1]) << 1;
++ tmp3[2] = mad_f_mul(tmp4[2], scale[2]);
++ tmp3[3] = mad_f_mul(tmp4[3], scale[3]) << 1;
++ tmp3[4] = mad_f_mul(tmp4[4], scale[4]);
++ tmp3[5] = mad_f_mul(tmp4[5], scale[5]);
++ tmp3[6] = mad_f_mul(tmp4[6], scale[6]) << 1;
++ tmp3[7] = mad_f_mul(tmp4[7], scale[7]);
++ tmp3[8] = mad_f_mul(tmp4[8], scale[8]) << 1;
++ */
++ /* Registers used:
++ r1 = tmp4[3], r2 = tmp4[2], r3 = tmp4[1], r4 = tmp4[0], r7 = tmp4[6]
++ r10 = tmp4[5], r11 = tmp4[7], r12 = tmp4[4], lr = tmp4[8]
++
++ Free registers:
++ r0, r5, r6, r8, r9
++ */
++ ld.d r8, pc[ scale_sdctII - . + 4*2] /* r8 = { scale[6], scale[7] }, r9 = { scale[4], scale[5]} */
++ ldm sp++, r1, r2, r3, r4, r7, r10, r11, r12, lr
++ mov r5, MAD_F(0x02c9fad7) /* r3 = scale[8] */
++ mulsatrndwh.w r5/*tmp3[8]*/, lr, r5:b
++ mulsatrndwh.w lr/*tmp3[6]*/, r7, r8:t
++ ld.d r6, pc[ scale_sdctII - . + 0*2] /* r6 = { scale[2], scale[3] }, r7 = { scale[0], scale[1]} */
++ lsl lr, 1
++ lsl r5, 1
++ mulsatrndwh.w r0/*tmp3[2]*/, r2, r6:t
++ mulsatrndwh.w r1/*tmp3[3]*/, r1, r6:b
++ mulsatrndwh.w r6/*tmp3[0]*/, r4, r7:t
++ mulsatrndwh.w r7/*tmp3[1]*/, r3, r7:b
++ mulsatrndwh.w r3/*tmp3[5]*/, r10, r9:b
++ mulsatrndwh.w r2/*tmp3[4]*/, r12, r9:t
++ mulsatrndwh.w r9/*tmp3[7]*/, r11, r8:b
++ lsl r1, 1
++ lsl r7, 1
++
++
++ /* fastdct */
++
++/*
++ {
++ mad_fixed_t a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12;
++ mad_fixed_t a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25;
++ mad_fixed_t m0, m1, m2, m3, m4, m5, m6, m7;
++*/
++// enum {
++// c0 = MAD_F(0x1f838b8d), /* 2 * cos( 1 * PI / 18) */
++// c1 = MAD_F(0x1bb67ae8), /* 2 * cos( 3 * PI / 18) */
++// c2 = MAD_F(0x18836fa3), /* 2 * cos( 4 * PI / 18) */
++// c3 = MAD_F(0x1491b752), /* 2 * cos( 5 * PI / 18) */
++// c4 = MAD_F(0x0af1d43a), /* 2 * cos( 7 * PI / 18) */
++// c5 = MAD_F(0x058e86a0), /* 2 * cos( 8 * PI / 18) */
++// c6 = -MAD_F(0x1e11f642) /* 2 * cos(16 * PI / 18) */
++// };
++
++ /* Registers used:
++
++ r0=tmp3[2], r1=tmp3[3], r2=tmp3[4], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
++ r7 = tmp3[1], r9=tmp3[7], lr=tmp3[6]
++ Free registers:
++ r4, r8, r10, r11, r12
++ */
++
++/*
++ a2 = tmp3[6] + (tmp3[2] << 1);
++ a6 = tmp3[8] + (tmp3[0] << 1);
++ a11 = a2 - a6;
++ m5 = mad_f_mul(a11, c6) ;
++ a4 = tmp3[1] + (tmp3[7] << 1);
++
++ a18 = (tmp3[4] << 1) + a4;
++ a19 = -2 * (tmp3[4] << 1) + a4;
++
++ a0 = tmp3[3] + (tmp3[5] << 1);
++
++*/
++ add r11/*a4*/, r7, r9 << 1
++ add r12/*a18*/, r11, r2 << 1
++ sub r11/*a19*/, r11, r2 << 2
++
++ add r4/*a2*/, lr, r0 << 1
++ add r8/*a6*/, r5, r6 << 1
++ sub r10/*a11*/, r4, r8
++
++ st.d --sp, r0 /* sp[0] = tmp3[3], sp1[1] = tmp3[2]*/
++
++ mov r2, -MAD_F(0x1e11f642)
++ mulsatrndwh.w r10/*m5*/, r10, r2:b
++
++ add r2/*a0*/, r1, r3 << 1
++
++ /* Registers used:
++
++ r2=a0, r3=tmp3[5], r4=a2, r5=tmp3[8], r6 = tmp3[0],
++ r7 = tmp3[1], r8=a6, r9=tmp3[7], r10=m5, r11=a19, r12=a18,lr=tmp3[6]
++ Free registers:
++ r0, r1
++ */
++
++/*
++ a8 = a0 + a2;
++ a12 = a8 + a6;
++ a10 = a0 - a6;
++ a9 = a0 - a2;
++ m7 = mad_f_mul(a9, -c2) ;
++ m6 = mad_f_mul(a10, -c5) ;
++*/
++
++ add r0/*a8*/, r2, r4
++ add r0/*a12*/, r8
++ rsub r8/*a10*/, r2
++ sub r2/*a9*/, r4
++ mov r1, -MAD_F(0x18836fa3)
++ mulsatrndwh.w r2/*m7*/, r2, r1:b
++ mov r1, -MAD_F(0x058e86a0)
++ mulsatrndwh.w r8/*m6*/, r8, r1:b
++
++ /* Registers used:
++
++ r0=a12, r2=m7, r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
++ r7 = tmp3[1], r8=m6, r9=tmp3[7], r10=m5, r11=a19, r12=a18,lr=tmp3[6]
++ Free registers:
++ r1, r4
++ */
++
++
++/*
++ a21 = -a19 + (m5 << 1);
++ tmp[ 9] = a21 - (m6 << 1);
++
++ a20 = -(-a19 - (m5 << 1));
++ tmp[ 5] = (m7 << 1) + a20;
++ a22 = -a19 + (m6 << 1);
++ tmp[17] = a22 + (m7 << 1);
++ tmp[ 1] = a18 + a12;
++ tmp[13] = a12 - 2 * a18;
++*/
++ sub r1/*a21*/, r11, r10 << 1
++ neg r1
++ sub r1/*tmp[9]*/, r1, r8 << 1
++ stdsp sp[4*2/*tmp3[..] on the stack*/ + 9*4], r1
++ add r4/*a20*/, r11, r10 << 1
++ add r4/*tmp[5]*/, r4, r2 << 1
++ stdsp sp[4*2/*tmp3[..] on the stack*/ + 5*4], r4
++ neg r11
++ add r1/*a22*/, r11, r8 << 1
++ add r1/*tmp[17]*/, r1, r2 << 1
++ stdsp sp[4*2/*tmp3[..] on the stack*/ + 17*4], r1
++ add r4, r12, r0
++ sub r1, r0, r12 << 1
++ stdsp sp[4*2/*tmp3[..] on the stack*/ + 1*4], r4
++ stdsp sp[4*2/*tmp3[..] on the stack*/ + 13*4], r1
++
++ ld.d r0, sp++
++
++ /* Registers used:
++
++ r0 = tmp3[2], r1 = tmp3[3], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
++ r7 = tmp3[1], r9=tmp3[7], r11=a19, lr=tmp3[6]
++ Free registers:
++ r2,r4,r8,r10,r12
++ */
++
++/*
++ a5 = tmp3[1] - (tmp3[7] << 1);
++ a7 = tmp3[8] - (tmp3[0] << 1);
++ a3 = tmp3[6] - (tmp3[2] << 1);
++ a1 = tmp3[3] - (tmp3[5] << 1);
++ a13 = a1 - a3;
++ a14 = a13 + a7;
++ m3 = mad_f_mul(a14, -c1) ;
++ m4 = mad_f_mul(a5, -c1) ;
++ tmp[ 7] = m3 << 1;
++*/
++ sub r7/*a5*/, r7, r9 << 1
++ sub r2/*a7*/, r5, r6 << 1
++ sub r4/*a3*/, lr, r0 << 1
++ sub r8/*a1*/, r1, r3 << 1
++ sub r10/*a13*/, r8, r4
++ add r12/*a14*/, r10, r2
++ mov r0, -MAD_F(0x1bb67ae8)
++ mulsatrndwh.w r12/*m3*/, r12, r0:b
++ mulsatrndwh.w r7/*m4*/, r7, r0:b
++ lsl r12, 1
++ stdsp sp[7*4], r12
++
++ /* Registers used:
++ r2 = a7, r4 = a3, r7 = m4, r8 = a1, r12 = m3
++
++ Free registers:
++ r0, r1, r3, r5, r6, r9, r10, r11, lr
++ */
++
++
++/*
++ a15 = a3 + a7;
++ m2 = mad_f_mul(a15, -c4) ;
++ a17 = a1 + a3;
++ m0 = mad_f_mul(a17, -c3) ;
++ a23 = (m4 << 1) + (m2 << 1);
++ tmp[15] = a23 + (m0 << 1); */
++ add r0/*a15*/, r4, r2
++ mov r1, -MAD_F(0x0af1d43a)
++ mulsatrndwh.w r0/*m2*/, r0, r1:b
++ mov r3, -MAD_F(0x1491b752)
++ add r5/*a17*/, r8, r4
++ mulsatrndwh.w r5/*m0*/, r5, r3:b
++ lsl r7, 1
++ add r6/*a23*/, r7, r0 << 1
++ add r6/*tmp[15]*/, r6, r5 << 1
++ stdsp sp[15*4], r6
++
++ /* Registers used:
++ r0 = m2, r2 = a7, r5 = m0, r7 = m4, r8 = a1
++
++ Free registers:
++ r1, r3, r4, r6, r9, r10, r11, lr
++ */
++
++/*
++ a16 = a1 - a7;
++ m1 = mad_f_mul(a16, -c0) ;
++ a24 = (m4 << 1) - (m2 << 1);
++ tmp[11] = a24 - (m1 << 1);
++
++ a25 = (m4 << 1) + (m1 << 1);
++ tmp[ 3] = (m0 << 1) - a25;
++*/
++ sub r3/*a16*/, r8, r2
++ mov r4, -MAD_F(0x1f838b8d)
++ mulsatrndwh.w r3/*m1*/, r3, r4:b
++ sub r1/*a24*/, r7, r0 << 1
++ sub r1/*tmp[11]*/, r1, r3 << 1
++ stdsp sp[11*4], r1
++ add r7/*a25*/, r7, r3 << 1
++ sub r7, r7, r5 << 1
++ neg r7
++ lddsp r12, sp[4*18+4] /* Get y from stack */
++ stdsp sp[3*4], r7
++
++
++ /* output to every other slot for convenience */
++
++ /* End fastdct */
++
++ /* output accumulation */
++
++/* for (i = 3; i < 18; i += 8) {
++ tmp[i + 0] -= tmp[(i + 0) - 2];
++ tmp[i + 2] -= tmp[(i + 2) - 2];
++ tmp[i + 4] -= tmp[(i + 4) - 2];
++ tmp[i + 6] -= tmp[(i + 6) - 2];
++ }
++ }
++*/
++
++/* End SDCT-II */
++
++
++
++ /* scale reduction and output accumulation */
++
++/*
++ for (i = 1; i < 17; i += 4) {
++ tmp[i + 0] = tmp[i + 0] - tmp[(i + 0) - 1];
++ tmp[i + 1] = tmp[i + 1] - tmp[(i + 1) - 1];
++ tmp[i + 2] = tmp[i + 2] - tmp[(i + 2) - 1];
++ tmp[i + 3] = tmp[i + 3] - tmp[(i + 3) - 1];
++ }
++ tmp[17] = tmp[17] - tmp[16];
++ }
++*/
++/* End DCT-IV */
++
++
++ /* convert 18-point DCT-IV to 36-point IMDCT */
++
++/*
++ for (i = 0; i < 9; i += 3) {
++ y[i + 0] = tmp[9 + (i + 0)];
++ y[i + 1] = tmp[9 + (i + 1)];
++ y[i + 2] = tmp[9 + (i + 2)];
++ }
++ for (i = 9; i < 27; i += 3) {
++ y[i + 0] = -tmp[36 - (9 + (i + 0)) - 1];
++ y[i + 1] = -tmp[36 - (9 + (i + 1)) - 1];
++ y[i + 2] = -tmp[36 - (9 + (i + 2)) - 1];
++ }
++ for (i = 27; i < 36; i += 3) {
++ y[i + 0] = -tmp[(i + 0) - 27];
++ y[i + 1] = -tmp[(i + 1) - 27];
++ y[i + 2] = -tmp[(i + 2) - 27];
++ }
++ }
++*/
++
++ /* Registers used:
++ r0 = tmp[8], r1 = tmp[7], r2 = tmp[6], r3 = tmp[5], r4 = tmp[4]
++ r5 = tmp[3], r6 = tmp[2], r7 = tmp[1], r8 = tmp[0], r12 = y
++
++ Free registers:
++ r9, r10, r11, lr
++ */
++
++ ldm sp++, r0-r8 /* Get tmp[0]-tmp[8] from stack */
++ sub r5, r7 /* tmp[3] -= tmp[1]*/
++ sub r3, r5 /* tmp[5] -= tmp[3]*/
++ sub r1, r3 /* tmp[7] -= tmp[5]*/
++
++ sub r7, r8 /* tmp[1] -= tmp[0]*/
++ sub r6, r7 /* tmp[2] -= tmp[1]*/
++ sub r5, r6 /* tmp[3] -= tmp[2]*/
++ neg r8
++ st.w r12[26*4], r8 /* y[26] = -tmp[0] */
++ st.w r12[27*4], r8 /* y[27] = -tmp[0] */
++ neg r7
++ neg r6
++ st.w r12[25*4], r7 /* y[25] = -tmp[1] */
++ st.w r12[24*4], r6 /* y[24] = -tmp[2] */
++ st.d r12[28*4], r6 /* y[28] = -tmp[1], y[29] = -tmp[2]*/
++
++ sub r4, r5 /* tmp[4] -= tmp[3]*/
++ sub r3, r4 /* tmp[5] -= tmp[4]*/
++ neg r5
++ neg r4
++ st.w r12[23*4], r5 /* y[23] = -tmp[3] */
++ st.w r12[22*4], r4 /* y[22] = -tmp[4] */
++ st.d r12[30*4], r4 /* y[30] = -tmp[3], y[31] = -tmp[4]*/
++
++ ldm sp++, r4-r11,lr /* Get tmp[9]-tmp[17] from stack */
++
++ sub r2, r3 /* tmp[6] -= tmp[5]*/
++
++ sub lr, r1 /* tmp[9] -= tmp[7]*/
++ sub r10, lr /* tmp[11] -= tmp[9]*/
++ sub r8, r10 /* tmp[13] -= tmp[11]*/
++ sub r6, r8 /* tmp[15] -= tmp[13]*/
++ sub r4, r6 /* tmp[17] -= tmp[15]*/
++
++ sub r1, r2 /* tmp[7] -= tmp[6]*/
++ sub r0, r1 /* tmp[8] -= tmp[7]*/
++ neg r3
++ neg r2
++ st.w r12[21*4], r3 /* y[21] = -tmp[5] */
++ st.w r12[20*4], r2 /* y[20] = -tmp[6] */
++ st.d r12[32*4], r2 /* y[32] = -tmp[5], y[33] = -tmp[6]*/
++
++ sub lr, r0 /* tmp[9] -= tmp[8]*/
++ sub r11, lr /* tmp[10] -= tmp[9]*/
++ neg r1
++ neg r0
++ st.w r12[19*4], r1 /* y[19] = -tmp[7] */
++ st.w r12[18*4], r0 /* y[18] = -tmp[8] */
++ st.d r12[34*4], r0 /* y[34] = -tmp[7], y[35] = -tmp[8]*/
++
++ sub r10, r11 /* tmp[11] -= tmp[10]*/
++ sub r9, r10 /* tmp[12] -= tmp[11]*/
++
++ st.w r12[0*4], lr /* y[0] = tmp[9]*/
++ neg lr
++ st.w r12[17*4], lr /* y[17] = -tmp[9]*/
++ st.d r12[1*4], r10 /* y[1] = tmp[10], y[2] = tmp[11] */
++ neg r11
++ neg r10
++ st.w r12[16*4], r11 /* y[16] = -tmp[10] */
++ st.w r12[15*4], r10 /* y[15] = -tmp[11] */
++
++
++ sub r8, r9 /* tmp[13] -= tmp[12]*/
++ sub r7, r8 /* tmp[14] -= tmp[13]*/
++ st.d r12[3*4], r8 /* y[3] = tmp[12], y[4] = tmp[13] */
++ neg r9
++ neg r8
++ st.w r12[14*4], r9 /* y[14] = -tmp[12] */
++ st.w r12[13*4], r8 /* y[13] = -tmp[13] */
++
++ sub r6, r7 /* tmp[15] -= tmp[14]*/
++ sub r5, r6 /* tmp[16] -= tmp[15]*/
++ sub r4, r5 /* tmp[17] -= tmp[16]*/
++
++ st.d r12[5*4], r6 /* y[5] = tmp[14], y[6] = tmp[15] */
++ neg r7
++ neg r6
++ st.w r12[12*4], r7 /* y[12] = -tmp[14] */
++ st.w r12[11*4], r6 /* y[11] = -tmp[15] */
++
++ st.d r12[7*4], r4 /* y[7] = tmp[16], y[8] = tmp[17] */
++ neg r5
++ neg r4
++ st.w r12[10*4], r5 /* y[10] = -tmp[16] */
++ st.w r12[9*4], r4 /* y[9] = -tmp[17] */
++
++ popm r0-r7,r11,pc
++
++ .align 2
++scale_dctIV:
++ .short MAD_F(0x1ff833fa), MAD_F(0x1fb9ea93), MAD_F(0x1f3dd120)
++ .short MAD_F(0x1e84d969), MAD_F(0x1d906bcf), MAD_F(0x1c62648b)
++ .short MAD_F(0x1afd100f), MAD_F(0x1963268b), MAD_F(0x1797c6a4)
++ .short MAD_F(0x159e6f5b), MAD_F(0x137af940), MAD_F(0x11318ef3)
++ .short MAD_F(0x0ec6a507), MAD_F(0x0c3ef153), MAD_F(0x099f61c5)
++ .short MAD_F(0x06ed12c5), MAD_F(0x042d4544), MAD_F(0x0165547c)
++
++ .align 2
++scale_sdctII:
++ .short MAD_F(0x1fe0d3b4), MAD_F(0x1ee8dd47), MAD_F(0x1d007930)
++ .short MAD_F(0x1a367e59), MAD_F(0x16a09e66), MAD_F(0x125abcf8)
++ .short MAD_F(0x0d8616bc), MAD_F(0x08483ee1), MAD_F(0x02c9fad7)
+diff --git a/layer3.c b/layer3.c
+index 4e5d3fa..dffdab3 100644
+--- a/layer3.c
++++ b/layer3.c
+@@ -378,6 +378,11 @@ mad_fixed_t const ca[8] = {
+ -MAD_F(0x003a2847) /* -0.014198569 */, -MAD_F(0x000f27b4) /* -0.003699975 */
+ };
+
++#ifdef FPM_AVR32
++# undef MAD_F
++# define MAD_F(x) ((x + (1 << 12)) >> 13)
++#endif
++
+ /*
+ * IMDCT coefficients for short blocks
+ * derived from section 2.4.3.4.10.2 of ISO/IEC 11172-3
+@@ -386,7 +391,7 @@ mad_fixed_t const ca[8] = {
+ * imdct_s[i /odd][k] = cos((PI / 24) * (2 * (6 + (i-1)/2) + 7) * (2 * k + 1))
+ */
+ static
+-mad_fixed_t const imdct_s[6][6] = {
++mad_coeff_t const imdct_s[6][6] = {
+ # include "imdct_s.dat"
+ };
+
+@@ -398,7 +403,7 @@ mad_fixed_t const imdct_s[6][6] = {
+ * window_l[i] = sin((PI / 36) * (i + 1/2))
+ */
+ static
+-mad_fixed_t const window_l[36] = {
++mad_coeff_t const window_l[36] = {
+ MAD_F(0x00b2aa3e) /* 0.043619387 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
+ MAD_F(0x03768962) /* 0.216439614 */, MAD_F(0x04cfb0e2) /* 0.300705800 */,
+ MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x07635284) /* 0.461748613 */,
+@@ -429,7 +434,7 @@ mad_fixed_t const window_l[36] = {
+ * window_s[i] = sin((PI / 12) * (i + 1/2))
+ */
+ static
+-mad_fixed_t const window_s[12] = {
++mad_coeff_t const window_s[12] = {
+ MAD_F(0x0216a2a2) /* 0.130526192 */, MAD_F(0x061f78aa) /* 0.382683432 */,
+ MAD_F(0x09bd7ca0) /* 0.608761429 */, MAD_F(0x0cb19346) /* 0.793353340 */,
+ MAD_F(0x0ec835e8) /* 0.923879533 */, MAD_F(0x0fdcf549) /* 0.991444861 */,
+@@ -438,6 +443,11 @@ mad_fixed_t const window_s[12] = {
+ MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
+ };
+
++#ifdef FPM_AVR32
++# undef MAD_F
++# define MAD_F(x) ((mad_fixed_t) (x##L))
++#endif
++
+ /*
+ * coefficients for intensity stereo processing
+ * derived from section 2.4.3.4.9.3 of ISO/IEC 11172-3
+@@ -879,6 +889,42 @@ void III_exponents(struct channel const *channel,
+ * NAME: III_requantize()
+ * DESCRIPTION: requantize one (positive) value
+ */
++
++#if 0
++/*static*/
++mad_fixed_t III_requantize(unsigned int value, signed int exp)
++{
++ register mad_fixed_t tmp2, tmp3;
++ long long tmp_d;
++
++ asm ("asr\t%0, %1, 2\n"
++ "ld.w\t%2, %4[%5 << 2]\n"
++ "sub\t%1, %1, %0 << 2\n"
++ "asr\t%3, %2, 7\n"
++ "andl\t%2, 0x7f, COH\n"
++ "add\t%0, %2\n"
++ "lsl\t%m0,%3,%0\n"
++ "neg\t%0\n"
++ "asr\t%3,%3,%0\n"
++ "add\t%2, %6, %1 << 2\n"
++ "ld.w\t%2, %2[12]\n"
++ "cp.w\t%0, 0\n"
++ "movlt\t%3, %m0\n"
++ "muls.d\t%0, %3, %2\n"
++ "cp.w\t%1, 0\n"
++ "breq\t0f\n"
++ "lsr\t%0, %0, 28\n"
++ "or\t%3, %0, %m0 << 4\n"
++ "0:\n"
++ : "=&r"(tmp_d), "+r"(exp), "=&r"(tmp2), "=&r"(tmp3)
++ : "r"(&rq_table), "r"(value), "r"(root_table));
++
++
++ return tmp3;
++}
++
++#else
++
+ static
+ mad_fixed_t III_requantize(unsigned int value, signed int exp)
+ {
+@@ -918,6 +964,7 @@ mad_fixed_t III_requantize(unsigned int value, signed int exp)
+
+ return frac ? mad_f_mul(requantized, root_table[3 + frac]) : requantized;
+ }
++#endif
+
+ /* we must take care that sz >= bits and sz < sizeof(long) lest bits == 0 */
+ # define MASK(cache, sz, bits) \
+@@ -2054,27 +2101,42 @@ void imdct36(mad_fixed_t const X[18], mad_fixed_t x[36])
+ }
+ # endif
+
++
++#ifdef FPM_AVR32
++# undef mad_f_mul
++# define mad_f_mul(x, y) __builtin_mulsatrndwh_w(x, y)
++#endif
++
+ /*
+ * NAME: III_imdct_l()
+ * DESCRIPTION: perform IMDCT and windowing for long blocks
+ */
+ static
+-void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
++void III_imdct_l(mad_fixed_t /*const*/ X[18], mad_fixed_t z[36],
+ unsigned int block_type)
+ {
+ unsigned int i;
++ mad_fixed_t *z_ptr;
++ mad_coeff_t *w_ptr;
+
+ /* IMDCT */
+
++#ifdef FPM_AVR32
++ imdct36_avr32(X, z);
++#else
+ imdct36(X, z);
++#endif
+
+ /* windowing */
+
++ z_ptr = &z[0];
++ w_ptr = &window_l[0];
++
+ switch (block_type) {
+ case 0: /* normal window */
+ # if defined(ASO_INTERLEAVE1)
+ {
+- register mad_fixed_t tmp1, tmp2;
++ register mad_coeff_t tmp1, tmp2;
+
+ tmp1 = window_l[0];
+ tmp2 = window_l[1];
+@@ -2091,15 +2153,16 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
+ }
+ # elif defined(ASO_INTERLEAVE2)
+ {
+- register mad_fixed_t tmp1, tmp2;
++ register mad_fixed_t tmp1;
++ register mad_coeff_t tmp2;
+
+- tmp1 = z[0];
+- tmp2 = window_l[0];
++ tmp1 = *z_ptr;
++ tmp2 = *w_ptr++;
+
+ for (i = 0; i < 35; ++i) {
+- z[i] = mad_f_mul(tmp1, tmp2);
+- tmp1 = z[i + 1];
+- tmp2 = window_l[i + 1];
++ *z_ptr++ = mad_f_mul(tmp1, tmp2);
++ tmp1 = *z_ptr;
++ tmp2 = *w_ptr++;
+ }
+
+ z[35] = mad_f_mul(tmp1, tmp2);
+@@ -2118,23 +2181,28 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
+
+ case 1: /* start block */
+ for (i = 0; i < 18; i += 3) {
+- z[i + 0] = mad_f_mul(z[i + 0], window_l[i + 0]);
+- z[i + 1] = mad_f_mul(z[i + 1], window_l[i + 1]);
+- z[i + 2] = mad_f_mul(z[i + 2], window_l[i + 2]);
++ *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
++ *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
++ *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
+ }
++ z_ptr += 6;
++ w_ptr = &window_s[6];
+ /* (i = 18; i < 24; ++i) z[i] unchanged */
+- for (i = 24; i < 30; ++i) z[i] = mad_f_mul(z[i], window_s[i - 18]);
+- for (i = 30; i < 36; ++i) z[i] = 0;
++ for (i = 24; i < 30; ++i) *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
++ for (i = 30; i < 36; ++i) *z_ptr++ = 0;
+ break;
+
+ case 3: /* stop block */
+- for (i = 0; i < 6; ++i) z[i] = 0;
+- for (i = 6; i < 12; ++i) z[i] = mad_f_mul(z[i], window_s[i - 6]);
++ w_ptr = &window_s[0];
++ for (i = 0; i < 6; ++i) *z_ptr++ = 0;
++ for (i = 6; i < 12; ++i) *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
+ /* (i = 12; i < 18; ++i) z[i] unchanged */
++ w_ptr = &window_l[18];
++ z_ptr += 6;
+ for (i = 18; i < 36; i += 3) {
+- z[i + 0] = mad_f_mul(z[i + 0], window_l[i + 0]);
+- z[i + 1] = mad_f_mul(z[i + 1], window_l[i + 1]);
+- z[i + 2] = mad_f_mul(z[i + 2], window_l[i + 2]);
++ *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++ );
++ *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
++ *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
+ }
+ break;
+ }
+@@ -2146,10 +2214,10 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
+ * DESCRIPTION: perform IMDCT and windowing for short blocks
+ */
+ static
+-void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
++void III_imdct_s(mad_fixed_t /*const*/ X[18], mad_fixed_t z[36])
+ {
+ mad_fixed_t y[36], *yptr;
+- mad_fixed_t const *wptr;
++ mad_coeff_t const *wptr;
+ int w, i;
+ register mad_fixed64hi_t hi;
+ register mad_fixed64lo_t lo;
+@@ -2159,11 +2227,56 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
+ yptr = &y[0];
+
+ for (w = 0; w < 3; ++w) {
+- register mad_fixed_t const (*s)[6];
++ register mad_coeff_t const (*s)[6];
+
+ s = imdct_s;
+
+ for (i = 0; i < 3; ++i) {
++#ifdef FPM_AVR32
++ register long long int acc, tmp1, tmp2, tmp3, tmp4;
++ asm volatile ("ld.d\t%0, %5++\n"
++ "ld.d\t%1, %6[0]\n"
++ "ld.d\t%2, %6[2*4]\n"
++ "ld.d\t%3, %6[4*4]\n"
++ "mulwh.d\t%4, %m1, %m0:t\n"
++ "macwh.d\t%4, %1, %m0:b\n"
++ "ld.w\t%m0, %5++\n"
++ "macwh.d\t%4, %m2, %0:t\n"
++ "macwh.d\t%4, %2, %0:b\n"
++ "macwh.d\t%4, %m3, %m0:t\n"
++ "macwh.d\t%4, %3, %m0:b\n"
++ "ld.d\t%0, %5++\n"
++ "rol\t%4\n"
++ "rol\t%m4\n"
++ : "=&r"(tmp1), "=&r"(tmp2), "=&r"(tmp3), "=&r"(tmp4),
++ "=&r"(acc), "+r"(s)
++ : "r"(X));
++
++ asm volatile ("st.w\t%1[0], %m0\n"
++ "neg\t%m0\n"
++ "st.w\t%2[5*4], %m0\n"
++ : "+r"(acc)
++ : "r"(&yptr[i]), "r"(&yptr[-i]));
++
++ asm volatile ("mulwh.d\t%4, %m1, %m0:t\n"
++ "macwh.d\t%4, %1, %m0:b\n"
++ "ld.w\t%m0, %5++\n"
++ "macwh.d\t%4, %m2, %0:t\n"
++ "macwh.d\t%4, %2, %0:b\n"
++ "macwh.d\t%4, %m3, %m0:t\n"
++ "macwh.d\t%4, %3, %m0:b\n"
++ "rol\t%4\n"
++ "rol\t%m4\n"
++ : "+r"(tmp1), "+r"(tmp2), "+r"(tmp3), "+r"(tmp4),
++ "=&r"(acc), "+r"(s)
++ : "r"(X));
++
++ asm volatile ( "st.w\t%1[6*4], %m0\n"
++ "st.w\t%2[11*4], %m0\n"
++ :: "r"(acc), "r"(&yptr[i]), "r"(&yptr[-i]));
++
++
++#else
+ MAD_F_ML0(hi, lo, X[0], (*s)[0]);
+ MAD_F_MLA(hi, lo, X[1], (*s)[1]);
+ MAD_F_MLA(hi, lo, X[2], (*s)[2]);
+@@ -2187,6 +2300,7 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
+ yptr[11 - i] = yptr[i + 6];
+
+ ++s;
++#endif
+ }
+
+ yptr += 12;
+@@ -2198,6 +2312,196 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
+ yptr = &y[0];
+ wptr = &window_s[0];
+
++#ifdef FPM_AVR32
++ /* z[0] = 0;
++ z[1] = 0;
++ z[2] = 0;
++ z[3] = 0;
++ z[4] = 0;
++ z[5] = 0;
++ z[30] = 0;
++ z[31] = 0;
++ z[32] = 0;
++ z[33] = 0;
++ z[34] = 0;
++ z[35] = 0;
++ */
++ {
++ register long long int tmp, tmp2, tmp3, w0123, w4567, w891011;
++ asm volatile ("mov\t%m0, 0\n"
++ "mov\t%0, %m0\n"
++ "st.d\t%1[0], %0\n"
++ "st.d\t%1[2*4], %0\n"
++ "st.d\t%1[4*4], %0\n"
++ "st.d\t%1[30*4], %0\n"
++ "st.d\t%1[32*4], %0\n"
++ "st.d\t%1[34*4], %0\n"
++ : "=&r"(tmp) : "r"(z));
++
++
++
++ /*
++ z[6] = mad_f_mul(yptr [0], wptr[0]);
++ z[7] = mad_f_mul(yptr [1], wptr[1]);
++ z[8] = mad_f_mul(yptr [2], wptr[2]);
++ z[9] = mad_f_mul(yptr [3], wptr[3]);
++ z[10] = mad_f_mul(yptr[4], wptr[4]);
++ z[11] = mad_f_mul(yptr[5], wptr[5]);
++ z[24] = mad_f_mul(yptr [30], wptr[6]);
++ z[25] = mad_f_mul(yptr [31], wptr[7]);
++ z[26] = mad_f_mul(yptr [32], wptr[8]);
++ z[27] = mad_f_mul(yptr [33], wptr[9]);
++ z[28] = mad_f_mul(yptr[34], wptr[10]);
++ z[29] = mad_f_mul(yptr[35], wptr[11]);
++ */
++
++
++ asm volatile ("ld.d\t%0, %5[0*4]\n"
++ "ld.d\t%3, %6[0*4]\n"
++ "ld.d\t%1, %5[2*4]\n"
++ "ld.d\t%2, %5[4*4]\n"
++ "mulsatrndwh.w\t%m3, %m3, %m0:t\n"
++ "mulsatrndwh.w\t%3, %3, %m0:b\n"
++ "ld.d\t%4, %6[2*4]\n"
++ "st.d\t%7[6*4], %3\n"
++
++ "mulsatrndwh.w\t%m4, %m4, %0:t\n"
++ "mulsatrndwh.w\t%4, %4, %0:b\n"
++ "ld.d\t%3, %6[4*4]\n"
++ "st.d\t%7[8*4], %4\n"
++
++ "mulsatrndwh.w\t%m3, %m3, %m1:t\n"
++ "mulsatrndwh.w\t%3, %3, %m1:b\n"
++ "ld.d\t%4, %6[30*4]\n"
++ "st.d\t%7[10*4], %3\n"
++
++ "mulsatrndwh.w\t%m4, %m4, %1:t\n"
++ "mulsatrndwh.w\t%4, %4, %1:b\n"
++ "ld.d\t%3, %6[32*4]\n"
++ "st.d\t%7[24*4], %4\n"
++
++ "mulsatrndwh.w\t%m3, %m3, %m2:t\n"
++ "mulsatrndwh.w\t%3, %3, %m2:b\n"
++ "ld.d\t%4, %6[34*4]\n"
++ "st.d\t%7[26*4], %3\n"
++
++ "mulsatrndwh.w\t%m4, %m4, %2:t\n"
++ "mulsatrndwh.w\t%4, %4, %2:b\n"
++ "st.d\t%7[28*4], %4\n"
++
++ : "=&r"(w0123), "=&r"(w4567), "=&r"(w891011), "=&r"(tmp), "=&r"(tmp2)
++ : "r"(wptr), "r"(yptr), "r"(z));
++ /*
++ MAD_F_ML0(hi, lo, yptr[6], wptr[6]);
++ MAD_F_MLA(hi, lo, yptr[12], wptr[0]);
++ z[12] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[7], wptr[7]);
++ MAD_F_MLA(hi, lo, yptr[13], wptr[1]);
++ z[13] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[8], wptr[8]);
++ MAD_F_MLA(hi, lo, yptr[14], wptr[2]);
++ z[14] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[9], wptr[9]);
++ MAD_F_MLA(hi, lo, yptr[15], wptr[3]);
++ z[15] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[10], wptr[10]);
++ MAD_F_MLA(hi, lo, yptr[16], wptr[4]);
++ z[16] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[11], wptr[11]);
++ MAD_F_MLA(hi, lo, yptr[17], wptr[5]);
++ z[17] = MAD_F_MLZ(hi, lo);
++
++ MAD_F_ML0(hi, lo, yptr[18], wptr[6]);
++ MAD_F_MLA(hi, lo, yptr[24], wptr[0]);
++ z[18] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[19], wptr[7]);
++ MAD_F_MLA(hi, lo, yptr[25], wptr[1]);
++ z[19] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[20], wptr[8]);
++ MAD_F_MLA(hi, lo, yptr[26], wptr[2]);
++ z[20] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[21], wptr[9]);
++ MAD_F_MLA(hi, lo, yptr[27], wptr[3]);
++ z[21] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[22], wptr[10]);
++ MAD_F_MLA(hi, lo, yptr[28], wptr[4]);
++ z[22] = MAD_F_MLZ(hi, lo);
++ MAD_F_ML0(hi, lo, yptr[23], wptr[11]);
++ MAD_F_MLA(hi, lo, yptr[29], wptr[5]);
++ z[23] = MAD_F_MLZ(hi, lo);*/
++
++
++ asm volatile ("ld.d\t%0, %3[6*4]\n"
++ "ld.d\t%1, %3[12*4]\n"
++ "mulwh.d\t%2, %m0, %5:t\n"
++ "macwh.d\t%2, %m1, %m4:t\n"
++ "mulwh.d\t%0, %0, %5:b\n"
++ "macwh.d\t%0, %1, %m4:b\n"
++ "lsl\t%m2, 1\n"
++ "lsl\t%2, %m0, 1\n"
++ "st.d\t%6[12*4], %2\n"
++
++ "ld.d\t%0, %3[18*4]\n"
++ "ld.d\t%1, %3[24*4]\n"
++ "mulwh.d\t%2, %m0, %5:t\n"
++ "macwh.d\t%2, %m1, %m4:t\n"
++ "mulwh.d\t%0, %0, %5:b\n"
++ "macwh.d\t%0, %1, %m4:b\n"
++ "lsl\t%m2, 1\n"
++ "lsl\t%2, %m0, 1\n"
++ "st.d\t%6[18*4], %2\n"
++
++ : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
++ : "r"(yptr), "r"(w0123), "r"(w4567), "r"(z));
++
++ asm volatile ("ld.d\t%0, %3[8*4]\n"
++ "ld.d\t%1, %3[14*4]\n"
++ "mulwh.d\t%2, %m0, %m5:t\n"
++ "macwh.d\t%2, %m1, %4:t\n"
++ "mulwh.d\t%0, %0, %m5:b\n"
++ "macwh.d\t%0, %1, %4:b\n"
++ "lsl\t%m2, 1\n"
++ "lsl\t%2, %m0, 1\n"
++ "st.d\t%6[14*4], %2\n"
++
++ "ld.d\t%0, %3[20*4]\n"
++ "ld.d\t%1, %3[26*4]\n"
++ "mulwh.d\t%2, %m0, %m5:t\n"
++ "macwh.d\t%2, %m1, %4:t\n"
++ "mulwh.d\t%0, %0, %m5:b\n"
++ "macwh.d\t%0, %1, %4:b\n"
++ "lsl\t%m2, 1\n"
++ "lsl\t%2, %m0, 1\n"
++ "st.d\t%6[20*4], %2\n"
++
++ : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
++ : "r"(yptr), "r"(w0123), "r"(w891011), "r"(z));
++
++ asm volatile ("ld.d\t%0, %3[10*4]\n"
++ "ld.d\t%1, %3[16*4]\n"
++ "mulwh.d\t%2, %m0, %5:t\n"
++ "macwh.d\t%2, %m1, %m4:t\n"
++ "mulwh.d\t%0, %0, %5:b\n"
++ "macwh.d\t%0, %1, %m4:b\n"
++ "lsl\t%m2, 1\n"
++ "lsl\t%2, %m0, 1\n"
++ "st.d\t%6[16*4], %2\n"
++
++ "ld.d\t%0, %3[22*4]\n"
++ "ld.d\t%1, %3[28*4]\n"
++ "mulwh.d\t%2, %m0, %5:t\n"
++ "macwh.d\t%2, %m1, %m4:t\n"
++ "mulwh.d\t%0, %0, %5:b\n"
++ "macwh.d\t%0, %1, %m4:b\n"
++ "lsl\t%m2, 1\n"
++ "lsl\t%2, %m0, 1\n"
++ "st.d\t%6[22*4], %2\n"
++
++ : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
++ : "r"(yptr), "r"(w4567), "r"(w891011), "r"(z));
++
++ }
++#else
+ for (i = 0; i < 6; ++i) {
+ z[i + 0] = 0;
+ z[i + 6] = mad_f_mul(yptr[ 0 + 0], wptr[0]);
+@@ -2218,8 +2522,15 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
+ ++yptr;
+ ++wptr;
+ }
++#endif
+ }
+
++#ifdef FPM_AVR32
++# undef mad_f_mul
++# define mad_f_mul(x, y) ((((x) + (1L << 11)) >> 12) * \
++ (((y) + (1L << 15)) >> 16))
++#endif
++
+ /*
+ * NAME: III_overlap()
+ * DESCRIPTION: perform overlap-add of windowed IMDCT outputs
+diff --git a/synth.c b/synth.c
+index 1d28d43..f42d49b 100644
+--- a/synth.c
++++ b/synth.c
+@@ -29,20 +29,6 @@
+ # include "frame.h"
+ # include "synth.h"
+
+-/*
+- * NAME: synth->init()
+- * DESCRIPTION: initialize synth struct
+- */
+-void mad_synth_init(struct mad_synth *synth)
+-{
+- mad_synth_mute(synth);
+-
+- synth->phase = 0;
+-
+- synth->pcm.samplerate = 0;
+- synth->pcm.channels = 0;
+- synth->pcm.length = 0;
+-}
+
+ /*
+ * NAME: synth->mute()
+@@ -88,6 +74,10 @@ void mad_synth_mute(struct mad_synth *synth)
+
+ /* FPM_DEFAULT without OPT_SSO will actually lose accuracy and performance */
+
++# if defined(FPM_AVR32)
++# define OPT_SSO
++# endif
++
+ # if defined(FPM_DEFAULT) && !defined(OPT_SSO)
+ # define OPT_SSO
+ # endif
+@@ -522,9 +512,15 @@ void dct32(mad_fixed_t const in[32], unsigned int slot,
+ # endif
+ # define ML0(hi, lo, x, y) ((lo) = (x) * (y))
+ # define MLA(hi, lo, x, y) ((lo) += (x) * (y))
+-# define MLN(hi, lo) ((lo) = -(lo))
+-# define MLZ(hi, lo) ((void) (hi), (mad_fixed_t) (lo))
+-# define SHIFT(x) ((x) >> 2)
++# if defined(FPM_AVR32)
++# define MLN(hi, lo) MAD_F_MLN((hi), (lo))
++# define MLZ(hi, lo) (hi)
++# define SHIFT(x) ((x) << 2)
++# else
++# define MLN(hi, lo) ((lo) = -(lo))
++# define MLZ(hi, lo) ((void) (hi), (mad_fixed_t) (lo))
++# define SHIFT(x) ((x) >> 2)
++# endif
+ # define PRESHIFT(x) ((MAD_F(x) + (1L << 13)) >> 14)
+ # else
+ # define ML0(hi, lo, x, y) MAD_F_ML0((hi), (lo), (x), (y))
+@@ -541,11 +537,54 @@ void dct32(mad_fixed_t const in[32], unsigned int slot,
+ # endif
+ # endif
+
++/*
++ * NAME: synth->init()
++ * DESCRIPTION: initialize synth struct
++ */
++
++#ifdef FPM_AVR32
++short Dmod[17][33];
++#endif
++
+ static
++#ifdef FPM_AVR32
++short const D[17][32] = {
++#else
+ mad_fixed_t const D[17][32] = {
++#endif
+ # include "D.dat"
+ };
+
++void mad_synth_init(struct mad_synth *synth)
++{
++
++ mad_synth_mute(synth);
++
++ synth->phase = 0;
++
++ synth->pcm.samplerate = 0;
++ synth->pcm.channels = 0;
++ synth->pcm.length = 0;
++
++#ifdef FPM_AVR32
++ {
++ int i, j;
++ for ( i = 0; i < 17; i++ ){
++ for ( j = 0; j < 32; j++ ){
++ if ( j & 1 ){
++ Dmod[i][17 + (j >> 1)]= D[i][j];
++ } else {
++ Dmod[i][(j >> 1)]= D[i][j];
++ }
++ }
++
++ Dmod[i][16]= Dmod[i][16+8];
++ }
++ }
++#endif
++
++}
++
+ # if defined(ASO_SYNTH)
+ void synth_full(struct mad_synth *, struct mad_frame const *,
+ unsigned int, unsigned int);
+@@ -560,9 +599,13 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
+ {
+ unsigned int phase, ch, s, sb, pe, po;
+ mad_fixed_t *pcm1, *pcm2, (*filter)[2][2][16][8];
+- mad_fixed_t const (*sbsample)[36][32];
++ mad_fixed_t /*const*/ (*sbsample)[36][32];
+ register mad_fixed_t (*fe)[8], (*fx)[8], (*fo)[8];
++#ifdef FPM_AVR32
++ register short const (*Dptr)[32], *ptr;
++#else
+ register mad_fixed_t const (*Dptr)[32], *ptr;
++#endif
+ register mad_fixed64hi_t hi;
+ register mad_fixed64lo_t lo;
+
+@@ -573,6 +616,20 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
+ pcm1 = synth->pcm.samples[ch];
+
+ for (s = 0; s < ns; ++s) {
++# ifdef FPM_AVR32
++/*
++ int i;
++ for ( i = 0; i < 32; i++ ){
++ (*sbsample)[s][i] = ((*sbsample)[s][i] + (1 << 13)) & 0xFFFFC000;
++ }
++*/
++ dct32_avr32((*sbsample)[s], phase >> 1,
++ (*filter)[0][phase & 1], (*filter)[1][phase & 1]);
++ /* printf("dct32: %d\n", GET_CYCLES);*/
++ pcm1 = synth_avr32(phase, (mad_fixed_t *)filter, \
++ pcm1, (short *)&Dmod[0]);
++ /* printf("synth_window: %d\n", GET_CYCLES);*/
++# else
+ dct32((*sbsample)[s], phase >> 1,
+ (*filter)[0][phase & 1], (*filter)[1][phase & 1]);
+
+@@ -679,6 +736,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
+ MLA(hi, lo, (*fo)[7], ptr[ 2]);
+
+ *pcm1 = SHIFT(-MLZ(hi, lo));
++# endif
+ pcm1 += 16;
+
+ phase = (phase + 1) % 16;
+diff --git a/synth_avr32.S b/synth_avr32.S
+new file mode 100644
+index 0000000..701077b
+--- /dev/null
++++ b/synth_avr32.S
+@@ -0,0 +1,394 @@
++/*
++ Optimized function for speeding up synthesis filter
++ in MPEG Audio Decoding.
++ Copyright 2003-2006 Atmel Corporation.
++
++ Written by Ronny Pedersen and Lars Even Almås, Atmel Norway
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++
++
++/* *****************
++ Defining macros
++ ***************** */
++
++ .macro window_1 f, ptr, acc, ptr_offset, mul, tmp1_lo, tmp1_hi, tmp2_lo, tmp2_hi, tmp3_lo, tmp3_hi
++ ld.d \tmp1_lo, \f[0*4] /* tmp1 = { f[0], f[1] } */
++ ld.w \tmp2_lo, \ptr[0*2+\ptr_offset*2] /* tmp2_lo = { ptr[0], ptr[1] }*/
++ ld.d \tmp3_lo, \f[6*4] /* tmp3 = { f[6], f[7] } */
++ ld.w \tmp2_hi, \ptr[6*2+\ptr_offset*2] /* tmp2_hi = { ptr[6], ptr[7] }*/
++ .if \mul
++ mulwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[0] * ptr[0]*/
++ .else
++ macwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[0] * ptr[0]*/
++ .endif
++ macwh.d \acc, \tmp3_lo, \tmp2_lo:b /* f[7] * ptr[1]*/
++ ld.w \tmp2_lo, \ptr[2*2+\ptr_offset*2] /* tmp2_lo = { ptr[2], ptr[3] }*/
++ macwh.d \acc, \tmp1_lo, \tmp2_hi:b /* f[1] * ptr[7]*/
++ ld.d \tmp1_lo, \f[2*4] /* tmp1 = { f[2], f[3] } */
++
++ macwh.d \acc, \tmp3_hi, \tmp2_lo:t /* f[6] * ptr[2]*/
++ macwh.d \acc, \tmp1_hi, \tmp2_hi:t /* f[2] * ptr[6]*/
++ ld.d \tmp3_lo, \f[4*4] /* tmp3 = { f[4], f[5] } */
++ ld.w \tmp2_hi, \ptr[4*2+\ptr_offset*2] /* tmp2_hi = { ptr[4], ptr[5] }*/
++ macwh.d \acc, \tmp3_lo, \tmp2_lo:b /* f[5] * ptr[3]*/
++
++ macwh.d \acc, \tmp1_lo, \tmp2_hi:b /* f[3] * ptr[5]*/
++ macwh.d \acc, \tmp3_hi, \tmp2_hi:t /* f[4] * ptr[4]*/
++ .endm
++
++ .macro window_2 f, ptr, acc, ptr_offset, mul, tmp1_lo, tmp1_hi, tmp2_lo, tmp2_hi, tmp3_lo, tmp3_hi
++ ld.d \tmp1_lo, \f[0*4] /* tmp1 = { f[0], f[1] } */
++ ld.w \tmp2_lo, \ptr[7*2+\ptr_offset*2] /* tmp2_lo = { ptr[7], ptr[8] }*/
++ ld.d \tmp3_lo, \f[2*4] /* tmp3 = { f[2], f[3] } */
++ ld.w \tmp2_hi, \ptr[9*2+\ptr_offset*2] /* tmp2_hi = { ptr[9], ptr[10] }*/
++ .if \mul
++ mulwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[0] * ptr[7]*/
++ .else
++ macwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[0] * ptr[7]*/
++ .endif
++ macwh.d \acc, \tmp1_lo, \tmp2_lo:b /* f[1] * ptr[8]*/
++
++ ld.d \tmp1_lo, \f[4*4] /* tmp1 = { f[4], f[5] } */
++ ld.w \tmp2_lo, \ptr[11*2+\ptr_offset*2] /* tmp2_lo = { ptr[11], ptr[12] }*/
++
++ macwh.d \acc, \tmp3_hi, \tmp2_hi:t /* f[2] * ptr[9]*/
++ macwh.d \acc, \tmp3_lo, \tmp2_hi:b /* f[3] * ptr[10]*/
++
++ ld.d \tmp3_lo, \f[6*4] /* tmp3 = { f[6], f[7] } */
++ ld.w \tmp2_hi, \ptr[13*2+\ptr_offset*2] /* tmp2_hi = { ptr[13], ptr[14] }*/
++
++ macwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[4] * ptr[11]*/
++ macwh.d \acc, \tmp1_lo, \tmp2_lo:b /* f[5] * ptr[12]*/
++ macwh.d \acc, \tmp3_hi, \tmp2_hi:t /* f[6] * ptr[13]*/
++ macwh.d \acc, \tmp3_lo, \tmp2_hi:b /* f[7] * ptr[14]*/
++ .endm
++
++ .macro scale res, d_lo, d_hi
++ lsl \d_hi, 2
++ .endm
++
++/* **********************
++ Starting main function
++ ********************** */
++
++/* Function synth_avr32 is called from synth.c with arguments:
++ phase, filter, *pcm1, &D[0] */
++
++ .global synth_avr32
++synth_avr32:
++ pushm r0-r7, lr
++ sub sp, 8
++
++ /* R12 = phase, R11 = filter, R10 = pcm1, r9 = D*/
++ bld r12, 0
++ brcc synth_even
++
++ /* Filter for odd phases */
++
++ /* fe = &(*filter)[0][1][0];
++ fx = &(*filter)[0][0][0];
++ fo = &(*filter)[1][0][0]; */
++ sub lr /*fe*/, r11, -16*8*4
++ sub r8 /*fo*/, r11, -16*8*4*2
++
++ /* pe = phase >> 1; */
++ lsr r12, 1
++ stdsp sp[4], r12
++ /* ptr = (short const *)Dmod + pe; */
++ add r12, r9, r12 << 1
++
++ /* ML0(hi, lo, (*fx)[0], ptr[0 + 17]);
++ MLA(hi, lo, (*fx)[1], ptr[7 + 17]);
++ MLA(hi, lo, (*fx)[2], ptr[6 + 17]);
++ MLA(hi, lo, (*fx)[3], ptr[5 + 17]);
++ MLA(hi, lo, (*fx)[4], ptr[4 + 17]);
++ MLA(hi, lo, (*fx)[5], ptr[3 + 17]);
++ MLA(hi, lo, (*fx)[6], ptr[2 + 17]);
++ MLA(hi, lo, (*fx)[7], ptr[1 + 17]); */
++ window_1 r11/*fx*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
++
++ /* MLN(hi, lo); */
++ neg r0
++ acr r1
++ neg r1
++
++ /* MLA(hi, lo, (*fe)[0], ptr[0]);
++ MLA(hi, lo, (*fe)[1], ptr[7]);
++ MLA(hi, lo, (*fe)[2], ptr[6]);
++ MLA(hi, lo, (*fe)[3], ptr[5]);
++ MLA(hi, lo, (*fe)[4], ptr[4]);
++ MLA(hi, lo, (*fe)[5], ptr[3]);
++ MLA(hi, lo, (*fe)[6], ptr[2]);
++ MLA(hi, lo, (*fe)[7], ptr[1]); */
++ window_1 lr/*fe*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
++
++ /* *pcm1++ = SHIFT(MLZ(hi, lo));
++
++ pcm2 = pcm1 + 31; */
++ scale r1, r0, r1
++ st.w r10/*pcm_1*/++, r1
++ sub r11/*pcm2*/, r10, -4*31
++
++ /* for (sb = 1; sb < 16; ++sb) { */
++ mov r2, 15
++ stdsp sp[0], r2
++odd_loop:
++ /* ++fe;
++ ptr += 33; */
++ sub lr /*fe*/, -8*4
++ sub r12, -33*2
++
++ /* ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
++ MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
++ MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
++ MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
++ MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
++ MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
++ MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
++ MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
++ window_1 r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
++ /* MLN(hi, lo); */
++
++ neg r0
++ acr r1
++ neg r1
++
++ /* MLA(hi, lo, (*fe)[7], ptr[1]);
++ MLA(hi, lo, (*fe)[6], ptr[2]);
++ MLA(hi, lo, (*fe)[5], ptr[3]);
++ MLA(hi, lo, (*fe)[4], ptr[4]);
++ MLA(hi, lo, (*fe)[3], ptr[5]);
++ MLA(hi, lo, (*fe)[2], ptr[6]);
++ MLA(hi, lo, (*fe)[1], ptr[7]);
++ MLA(hi, lo, (*fe)[0], ptr[0]); */
++ window_1 lr/*fe*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
++
++ /* ptr -= 2*pe; */
++ lddsp r2, sp[4]
++
++ /* *pcm1++ = SHIFT(MLZ(hi, lo)); */
++
++ scale r1, r0, r1
++ sub r12/*ptr*/, r12, r2/*pe*/<< 2
++ st.w r10/*pcm_1*/++, r1
++
++
++ /* ML0(hi, lo, (*fe)[0], ptr[7 + 17]);
++ MLA(hi, lo, (*fe)[1], ptr[8 + 17]);
++ MLA(hi, lo, (*fe)[2], ptr[9 + 17]);
++ MLA(hi, lo, (*fe)[3], ptr[10 + 17]);
++ MLA(hi, lo, (*fe)[4], ptr[11 + 17]);
++ MLA(hi, lo, (*fe)[5], ptr[12 + 17]);
++ MLA(hi, lo, (*fe)[6], ptr[13 + 17]);
++ MLA(hi, lo, (*fe)[7], ptr[14 + 17]); */
++ window_2 lr/*fe*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
++ /* MLA(hi, lo, (*fo)[7], ptr[14]);
++ MLA(hi, lo, (*fo)[6], ptr[13]);
++ MLA(hi, lo, (*fo)[5], ptr[12]);
++ MLA(hi, lo, (*fo)[4], ptr[11]);
++ MLA(hi, lo, (*fo)[3], ptr[10]);
++ MLA(hi, lo, (*fo)[2], ptr[9]);
++ MLA(hi, lo, (*fo)[1], ptr[8]);
++ MLA(hi, lo, (*fo)[0], ptr[7]); */
++ window_2 r8/*fo*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
++
++
++ /* *pcm2-- = SHIFT(MLZ(hi, lo)); */
++ lddsp r3, sp[4]
++ lddsp r2, sp[0]
++ scale r1, r0, r1
++ st.w --r11/*pcm_2*/, r1
++
++ /* ptr += 2*pe; */
++ add r12/*ptr*/, r12, r3/*pe*/<< 2
++
++ /* ++fo;
++ } */
++ sub r8/*fo*/, -8*4
++
++ sub r2, 1
++ stdsp sp[0], r2
++ brne odd_loop
++
++ /* ptr += 33; */
++ sub r12/*ptr*/, -33*2
++
++ /* ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
++ MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
++ MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
++ MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
++ MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
++ MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
++ MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
++ MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
++ window_1 r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
++
++ rjmp synth_end
++synth_even:
++ /* Filter for even phases */
++
++ /* fe = &(*filter)[0][0][0];
++ fx = &(*filter)[0][1][0];
++ fo = &(*filter)[1][1][0]; */
++ sub lr /*fx*/, r11, -16*8*4
++ sub r8 /*fo*/, r11, -(16*8*4*2 + 16*8*4)
++
++ /* po = ((phase - 1) & 0xF) >> 1; */
++ sub r12, 1
++ andl r12, 0xe, COH
++ stdsp sp[4], r12
++ /* ptr = (short const *)Dmod + po; */
++ add r12, r9, r12
++
++ /* ML0(hi, lo, (*fx)[0], ptr[0 + 17]);
++ MLA(hi, lo, (*fx)[1], ptr[7 + 17]);
++ MLA(hi, lo, (*fx)[2], ptr[6 + 17]);
++ MLA(hi, lo, (*fx)[3], ptr[5 + 17]);
++ MLA(hi, lo, (*fx)[4], ptr[4 + 17]);
++ MLA(hi, lo, (*fx)[5], ptr[3 + 17]);
++ MLA(hi, lo, (*fx)[6], ptr[2 + 17]);
++ MLA(hi, lo, (*fx)[7], ptr[1 + 17]); */
++ window_1 lr/*fx*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
++
++ /* MLN(hi, lo); */
++ neg r0
++ acr r1
++ neg r1
++
++ /* MLA(hi, lo, (*fe)[0], ptr[0 + 1]);
++ MLA(hi, lo, (*fe)[1], ptr[7 + 1]);
++ MLA(hi, lo, (*fe)[2], ptr[6 + 1]);
++ MLA(hi, lo, (*fe)[3], ptr[5 + 1]);
++ MLA(hi, lo, (*fe)[4], ptr[4 + 1]);
++ MLA(hi, lo, (*fe)[5], ptr[3 + 1]);
++ MLA(hi, lo, (*fe)[6], ptr[2 + 1]);
++ MLA(hi, lo, (*fe)[7], ptr[1 + 1]); */
++ window_1 r11/*fe*/,r12/*ptr*/,r0/*acc*/,1/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
++
++ /* *pcm1++ = SHIFT(MLZ(hi, lo));
++
++ pcm2 = pcm1 + 31; */
++ scale r1, r0, r1
++ st.w r10/*pcm_1*/++, r1
++ sub lr/*pcm2*/, r10, -4*31
++
++ /* for (sb = 1; sb < 16; ++sb) { */
++ mov r2, 15
++ stdsp sp[0], r2
++even_loop:
++ /* ++fe;
++ ptr += 33; */
++ sub r11 /*fe*/, -8*4
++ sub r12, -33*2
++
++ /* ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
++ MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
++ MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
++ MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
++ MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
++ MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
++ MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
++ MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
++ window_1 r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
++ /* MLN(hi, lo); */
++ neg r0
++ acr r1
++ neg r1
++
++ /* MLA(hi, lo, (*fe)[7], ptr[1 + 1]);
++ MLA(hi, lo, (*fe)[6], ptr[2 + 1]);
++ MLA(hi, lo, (*fe)[5], ptr[3 + 1]);
++ MLA(hi, lo, (*fe)[4], ptr[4 + 1]);
++ MLA(hi, lo, (*fe)[3], ptr[5 + 1]);
++ MLA(hi, lo, (*fe)[2], ptr[6 + 1]);
++ MLA(hi, lo, (*fe)[1], ptr[7 + 1]);
++ MLA(hi, lo, (*fe)[0], ptr[0 + 1]); */
++ window_1 r11/*fe*/,r12/*ptr*/,r0/*acc*/,1/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
++
++ /* *pcm1++ = SHIFT(MLZ(hi, lo)); */
++ lddsp r2, sp[4]
++ scale r1, r0, r1
++ /* ptr -= 2*po; */
++ sub r12/*ptr*/, r12, r2/*po*/<< 1
++ st.w r10/*pcm_1*/++, r1
++
++
++ /* ML0(hi, lo, (*fe)[0], ptr[7 + 17 - 1]);
++ MLA(hi, lo, (*fe)[1], ptr[8 + 17 - 1]);
++ MLA(hi, lo, (*fe)[2], ptr[9 + 17 - 1]);
++ MLA(hi, lo, (*fe)[3], ptr[10 + 17 - 1]);
++ MLA(hi, lo, (*fe)[4], ptr[11 + 17 - 1]);
++ MLA(hi, lo, (*fe)[5], ptr[12 + 17 - 1]);
++ MLA(hi, lo, (*fe)[6], ptr[13 + 17 - 1]);
++ MLA(hi, lo, (*fe)[7], ptr[14 + 17 - 1]); */
++ window_2 r11/*fe*/,r12/*ptr*/,r0/*acc*/,16/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
++ /* MLA(hi, lo, (*fo)[7], ptr[14]);
++ MLA(hi, lo, (*fo)[6], ptr[13]);
++ MLA(hi, lo, (*fo)[5], ptr[12]);
++ MLA(hi, lo, (*fo)[4], ptr[11]);
++ MLA(hi, lo, (*fo)[3], ptr[10]);
++ MLA(hi, lo, (*fo)[2], ptr[9]);
++ MLA(hi, lo, (*fo)[1], ptr[8]);
++ MLA(hi, lo, (*fo)[0], ptr[7]); */
++ window_2 r8/*fo*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
++
++
++ /* *pcm2-- = SHIFT(MLZ(hi, lo)); */
++ lddsp r3, sp[4]
++ lddsp r2, sp[0]
++ scale r1, r0, r1
++ st.w --lr/*pcm_2*/, r1
++
++ /* ptr += 2*po; */
++ add r12/*ptr*/, r12, r3/*po*/<< 1
++
++ /* ++fo;
++ } */
++ sub r8/*fo*/, -8*4
++
++ sub r2, 1
++ stdsp sp[0], r2
++ brne even_loop
++
++ /* ptr += 33; */
++ sub r12/*ptr*/, -33*2
++
++ /* ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
++ MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
++ MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
++ MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
++ MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
++ MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
++ MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
++ MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
++ window_1 r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
++
++
++
++synth_end:
++ /* *pcm1 = SHIFT(-MLZ(hi, lo)); */
++ scale r1, r0, r1
++ neg r1
++ st.w r10/*pcm_1*/, r1
++
++ mov r12, r10
++ sub sp, -8
++ popm r0-r7, pc
++
++
++
++
++
--- /dev/null
+libmad: remove deprecated cflags (-fforce-mem)
+
+fforce-mem has long been deprecated, and is completely removed from
+gcc 4.3.x on.
+---
+ configure | 1 -
+ configure.ac | 1 -
+ 2 files changed, 2 deletions(-)
+
+Index: libmad-0.15.1b/configure.ac
+===================================================================
+--- libmad-0.15.1b.orig/configure.ac
++++ libmad-0.15.1b/configure.ac
+@@ -140,7 +140,6 @@
+ case "$optimize" in
+ -O|"-O "*)
+ optimize="-O"
+- optimize="$optimize -fforce-mem"
+ optimize="$optimize -fforce-addr"
+ : #x optimize="$optimize -finline-functions"
+ : #- optimize="$optimize -fstrength-reduce"
+Index: libmad-0.15.1b/configure
+===================================================================
+--- libmad-0.15.1b.orig/configure
++++ libmad-0.15.1b/configure
+@@ -19099,7 +19099,6 @@
+ case "$optimize" in
+ -O|"-O "*)
+ optimize="-O"
+- optimize="$optimize -fforce-mem"
+ optimize="$optimize -fforce-addr"
+ : #x optimize="$optimize -finline-functions"
+ : #- optimize="$optimize -fstrength-reduce"
--- /dev/null
+Fixes Thumb2-related build failure
+
+Patch below comes from the Debian libmad package.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+From: Dave Martin
+Subject: "rsc" doesnt exist anymore in thumb2
+
+diff --git a/fixed.h b/fixed.h
+index 4b58abf..ba4bc26 100644
+--- a/fixed.h
++++ b/fixed.h
+@@ -275,12 +275,25 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
+ : "+r" (lo), "+r" (hi) \
+ : "%r" (x), "r" (y))
+
++#ifdef __thumb__
++/* In Thumb-2, the RSB-immediate instruction is only allowed with a zero
++ operand. If needed this code can also support Thumb-1
++ (simply append "s" to the end of the second two instructions). */
++# define MAD_F_MLN(hi, lo) \
++ asm ("rsbs %0, %0, #0\n\t" \
++ "sbc %1, %1, %1\n\t" \
++ "sub %1, %1, %2" \
++ : "+&r" (lo), "=&r" (hi) \
++ : "r" (hi) \
++ : "cc")
++#else /* ! __thumb__ */
+ # define MAD_F_MLN(hi, lo) \
+ asm ("rsbs %0, %2, #0\n\t" \
+ "rsc %1, %3, #0" \
+- : "=r" (lo), "=r" (hi) \
++ : "=&r" (lo), "=r" (hi) \
+ : "0" (lo), "1" (hi) \
+ : "cc")
++#endif /* __thumb__ */
+
+ # define mad_f_scale64(hi, lo) \
+ ({ mad_fixed_t __result; \
--- /dev/null
+Fixes Thumb2 related build failure
+
+Patch below comes from the Debian libmad package.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+From: Konstantinos Margaritis <markos@debian.org>
+Subject: use "adr" instead of "add" to make code ready for thumb2
+
+--- ./imdct_l_arm.S.orig 2010-02-25 13:25:23.000000000 +0100
++++ ./imdct_l_arm.S 2010-02-25 13:27:26.000000000 +0100
+@@ -468,7 +468,7 @@
+
+ @----
+
+- add r2, pc, #(imdct36_long_karray-.-8) @ r2 = base address of Knn array (PIC safe ?)
++ adr r2, imdct36_long_karray
+
+
+ loop:
+++ /dev/null
-http://patchwork.openembedded.org/patch/921/
-
-diff -ur libmad-0.15.1b-orig/fixed.h libmad-0.15.1b/fixed.h
---- libmad-0.15.1b-orig/fixed.h 2004-02-17 12:32:03.000000000 +1030
-+++ libmad-0.15.1b/fixed.h 2009-08-05 10:46:30.000000000 +0930
-@@ -299,6 +299,23 @@
-
- # elif defined(FPM_MIPS)
-
-+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
-+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
-+#define __GNUC_PREREQ(maj, min) \
-+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-+#else
-+#define __GNUC_PREREQ(maj, min) 0
-+#endif
-+
-+#if __GNUC_PREREQ(4,4)
-+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
-+# define MAD_F_MLX(hi, lo, x, y) \
-+ do { \
-+ u64_di_t __ll = (u64_di_t) (x) * (y); \
-+ hi = __ll >> 32; \
-+ lo = __ll; \
-+ } while (0)
-+#else
- /*
- * This MIPS version is fast and accurate; the disposition of the least
- * significant bit depends on OPT_ACCURACY via mad_f_scale64().
-@@ -328,6 +345,7 @@
- : "%r" ((x) >> 12), "r" ((y) >> 16))
- # define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
- # endif
-+#endif /* __GNU_PREREQ(4,4) */
-
- # if defined(OPT_SPEED)
- # define mad_f_scale64(hi, lo) \
-diff -ur libmad-0.15.1b-orig/mad.h libmad-0.15.1b/mad.h
---- libmad-0.15.1b-orig/mad.h 2004-02-17 13:25:44.000000000 +1030
-+++ libmad-0.15.1b/mad.h 2009-08-05 10:42:40.000000000 +0930
-@@ -344,6 +344,23 @@
-
- # elif defined(FPM_MIPS)
-
-+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
-+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
-+#define __GNUC_PREREQ(maj, min) \
-+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-+#else
-+#define __GNUC_PREREQ(maj, min) 0
-+#endif
-+
-+#if __GNUC_PREREQ(4,4)
-+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
-+# define MAD_F_MLX(hi, lo, x, y) \
-+ do { \
-+ u64_di_t __ll = (u64_di_t) (x) * (y); \
-+ hi = __ll >> 32; \
-+ lo = __ll; \
-+ } while (0)
-+#else
- /*
- * This MIPS version is fast and accurate; the disposition of the least
- * significant bit depends on OPT_ACCURACY via mad_f_scale64().
-@@ -373,6 +390,7 @@
- : "%r" ((x) >> 12), "r" ((y) >> 16))
- # define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
- # endif
-+#endif /* __GNU_PREREQ(4,4) */
-
- # if defined(OPT_SPEED)
- # define mad_f_scale64(hi, lo) \
+++ /dev/null
-diff --git a/bit.c b/bit.c
-index c2bfb24..262ce3a 100644
---- a/bit.c
-+++ b/bit.c
-@@ -25,12 +25,6 @@
-
- # include "global.h"
-
--# ifdef HAVE_LIMITS_H
--# include <limits.h>
--# else
--# define CHAR_BIT 8
--# endif
--
- # include "bit.h"
-
- /*
-@@ -81,6 +75,8 @@ unsigned short const crc_table[256] = {
-
- # define CRC_POLY 0x8005
-
-+#ifndef FPM_AVR32
-+
- /*
- * NAME: bit->init()
- * DESCRIPTION: initialize bit pointer struct
-@@ -190,6 +186,8 @@ void mad_bit_write(struct mad_bitptr *bitptr, unsigned int len,
- }
- # endif
-
-+#endif
-+
- /*
- * NAME: bit->crc()
- * DESCRIPTION: compute CRC-check word
-diff --git a/bit.h b/bit.h
-index 5a51570..70f550a 100644
---- a/bit.h
-+++ b/bit.h
-@@ -22,6 +22,92 @@
- # ifndef LIBMAD_BIT_H
- # define LIBMAD_BIT_H
-
-+# ifdef HAVE_LIMITS_H
-+# include <limits.h>
-+# else
-+# define CHAR_BIT 8
-+# endif
-+
-+#ifdef FPM_AVR32
-+
-+struct mad_bitptr {
-+ unsigned char const *byte;
-+ unsigned int read_bytes;
-+};
-+
-+/*
-+ * NAME: bit->init()
-+ * DESCRIPTION: initialize bit pointer struct
-+ */
-+static void mad_bit_init(struct mad_bitptr *bitptr, unsigned char const *byte)
-+{
-+ bitptr->byte = byte;
-+ bitptr->read_bytes = 0;
-+}
-+
-+/*
-+ * NAME: bit->length()
-+ * DESCRIPTION: return number of bits between start and end points
-+ */
-+static unsigned int mad_bit_length(struct mad_bitptr const *begin,
-+ struct mad_bitptr const *end)
-+{
-+ return (end->read_bytes - begin->read_bytes) +
-+ 8 * (end->byte - begin->byte);
-+}
-+
-+/*
-+ * NAME: bit->nextbyte()
-+ * DESCRIPTION: return pointer to next unprocessed byte
-+ */
-+static unsigned char const *mad_bit_nextbyte(struct mad_bitptr const *bitptr)
-+{
-+ return bitptr->byte + ((bitptr->read_bytes + 0x7) >> 3);
-+}
-+
-+/*
-+ * NAME: bit->skip()
-+ * DESCRIPTION: advance bit pointer
-+ */
-+static void mad_bit_skip(struct mad_bitptr *bitptr, unsigned int len)
-+{
-+ bitptr->read_bytes += len;
-+ bitptr->byte += (bitptr->read_bytes >> 3);
-+ bitptr->read_bytes &= 0x7;
-+}
-+
-+/*
-+ * NAME: bit->read()
-+ * DESCRIPTION: read an arbitrary number of bits and return their UIMSBF value
-+ */
-+static unsigned long mad_bit_read(struct mad_bitptr *bitptr, unsigned int len)
-+{
-+ register unsigned long value;
-+
-+ if (!len)
-+ return 0;
-+
-+ value = *(unsigned int *)bitptr->byte;
-+
-+ value <<= bitptr->read_bytes;
-+ value >>= (32 - len);
-+
-+ bitptr->read_bytes += len;
-+ bitptr->byte += (bitptr->read_bytes >> 3);
-+ bitptr->read_bytes &= 0x7;
-+
-+ return value;
-+}
-+
-+# define mad_bit_finish(bitptr) /* nothing */
-+
-+static unsigned long mad_bit_bitsleft(struct mad_bitptr *bitptr)
-+{
-+ return (8 - (bitptr)->read_bytes);
-+}
-+
-+#else /* #ifdef FPM_AVR32 */
-+
- struct mad_bitptr {
- unsigned char const *byte;
- unsigned short cache;
-@@ -42,6 +128,8 @@ void mad_bit_skip(struct mad_bitptr *, unsigned int);
- unsigned long mad_bit_read(struct mad_bitptr *, unsigned int);
- void mad_bit_write(struct mad_bitptr *, unsigned int, unsigned long);
-
-+#endif
-+
- unsigned short mad_bit_crc(struct mad_bitptr, unsigned int, unsigned short);
-
- # endif
-diff --git a/configure.ac b/configure.ac
-index 9b79399..063cb9b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -274,13 +274,14 @@ fi
- AC_MSG_CHECKING(for architecture-specific fixed-point math routines)
- AC_ARG_ENABLE(fpm, AC_HELP_STRING([--enable-fpm=ARCH],
- [use ARCH-specific fixed-point math routines
-- (one of: intel, arm, mips, sparc, ppc, 64bit, default)]),
-+ (one of: intel, arm, avr32, mips, sparc, ppc, 64bit, default)]),
- [
- case "$enableval" in
- yes) ;;
- no|default|approx) FPM="DEFAULT" ;;
- intel|i?86) FPM="INTEL" ;;
- arm) FPM="ARM" ;;
-+ avr32) FPM="AVR32" ;;
- mips) FPM="MIPS" ;;
- sparc) FPM="SPARC" ;;
- ppc|powerpc) FPM="PPC" ;;
-@@ -298,6 +299,7 @@ then
- case "$host" in
- i?86-*) FPM="INTEL" ;;
- arm*-*) FPM="ARM" ;;
-+ avr32*-*) FPM="AVR32" ;;
- mips*-*) FPM="MIPS" ;;
- sparc*-*) FPM="SPARC" ;;
- powerpc*-*) FPM="PPC" ;;
-@@ -343,6 +345,11 @@ then
- ASO="$ASO -DASO_IMDCT"
- ASO_OBJS="imdct_l_arm.lo"
- ;;
-+ avr32*-*)
-+ ASO="$ASO -DASO_INTERLEAVE2"
-+ ASO="$ASO -DASO_ZEROCHECK"
-+ ASO_OBJS="dct32_avr32.lo synth_avr32.lo imdct_avr32.lo"
-+ ;;
- mips*-*)
- ASO="$ASO -DASO_INTERLEAVE2"
- ASO="$ASO -DASO_ZEROCHECK"
-diff --git a/configure b/configure
-index ee421cc..7a9f0c8 100755
---- a/configure
-+++ b/configure
-@@ -1048,7 +1048,7 @@ Optional Features:
- --enable-speed optimize for speed over accuracy
- --enable-accuracy optimize for accuracy over speed
- --enable-fpm=ARCH use ARCH-specific fixed-point math routines (one of:
-- intel, arm, mips, sparc, ppc, 64bit, default)
-+ intel, arm, avr32, mips, sparc, ppc, 64bit, default)
- --enable-sso use subband synthesis optimization
- --disable-aso disable architecture-specific optimizations
- --enable-strict-iso use strict ISO/IEC interpretations
-@@ -21477,6 +21477,7 @@ if test "${enable_fpm+set}" = set; then
- no|default|approx) FPM="DEFAULT" ;;
- intel|i?86) FPM="INTEL" ;;
- arm) FPM="ARM" ;;
-+ avr32) FPM="AVR32" ;;
- mips) FPM="MIPS" ;;
- sparc) FPM="SPARC" ;;
- ppc|powerpc) FPM="PPC" ;;
-@@ -21498,6 +21499,7 @@ then
- case "$host" in
- i?86-*) FPM="INTEL" ;;
- arm*-*) FPM="ARM" ;;
-+ avr32*-*) FPM="AVR32" ;;
- mips*-*) FPM="MIPS" ;;
- sparc*-*) FPM="SPARC" ;;
- powerpc*-*) FPM="PPC" ;;
-@@ -21554,6 +21556,11 @@ then
- ASO="$ASO -DASO_IMDCT"
- ASO_OBJS="imdct_l_arm.lo"
- ;;
-+ avr32*-*)
-+ ASO="$ASO -DASO_INTERLEAVE2"
-+ ASO="$ASO -DASO_ZEROCHECK"
-+ ASO_OBJS="dct32_avr32.lo synth_avr32.lo imdct_avr32.lo"
-+ ;;
- mips*-*)
- ASO="$ASO -DASO_INTERLEAVE2"
- ASO="$ASO -DASO_ZEROCHECK"
-diff --git a/dct32_avr32.S b/dct32_avr32.S
-new file mode 100644
-index 0000000..7513340
---- /dev/null
-+++ b/dct32_avr32.S
-@@ -0,0 +1,780 @@
-+/*
-+ Optimized 32-point Discrete Cosine Transform (DCT)
-+ Copyright 2003-2006 Atmel Corporation.
-+
-+ Written by Ronny Pedersen, Atmel Norway
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2 of the License, or
-+ (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#define SHIFT 12
-+#define MAD_F_SCALEBITS 28
-+#define SLOTS 8
-+
-+#define MAD_F(x) ((x + (1 << 15)) >> 16)
-+
-+# define costab1 MAD_F(0x7fd8878e)
-+# define costab2 MAD_F(0x7f62368f)
-+# define costab3 MAD_F(0x7e9d55fc)
-+# define costab4 MAD_F(0x7d8a5f40)
-+# define costab5 MAD_F(0x7c29fbee)
-+# define costab6 MAD_F(0x7a7d055b)
-+# define costab7 MAD_F(0x78848414)
-+# define costab8 MAD_F(0x7641af3d)
-+# define costab9 MAD_F(0x73b5ebd1)
-+# define costab10 MAD_F(0x70e2cbc6)
-+# define costab11 MAD_F(0x6dca0d14)
-+# define costab12 MAD_F(0x6a6d98a4)
-+# define costab13 MAD_F(0x66cf8120)
-+# define costab14 MAD_F(0x62f201ac)
-+# define costab15 MAD_F(0x5ed77c8a)
-+# define costab16 MAD_F(0x5a82799a)
-+# define costab17 MAD_F(0x55f5a4d2)
-+# define costab18 MAD_F(0x5133cc94)
-+# define costab19 MAD_F(0x4c3fdff4)
-+# define costab20 MAD_F(0x471cece7)
-+# define costab21 MAD_F(0x41ce1e65)
-+# define costab22 MAD_F(0x3c56ba70)
-+# define costab23 MAD_F(0x36ba2014)
-+# define costab24 MAD_F(0x30fbc54d)
-+# define costab25 MAD_F(0x2b1f34eb)
-+# define costab26 MAD_F(0x25280c5e)
-+# define costab27 MAD_F(0x1f19f97b)
-+# define costab28 MAD_F(0x18f8b83c)
-+# define costab29 MAD_F(0x12c8106f)
-+# define costab30 MAD_F(0x0c8bd35e)
-+# define costab31 MAD_F(0x0647d97c)
-+
-+
-+ .macro butterfly2_in out1, out2, out3, out4, in, idx_in1, idx_in2, idx_in3, idx_in4, coeff1, coeff2, tmplo, tmphi
-+ mov \tmplo, \coeff1
-+ ld.w \out1, \in[\idx_in1 * 4]
-+ ld.w \out2, \in[\idx_in2 * 4]
-+ ld.w \out3, \in[\idx_in3 * 4]
-+ ld.w \out4, \in[\idx_in4 * 4]
-+ sub \tmphi, \out1, \out2
-+ add \out1, \out2
-+ mulsatrndwh.w \out2, \tmphi, \tmplo:b
-+
-+ sub \tmphi, \out3, \out4
-+ mov \tmplo, \coeff2
-+ add \out3, \out4
-+ mulsatrndwh.w \out4, \tmphi, \tmplo:b
-+ .endm
-+
-+ .macro butterfly2 in1, in2, in3, in4, coeff1, tmplo, tmphi, tmp
-+ mov \tmp, \coeff1
-+ sub \tmphi, \in1, \in2
-+ add \in1, \in2
-+ mulsatrndwh.w \in2, \tmphi, \tmp:b
-+
-+ sub \tmphi, \in3, \in4
-+ add \in3, \in4
-+ mulsatrndwh.w \in4, \tmphi, \tmp:b
-+ .endm
-+
-+ .macro butterfly4 in1, in2, in3, in4, in5, in6, in7, in8, coeff1, tmplo, tmphi, tmp
-+ mov \tmp, \coeff1
-+ sub \tmphi, \in1, \in2
-+ add \in1, \in2
-+ mulsatrndwh.w \in2, \tmphi, \tmp:b
-+
-+ sub \tmphi, \in3, \in4
-+ add \in3, \in4
-+ mulsatrndwh.w \in4, \tmphi, \tmp:b
-+
-+ sub \tmphi, \in5, \in6
-+ add \in5, \in6
-+ mulsatrndwh.w \in6, \tmphi, \tmp:b
-+
-+ sub \tmphi, \in7, \in8
-+ add \in7, \in8
-+ mulsatrndwh.w \in8, \tmphi, \tmp:b
-+ .endm
-+
-+ .macro scale reg
-+ .endm
-+
-+/*void dct32( mad_fixed_t const in[32], unsigned int slot,
-+ mad_fixed_t lo[16][8], mad_fixed_t hi[16][8]) */
-+
-+ .global dct32_avr32
-+dct32_avr32:
-+ stm --sp, r0-r7, r9-r11, lr
-+
-+ sub sp, 32*4
-+
-+/* t0 = in[0] + in[31]; t16 = MUL(in[0] - in[31], costab1);
-+ t1 = in[15] + in[16]; t17 = MUL(in[15] - in[16], costab31); */
-+ butterfly2_in r4/*t0*/, r5/*t16*/, r6/*t1*/, r7/*t17*/, r12, 0, 31, 15, 16, costab1, costab31, r10, r11
-+
-+/* t41 = t16 + t17;
-+ t59 = MUL(t16 - t17, costab2);
-+ t33 = t0 + t1;
-+ t50 = MUL(t0 - t1, costab2);*/
-+ butterfly2 r5/*t41*/, r7/*t59*/, r4/*t33*/, r6/*t50*/, costab2, r10, r11, lr
-+
-+/* t2 = in[7] + in[24]; t18 = MUL(in[7] - in[24], costab15);
-+ t3 = in[8] + in[23]; t19 = MUL(in[8] - in[23], costab17); */
-+ butterfly2_in r0/*t2*/, r1/*t18*/, r2/*t3*/, r3/*t19*/, r12, 7, 24, 8, 23, costab15, costab17, r10, r11
-+
-+/* t42 = t18 + t19;
-+ t60 = MUL(t18 - t19, costab30);
-+ t34 = t2 + t3;
-+ t51 = MUL(t2 - t3, costab30); */
-+ butterfly2 r1/*t42*/, r3/*t60*/, r0/*t34*/, r2/*t51*/, costab30, r10, r11, lr
-+
-+/* t73 = t41 + t42; t94 = MUL(t41 - t42, costab4);
-+ t83 = t59 + t60; t106 = MUL(t59 - t60, costab4); */
-+
-+
-+/* t69 = t33 + t34; t89 = MUL(t33 - t34, costab4);
-+ t78 = t50 + t51; t100 = MUL(t50 - t51, costab4); */
-+ butterfly4 r5/*t73*/, r1/*t94*/, r7/*t83*/, r3/*t106*/,r4/*t69*/, r0/*t89*/, r6/*t78*/, r2/*t100*/, costab4, r10, r11, lr
-+
-+/* Store away the computed butterflies:
-+ sp[0-7] = t83, t78, t73, t69, t106, t100, t94, t89 */
-+ stm sp, r0-r7
-+
-+
-+/* t4 = in[3] + in[28]; t20 = MUL(in[3] - in[28], costab7);
-+ t5 = in[12] + in[19]; t21 = MUL(in[12] - in[19], costab25); */
-+ butterfly2_in r4/*t4*/, r5/*t20*/, r6/*t5*/, r7/*t21*/, r12, 3, 28, 12, 19, costab7, costab25, r10, r11
-+
-+/* t43 = t20 + t21;
-+ t61 = MUL(t20 - t21, costab14);
-+ t35 = t4 + t5;
-+ t52 = MUL(t4 - t5, costab14); */
-+ butterfly2 r5/*t43*/, r7/*t61*/, r4/*t35*/, r6/*t52*/, costab14, r10, r11, lr
-+
-+/* t6 = in[4] + in[27]; t22 = MUL(in[4] - in[27], costab9);
-+ t7 = in[11] + in[20]; t23 = MUL(in[11] - in[20], costab23); */
-+ butterfly2_in r0/*t6*/, r1/*t22*/, r2/*t7*/, r3/*t23*/, r12, 4, 27, 11, 20, costab9, costab23, r10, r11
-+
-+/* t44 = t22 + t23;
-+ t62 = MUL(t22 - t23, costab18);
-+ t36 = t6 + t7;
-+ t53 = MUL(t6 - t7, costab18); */
-+ butterfly2 r1/*t44*/, r3/*t62*/, r0/*t36*/, r2/*t53*/, costab18, r10, r11, lr
-+
-+/* t74 = t43 + t44; t95 = MUL(t43 - t44, costab28);
-+ t84 = t61 + t62; t107 = MUL(t61 - t62, costab28); */
-+
-+/* t70 = t35 + t36; t90 = MUL(t35 - t36, costab28);
-+ t79 = t52 + t53; t101 = MUL(t52 - t53, costab28); */
-+ butterfly4 r5/*t74*/, r1/*t95*/, r7/*t84*/, r3/*t107*/, r4/*t70*/, r0/*t90*/, r6/*t79*/, r2/*t101*/, costab28, r10, r11, lr
-+
-+/* Store away the computed butterflies:
-+ sp[8-15] = t84, t79, t74, t70, t107, t101, t95, t90 */
-+ sub r10, sp, -8*4
-+ stm r10, r0-r7
-+
-+
-+/* t8 = in[1] + in[30]; t24 = MUL(in[1] - in[30], costab3);
-+ t9 = in[14] + in[17]; t25 = MUL(in[14] - in[17], costab29); */
-+ butterfly2_in r4/*t8*/, r5/*t24*/, r6/*t9*/, r7/*t25*/, r12, 1, 30, 14, 17, costab3, costab29, r10, r11
-+
-+
-+/* t45 = t24 + t25;
-+ t63 = MUL(t24 - t25, costab6);
-+ t37 = t8 + t9;
-+ t54 = MUL(t8 - t9, costab6); */
-+ butterfly2 r5/*t45*/, r7/*t63*/, r4/*t37*/, r6/*t54*/, costab6, r10, r11, lr
-+
-+/* t10 = in[6] + in[25]; t26 = MUL(in[6] - in[25], costab13);
-+ t11 = in[9] + in[22]; t27 = MUL(in[9] - in[22], costab19); */
-+ butterfly2_in r0/*t10*/, r1/*t26*/, r2/*t11*/, r3/*t27*/, r12, 6, 25, 9, 22, costab13, costab19, r10, r11
-+
-+/* t46 = t26 + t27;
-+ t64 = MUL(t26 - t27, costab26);
-+ t38 = t10 + t11;
-+ t55 = MUL(t10 - t11, costab26); */
-+ butterfly2 r1/*t46*/, r3/*t64*/, r0/*t38*/, r2/*t55*/, costab26, r10, r11, lr
-+
-+/* t75 = t45 + t46; t96 = MUL(t45 - t46, costab12);
-+ t85 = t63 + t64; t108 = MUL(t63 - t64, costab12); */
-+
-+/* t71 = t37 + t38; t91 = MUL(t37 - t38, costab12);
-+ t80 = t54 + t55; t102 = MUL(t54 - t55, costab12); */
-+ butterfly4 r5/*t75*/, r1/*t96*/, r7/*t85*/, r3/*t108*/, r4/*t71*/, r0/*t91*/, r6/*t80*/, r2/*t102*/, costab12, r10, r11, lr
-+
-+/* Store away the computed butterflies:
-+ sp[16-23] = t85, t80, t75, t71, t108, t102, t96, t91 */
-+ sub r10, sp, -16*4
-+ stm r10, r0-r7
-+
-+/* t12 = in[2] + in[29]; t28 = MUL(in[2] - in[29], costab5);
-+ t13 = in[13] + in[18]; t29 = MUL(in[13] - in[18], costab27); */
-+ butterfly2_in r4/*t12*/, r5/*t28*/, r6/*t13*/, r7/*t29*/, r12, 2, 29, 13, 18, costab5, costab27, r10, r11
-+
-+/* t47 = t28 + t29;
-+ t65 = MUL(t28 - t29, costab10);
-+ t39 = t12 + t13;
-+ t56 = MUL(t12 - t13, costab10); */
-+ butterfly2 r5/*t47*/, r7/*t65*/, r4/*t39*/, r6/*t56*/, costab10, r10, r11, lr
-+
-+/* t14 = in[5] + in[26]; t30 = MUL(in[5] - in[26], costab11);
-+ t15 = in[10] + in[21]; t31 = MUL(in[10] - in[21], costab21);*/
-+ butterfly2_in r0/*t14*/, r1/*t30*/, r2/*t15*/, r3/*t31*/, r12, 5, 26, 10, 21, costab11, costab21, r10, r11
-+
-+/* t48 = t30 + t31;
-+ t66 = MUL(t30 - t31, costab22);
-+ t40 = t14 + t15;
-+ t57 = MUL(t14 - t15, costab22);*/
-+ butterfly2 r1/*t48*/, r3/*t66*/, r0/*t40*/, r2/*t57*/, costab22, r10, r11, lr
-+
-+/* t76 = t47 + t48; t97 = MUL(t47 - t48, costab20);
-+ t86 = t65 + t66; t109 = MUL(t65 - t66, costab20);*/
-+
-+/* t72 = t39 + t40; t92 = MUL(t39 - t40, costab20);
-+ t81 = t56 + t57; t103 = MUL(t56 - t57, costab20);*/
-+ butterfly4 r5/*t76*/, r1/*t97*/, r7/*t86*/, r3/*t109*/,r4/*t72*/, r0/*t92*/, r6/*t81*/, r2/*t103*/, costab20, r10, r11, lr
-+
-+/* Store away the computed butterflies:
-+ sp[24-31] = t86, t81, t76, t72, t109, t103, t97, t92 */
-+ sub r10, sp, -24*4
-+ stm r10, r0-r7
-+
-+/* We now have the following on the stack:
-+
-+ sp[0-7] = t83, t78, t73, t69, t106, t100, t94, t89
-+ sp[8-15] = t84, t79, t74, t70, t107, t101, t95, t90
-+ sp[16-23] = t85, t80, t75, t71, t108, t102, t96, t91
-+ sp[24-31] = t86, t81, t76, t72, t109, t103, t97, t92 */
-+
-+/* Load {r0...r7} = { t72, t76, t71, t75, t70, t74, t69, t73 } */
-+ ld.d r6, sp[2*4]
-+ ld.d r4, sp[10*4]
-+ ld.d r2, sp[18*4]
-+ ld.d r0, sp[26*4]
-+
-+
-+/* t113 = t69 + t70;
-+ t141 = MUL(t69 - t70, costab8);
-+
-+ t115 = t73 + t74;
-+ t144 = MUL(t73 - t74, costab8); */
-+ butterfly2 r6/*t113*/, r4/*t141*/, r7/*t115*/, r5/*t144*/, costab8, r10, r11, lr
-+
-+/* t114 = t71 + t72;
-+ t142 = MUL(t71 - t72, costab24);
-+
-+ t116 = t75 + t76;
-+ t145 = MUL(t75 - t76, costab24); */
-+ butterfly2 r2/*t114*/, r0/*t142*/, r3/*t116*/, r1/*t145*/, costab24, r10, r11, lr
-+
-+
-+/*
-+ t191 = t113 + t114;
-+ t192 = MUL(t113 - t114, costab16)
-+
-+ t32 = t115 + t116;
-+ t177 = MUL(t115 - t116, costab16) ;
-+
-+ t143 = t141 + t142;
-+ t190 = MUL(t141 - t142, costab16) ;
-+
-+ t146 = t144 + t145;
-+ t184 = MUL(t144 - t145, costab16) ; */
-+ butterfly4 r6/*t191*/, r2/*t192*/, r7/*t32*/, r3/*t177*/, r4/*t143*/, r0/*190*/, r5/*t146*/, r1/*t184*/, costab16, r10, r11, lr
-+
-+/* Store away the computed butterflies:
-+ sp[2-3] = t32, t191
-+ sp[10-11] = t146, t143
-+ sp[18-19] = t177, t192
-+ sp[26-27] = t184, t190 */
-+ st.d sp[2*4] , r6
-+ st.d sp[10*4], r4
-+ st.d sp[18*4], r2
-+ st.d sp[26*4], r0
-+
-+/* Load {r0...r7} = { t81, t86, t80, t85, t79, t84, t78, t83 } */
-+ ld.d r6, sp[0*4]
-+ ld.d r4, sp[8*4]
-+ ld.d r2, sp[16*4]
-+ ld.d r0, sp[24*4]
-+
-+
-+/* t118 = t78 + t79;
-+ t148 = MUL(t78 - t79, costab8);
-+
-+ t121 = t83 + t84;
-+ t152 = MUL(t83 - t84, costab8); */
-+ butterfly2 r6/*t118*/, r4/*t148*/, r7/*t121*/, r5/*t152*/, costab8, r10, r11, lr
-+
-+/* t119 = t80 + t81;
-+ t149 = MUL(t80 - t81, costab24);
-+
-+ t122 = t85 + t86;
-+ t153 = MUL(t85 - t86, costab24); */
-+ butterfly2 r2/*t119*/, r0/*t149*/, r3/*t122*/, r1/*t153*/, costab24, r10, r11, lr
-+
-+
-+
-+/* t58 = t118 + t119;
-+ t178 = MUL(t118 - t119, costab16) ;
-+
-+ t67 = t121 + t122;
-+ t179 = MUL(t121 - t122, costab16) ;
-+
-+ t150 = t148 + t149;
-+ t185 = MUL(t148 - t149, costab16) ;
-+
-+ t154 = t152 + t153;
-+ t186 = MUL(t152 - t153, costab16) ; */
-+ butterfly4 r6/*t58*/, r2/*t178*/, r7/*t67*/, r3/*t179*/, r4/*t150*/, r0/*185*/, r5/*t154*/, r1/*t186*/, costab16, r10, r11, lr
-+
-+/* Store away the computed butterflies:
-+ sp[0-1] = t67, t58
-+ sp[8-9] = t154, t150
-+ sp[16-17] = t179, t178
-+ sp[24-25] = t186, t185 */
-+ st.d sp[0*4] , r6
-+ st.d sp[8*4], r4
-+ st.d sp[16*4], r2
-+ st.d sp[24*4], r0
-+
-+/* Load {r0...r7} = { t92, t97, t91, t96, t90, t95, t89, t94 } */
-+ ld.d r6, sp[6*4]
-+ ld.d r4, sp[14*4]
-+ ld.d r2, sp[22*4]
-+ ld.d r0, sp[30*4]
-+
-+
-+/* t125 = t89 + t90;
-+ t157 = MUL(t89 - t90, costab8);
-+
-+ t128 = t94 + t95;
-+ t161 = MUL(t94 - t95, costab8); */
-+ butterfly2 r6/*t125*/, r4/*t157*/, r7/*t128*/, r5/*t161*/, costab8, r10, r11, lr
-+
-+/* t126 = t91 + t92;
-+ t158 = MUL(t91 - t92, costab24);
-+
-+ t129 = t96 + t97;
-+ t162 = MUL(t96 - t97, costab24); */
-+ butterfly2 r2/*t126*/, r0/*t158*/, r3/*t129*/, r1/*t162*/, costab24, r10, r11, lr
-+
-+
-+/*
-+ t93 = t125 + t126;
-+ t180 = MUL(t125 - t126, costab16) ;
-+
-+ t98 = t128 + t129;
-+ t181 = MUL(t128 - t129, costab16) ;
-+
-+ t159 = t157 + t158;
-+ t187 = MUL(t157 - t158, costab16) ;
-+
-+ t163 = t161 + t162;
-+ t188 = MUL(t161 - t162, costab16) ; */
-+ butterfly4 r6/*t93*/, r2/*t180*/, r7/*t98*/, r3/*t181*/, r4/*t159*/, r0/*187*/, r5/*t163*/, r1/*t188*/, costab16, r10, r11, lr
-+
-+
-+/* Store away the computed butterflies:
-+ sp[6-7] = t98, t93
-+ sp[14-15] = t163, t159
-+ sp[22-23] = t181, t180
-+ sp[30-31] = t188, t187 */
-+ st.d sp[6*4] , r6
-+ st.d sp[14*4], r4
-+ st.d sp[22*4], r2
-+ st.d sp[30*4], r0
-+
-+/* Load {r0...r7} = { t103, t109, t102, t108, t101, t107, t100, t106 } */
-+ ld.d r6, sp[4*4]
-+ ld.d r4, sp[12*4]
-+ ld.d r2, sp[20*4]
-+ ld.d r0, sp[28*4]
-+
-+
-+
-+/* t132 = t100 + t101;
-+ t166 = MUL(t100 - t101, costab8);
-+
-+ t136 = t106 + t107;
-+ t171 = MUL(t106 - t107, costab8); */
-+ butterfly2 r6/*t132*/, r4/*t166*/, r7/*t136*/, r5/*t171*/, costab8, r10, r11, lr
-+
-+/* t133 = t102 + t103;
-+ t167 = MUL(t102 - t103, costab24);
-+
-+ t137 = t108 + t109;
-+ t172 = MUL(t108 - t109, costab24);*/
-+ butterfly2 r2/*t133*/, r0/*t167*/, r3/*t137*/, r1/*t172*/, costab24, r10, r11, lr
-+
-+
-+/* t104 = t132 + t133;
-+ t182 = MUL(t132 - t133, costab16) ;
-+
-+ t110 = t136 + t137;
-+ t183 = MUL(t136 - t137, costab16) ;
-+
-+ t168 = t166 + t167;
-+ t189 = MUL(t166 - t167, costab16) ;
-+
-+ t173 = t171 + t172;
-+ t208 = MUL(t171 - t172, costab16) ; */
-+ butterfly4 r6/*t104*/, r2/*t182*/, r7/*t110*/, r3/*t183*/, r4/*t168*/, r0/*189*/, r5/*t173*/, r1/*t208*/, costab16, r10, r11, lr
-+
-+/* Store away the computed butterflies:
-+ sp[4-5] = t110, t104
-+ sp[12-13] = t173, t168
-+ sp[20-21] = t183, t182
-+ sp[28-29] = t208, t189 */
-+ st.d sp[4*4] , r6
-+ st.d sp[12*4], r4
-+ st.d sp[20*4], r2
-+ st.d sp[28*4], r0
-+
-+/* Now we have the following stack
-+
-+ sp[0-7] = t67, t58 , t32, t191, t110, t104, t98, t93
-+ sp[8-15] = t154, t150, t146, t143, t173, t168, t163, t159
-+ sp[16-23] = t179, t178, t177, t192, t183, t182, t181, t180
-+ sp[24-31] = t186, t185, t184, t190, t208, t189, t188, t187
-+*/
-+
-+ /* Get slot, lo and hi from stack */
-+ lddsp lr, sp[32*4 + 4] /*slot*/
-+ lddsp r12, sp[32*4 + 8] /*lo*/
-+ lddsp r11, sp[32*4 + 12] /*hi*/
-+
-+ add r12, r12, lr << 2
-+ add r11, r11, lr << 2
-+
-+
-+/* t49 = -(t67 * 2) + t32;
-+ hi[14][slot] = SHIFT(t32);
-+ t87 = -(t110 * 2) + t67;
-+ t138 = -(t173 * 2) + t110;
-+ t203 = -(t208 * 2) + t173; */
-+
-+ lddsp r0/*t67*/, sp[0]
-+ lddsp r1/*t32*/, sp[2*4]
-+ lddsp r2/*t110*/, sp[4*4]
-+ lddsp r3/*t173*/, sp[12*4]
-+ lddsp r5/*t208*/, sp[28*4]
-+
-+ sub r4/*t49*/, r1, r0 << 1
-+ scale r1
-+ sub r0/*t87*/, r0, r2 << 1
-+ st.w r11[14*SLOTS*4], r1
-+ sub r2/*t138*/, r2, r3 << 1
-+ sub r1/*t203*/, r3, r5 << 1
-+
-+/* Live: r0 = t87, r1= t203, r2= t138, r4 = t49
-+ Free: r3, r5, r6, r7, r8, r9, r10, lr */
-+
-+/* t68 = (t98 * 2) + t49;
-+ hi[12][slot] = SHIFT(-t49);
-+ t130 = -(t163 * 2) + t98;
-+ t201 = -(t188 * 2) + t163;
-+ t200 = -(t186 * 2) + t154;
-+ t111 = (t154 * 2) + t87;
-+ t77 = -(-(t87 * 2) - t68);
-+ t88 = (t146 * 2) + t77;
-+ t199 = -(t184 * 2) + t146;
-+ hi[ 8][slot] = SHIFT(-t77);
-+ hi[10][slot] = SHIFT(t68);*/
-+ lddsp r3/*t98*/, sp[6*4]
-+ lddsp r5/*t163*/, sp[14*4]
-+ lddsp r6/*t188*/, sp[30*4]
-+ lddsp r10/*t186*/, sp[24*4]
-+
-+ add r7/*t68*/, r4, r3 << 1
-+ neg r4
-+ scale r4
-+ lddsp r9/*t154*/, sp[8*4]
-+ sub r3/*t130*/, r3, r5 << 1
-+ st.w r11[12*SLOTS*4], r4
-+ sub r8/*t201*/, r5, r6 << 1
-+ sub r4/*t200*/, r9, r10 << 1
-+ lddsp lr/*t146*/, sp[10*4]
-+ lddsp r6/*t184*/, sp[26*4]
-+ add r10/*t111*/, r0, r9 << 1
-+ add r5/*t77*/,r7, r0 << 1
-+ add r0/*t88*/, r5, lr << 1
-+ sub r6/*t199*/, lr, r6 << 1
-+ neg r5
-+ scale r5
-+ scale r7
-+ st.w r11[8*SLOTS*4], r5
-+ st.w r11[10*SLOTS*4], r7
-+
-+/* Live: r0 = t88, r1= t203, r2= t138, r3 = t130, r4 = t200,
-+ r6 = 199, r8 = t201, r10 = t111
-+ Free: r5, r7, r9, lr */
-+
-+
-+/*
-+ t123 = -(-(t138 * 2) - t111);
-+ t174 = (t183 * 2) + t138;
-+ t99 = -(t111 * 2) + t88;
-+ hi[ 6][slot] = SHIFT(t88); */
-+ lddsp r5/*t183*/, sp[20*4]
-+
-+ add r7/*t123*/, r10, r2 << 1
-+ sub r10/*t99*/, r0, r10 << 1
-+ scale r0
-+ add r2/*t174*/, r2, r5 << 1
-+ st.w r11[6*SLOTS*4], r0
-+
-+/* Live: r1 = t203, r2 = t174, r3 = t130, r4 = t200,
-+ r6 = t199, r7 = t123, r8 = t201, r10 = t99
-+ Free: r0, r5, r9, lr */
-+
-+/* t112 = -(t130 * 2) + t99;
-+ t164 = (t181 * 2) + t130;
-+ hi[ 4][slot] = SHIFT(-t99); */
-+ lddsp r0/*t181*/, sp[22*4]
-+
-+ sub r5/*t112*/, r10, r3 << 1
-+ neg r10
-+ scale r10
-+ add r3/*164*/, r3, r0 << 1
-+ st.w r11[4*SLOTS*4], r10
-+
-+/* Live: r1 = t203, r2 = t174, r3 = t164, r4 = t200,
-+ r5 = t112, r6 = t199, r7 = t123, r8 = t201
-+ Free: r0, r9, r10, lr */
-+
-+
-+/* t117 = -(-(t123 * 2) - t112);
-+ t139 = (t179 * 2) + t123;
-+ hi[ 2][slot] = SHIFT(t112); */
-+ lddsp r0/*t179*/, sp[16*4]
-+
-+ add r9/*t117*/, r5, r7 << 1
-+ scale r5
-+ add r7/*t139*/, r7, r0 << 1
-+ st.w r11[2*SLOTS*4], r5
-+
-+/* Live: r1 = t203, r2 = t174, r3 = t164, r4 = t200,
-+ r6 = t199, r7 = t139, r8 = t201, r9 = t117
-+ Free: r0, r5, r10, lr */
-+
-+/* t155 = -(t174 * 2) + t139;
-+ t204 = -(-(t203 * 2) - t174);
-+ t124 = (t177 * 2) + t117;
-+ hi[ 0][slot] = SHIFT(-t117);
-+ t131 = -(t139 * 2) + t124;
-+ lo[ 1][slot] = SHIFT(t124);*/
-+ lddsp r0/*t177*/, sp[18*4]
-+
-+ sub r5/*t155*/, r7, r2 << 1
-+ add r2/*t204*/, r2, r1 << 1
-+ add r0/*t124*/, r9, r0 << 1
-+ neg r9
-+ scale r9
-+ sub r7/*t131*/, r0, r7 << 1
-+ scale r0
-+ st.w r11[0*SLOTS*4], r9
-+ st.w r12[1*SLOTS*4], r0
-+
-+/* Live: r2 = t204, r3 = t164, r4 = t200,
-+ r5 = t155, r6 = t199, r7 = t131, r8 = t201
-+ Free: r0, r1, r9, r10, lr */
-+
-+/* t140 = (t164 * 2) + t131;
-+ lo[ 3][slot] = SHIFT(-t131);
-+ t202 = -(-(t201 * 2) - t164); */
-+ add r0/*t140*/, r7, r3 << 1
-+ neg r7
-+ scale r7
-+ add r3/*t202*/, r3, r8 << 1
-+ st.w r12[3*SLOTS*4], r7
-+
-+/* Live: r0 = t140, r2 = t204, r3 = t202, r4 = t200,
-+ r5 = t155, r6 = t199
-+ Free: r1, r7, r8, r9, r10, lr */
-+
-+
-+/* t147 = -(-(t155 * 2) - t140);
-+ lo[ 5][slot] = SHIFT(t140);
-+ t175 = -(t200 * 2) + t155;
-+ t156 = -(t199 * 2) + t147;
-+ lo[ 7][slot] = SHIFT(-t147); */
-+ add r1/*t147*/, r0, r5 << 1
-+ scale r0
-+ sub r5/*t175*/, r5, r4 << 1
-+ sub r4/*156*/, r1, r6 << 1
-+ neg r1
-+ scale r1
-+ st.w r12[5*SLOTS*4], r0
-+ st.w r12[7*SLOTS*4], r1
-+
-+/* Live: r2 = t204, r3 = t202,
-+ r4 = t156, r5 = t175
-+ Free: r0, r1, r6, r7, r8, r9, r10, lr */
-+
-+
-+/* t205 = -(-(t204 * 2) - t175);
-+ t165 = -(t175 * 2) + t156;
-+ lo[ 9][slot] = SHIFT(t156);
-+ t176 = -(t202 * 2) + t165;
-+ lo[11][slot] = SHIFT(-t165);
-+ t206 = -(-(t205 * 2) - t176);
-+ lo[15][slot] = SHIFT(-t206)
-+ lo[13][slot] = SHIFT(t176) */
-+ add r0/*t205*/, r5, r2 << 1
-+ sub r1/*t165*/, r4, r5 << 1
-+ scale r4
-+ sub r3/*t176*/, r1, r3 << 1
-+ st.w r12[9*SLOTS*4], r4
-+ neg r1
-+ scale r1
-+ add r6/*t206*/, r3, r0 << 1
-+ neg r6
-+ scale r6
-+ scale r3
-+ st.w r12[11*SLOTS*4], r1
-+ st.w r12[15*SLOTS*4], r6
-+ st.w r12[13*SLOTS*4], r3
-+
-+/* t193 = -((t190 * 2) - t143)
-+ hi[ 7][slot] = SHIFT(t143);
-+ lo[ 8][slot] = SHIFT(-t193);
-+ t82 = -(t104 * 2) + t58;
-+ hi[13][slot] = SHIFT(t58);
-+ t134 = -(t168 * 2) + t104;
-+ t196 = -(t189 * 2) + t168; */
-+
-+ lddsp r0/*t190*/, sp[27*4]
-+ lddsp r1/*t143*/, sp[11*4]
-+ lddsp r2/*t104*/, sp[5*4]
-+ lddsp r3/*t58*/, sp[1*4]
-+ lddsp r4/*t168*/, sp[13*4]
-+ lddsp r5/*t189*/, sp[29*4]
-+ sub r0/*t193*/, r1, r0 << 1
-+ neg r0
-+ scale r1
-+ scale r0
-+ st.w r11[7*SLOTS*4], r1
-+ st.w r12[8*SLOTS*4], r0
-+ sub r0/*t82*/, r3, r2 << 1
-+ scale r3
-+ sub r2/*t134*/, r2, r4 << 1
-+ sub r4/*t196*/, r4, r5 << 1
-+ st.w r11[13*SLOTS*4], r3
-+
-+/* Live: r0 = t82, r2 = t134,
-+ r4 = t196
-+ Free: r1, r3, r5, r6, r7, r8, r9, r10, lr */
-+
-+
-+
-+/*
-+
-+ t207 = -(t185 * 2) + t150;
-+ t105 = (t150 * 2) + t82;
-+ hi[ 9][slot] = SHIFT(-t82);
-+ t120 = -(-(t134 * 2) - t105);
-+ hi[ 5][slot] = SHIFT(t105);
-+ t169 = (t182 * 2) + t134;
-+
-+ t135 = (t178 * 2) + t120;
-+ hi[ 1][slot] = SHIFT(-t120);
-+ t197 = -(-(t196 * 2) - t169);
-+ t151 = -(t169 * 2) + t135;
-+ lo[ 2][slot] = SHIFT(t135); */
-+ lddsp r1/*t185*/, sp[25*4]
-+ lddsp r3/*t150*/, sp[9*4]
-+ lddsp r5/*t182*/, sp[21*4]
-+ lddsp r8/*t178*/, sp[17*4]
-+
-+ sub r6/*t207*/, r3, r1 << 1
-+ add r3/*t105*/, r0, r3 << 1
-+ neg r0
-+ scale r0
-+ add r7/*t120*/, r3, r2 << 1
-+ scale r3
-+ st.w r11[9*SLOTS*4], r0
-+ st.w r11[5*SLOTS*4], r3
-+ add r2/*t169*/, r2, r5 << 1
-+ add r8/*t135*/, r7, r8 << 1
-+ neg r7
-+ scale r7
-+ add r4/*t197*/, r2, r4 << 1
-+ sub r2/*t151*/, r8, r2 << 1
-+ scale r8
-+ st.w r11[1*SLOTS*4], r7
-+ st.w r12[2*SLOTS*4], r8
-+
-+/* Live: r2 = t151, r4 = t197, r6 = t207
-+
-+ Free: r0, r1, r3, r5, r7, r8, r9, r10, lr */
-+
-+
-+
-+/* t170 = -(t207 * 2) + t151;
-+ lo[ 6][slot] = SHIFT(-t151);
-+
-+ t198 = -(-(t197 * 2) - t170);
-+ lo[10][slot] = SHIFT(t170);
-+ lo[14][slot] = SHIFT(-t198);
-+
-+ t127 = -(t159 * 2) + t93;
-+ hi[11][slot] = SHIFT(t93);
-+ t194 = -(t187 * 2) + t159; */
-+ lddsp r0/*t159*/, sp[15*4]
-+ lddsp r1/*t93*/, sp[7*4]
-+ lddsp r3/*t187*/, sp[31*4]
-+ sub r5/*t170*/, r2, r6 << 1
-+ neg r2
-+ scale r2
-+ add r4/*t198*/,r5, r4 << 1
-+ neg r4
-+ scale r5
-+ scale r4
-+ st.w r12[6*SLOTS*4], r2
-+ st.w r12[10*SLOTS*4], r5
-+ st.w r12[14*SLOTS*4], r4
-+ sub r7/*t127*/, r1, r0 << 1
-+ scale r1
-+ sub r0/*t194*/, r0, r3 << 1
-+ st.w r11[11*SLOTS*4], r1
-+
-+
-+/* Live: r0 = t194, r7 = t127
-+ Free: r1, r2, r3, r4, r6, r5, r8, r9, r10, lr */
-+
-+/* t160 = (t180 * 2) + t127;
-+ hi[ 3][slot] = SHIFT(-t127);
-+ t195 = -(-(t194 * 2) - t160);
-+ lo[ 4][slot] = SHIFT(t160);
-+ lo[12][slot] = SHIFT(-t195);
-+
-+ hi[15][slot] = SHIFT(t191);
-+ lo[ 0][slot] = SHIFT(t192); */
-+ lddsp r1/*t180*/, sp[23*4]
-+ lddsp r2/*t191*/, sp[3*4]
-+ lddsp r3/*t192*/, sp[19*4]
-+ add r4/*t160*/, r7, r1 << 1
-+ neg r7
-+ scale r7
-+ add r6/*t195*/, r4, r0 << 1
-+ scale r4
-+ neg r6
-+ scale r6
-+ st.w r11[3*SLOTS*4], r7
-+ st.w r12[4*SLOTS*4], r4
-+ st.w r12[12*SLOTS*4], r6
-+ scale r2
-+ scale r3
-+ st.w r11[15*SLOTS*4], r2
-+ st.w r12[0*SLOTS*4], r3
-+
-+ sub sp, -32*4
-+ ldm sp++,r0-r7, r9-r11, pc
-diff --git a/fixed.h b/fixed.h
-index 4b58abf..0a1350a 100644
---- a/fixed.h
-+++ b/fixed.h
-@@ -237,6 +237,46 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
- # define MAD_F_SCALEBITS MAD_F_FRACBITS
- # endif
-
-+/* --- AVR32 ----------------------------------------------------------------- */
-+
-+# elif defined(FPM_AVR32)
-+
-+typedef signed short mad_coeff_t;
-+
-+struct DWstruct {int high, low;};
-+
-+typedef union {
-+ struct DWstruct s;
-+ long long ll;
-+} DWunion;
-+
-+# define MAD_F_MLX(hi, lo, x, y) \
-+ { register DWunion __res; \
-+ __res.ll = (long long)x * (long long)y; \
-+ /* asm ("muls.d\t%0, %1, %2" : "=r" (__res.ll) : "r" (x), "r" (y));*/ \
-+ hi = __res.s.high; \
-+ lo = __res.s.low; }
-+
-+# define MAD_F_MLA(hi, lo, x, y) \
-+ { register DWunion __res; \
-+ __res.s.high = hi; \
-+ __res.s.low = lo; \
-+ __res.ll += (long long)x * (long long)y; \
-+/* asm ("macs.d\t%0, %1, %2" : "+r" (__res.ll) : "r" (x), "r" (y));*/ \
-+ hi = __res.s.high; \
-+ lo = __res.s.low; }
-+
-+
-+# define MAD_F_MLN(hi, lo) \
-+ asm ("neg %0\n" \
-+ "acr %1\n" \
-+ "neg %1" \
-+ : "+r" (lo), "+r" (hi) \
-+ :: "cc")
-+
-+
-+# define MAD_F_SCALEBITS MAD_F_FRACBITS
-+
- /* --- ARM ----------------------------------------------------------------- */
-
- # elif defined(FPM_ARM)
-@@ -433,6 +473,8 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
- *
- * Pre-rounding is required to stay within the limits of compliance.
- */
-+typedef signed int mad_coeff_t;
-+
- # if defined(OPT_SPEED)
- # define mad_f_mul(x, y) (((x) >> 12) * ((y) >> 16))
- # else
-diff --git a/imdct_avr32.S b/imdct_avr32.S
-new file mode 100644
-index 0000000..d0ee6b4
---- /dev/null
-+++ b/imdct_avr32.S
-@@ -0,0 +1,789 @@
-+/*
-+ Optimized 36-point Inverse Modified Cosine Transform (IMDCT)
-+ Copyright 2003-2006 Atmel Corporation.
-+
-+ Written by Ronny Pedersen, Atmel Norway
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2 of the License, or
-+ (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#define MAD_F(x) ((x + (1 << 13)) >> 14)
-+
-+ .public imdct36_avr32
-+
-+/*
-+ void imdct36(mad_fixed_t const x[18], mad_fixed_t y[36])
-+ {
-+ mad_fixed_t tmp[18];
-+ int i;
-+*/
-+/* DCT-IV */
-+imdct36_avr32:
-+ pushm r0-r7,r11,lr
-+ sub sp, 4*18
-+/*
-+ {
-+ mad_fixed_t tmp2[18];
-+ int i;
-+
-+ /* scale[i] = 2 * cos(PI * (2 * i + 1) / (4 * 18)) */
-+/*
-+ static mad_fixed_t const scale[18] = {
-+ MAD_F(0x1ff833fa), MAD_F(0x1fb9ea93), MAD_F(0x1f3dd120),
-+ MAD_F(0x1e84d969), MAD_F(0x1d906bcf), MAD_F(0x1c62648b),
-+ MAD_F(0x1afd100f), MAD_F(0x1963268b), MAD_F(0x1797c6a4),
-+ MAD_F(0x159e6f5b), MAD_F(0x137af940), MAD_F(0x11318ef3),
-+ MAD_F(0x0ec6a507), MAD_F(0x0c3ef153), MAD_F(0x099f61c5),
-+ MAD_F(0x06ed12c5), MAD_F(0x042d4544), MAD_F(0x0165547c)
-+ };
-+*/
-+
-+ /* scaling */
-+
-+/*
-+ for (i = 0; i < 18; i += 3) {
-+ tmp2[i + 0] = mad_f_mul(x[i + 0], scale[i + 0]);
-+ tmp2[i + 1] = mad_f_mul(x[i + 1], scale[i + 1]);
-+ tmp2[i + 2] = mad_f_mul(x[i + 2], scale[i + 2]);
-+ }
-+*/
-+ /* even input butterfly */
-+
-+/*
-+ for (i = 0; i < 9; i += 3) {
-+ tmp3[i + 0] = tmp2[i + 0] + tmp2[18 - (i + 0) - 1];
-+ tmp3[i + 1] = tmp2[i + 1] + tmp2[18 - (i + 1) - 1];
-+ tmp3[i + 2] = tmp2[i + 2] + tmp2[18 - (i + 2) - 1];
-+ }
-+ for (i = 0; i < 9; i += 3) {
-+ tmp4[i + 0] = tmp2[i + 0] - tmp2[18 - (i + 0) - 1];
-+ tmp4[i + 1] = tmp2[i + 1] - tmp2[18 - (i + 1) - 1];
-+ tmp4[i + 2] = tmp2[i + 2] - tmp2[18 - (i + 2) - 1];
-+ }
-+*/
-+
-+ ld.d r8, r12[0] /*r8 = x[1], r9 = x[0]*/
-+ ld.d r0, pc[scale_dctIV - .] /*r0 = {scale[2], scale[3]}, r1 = { scale[0], scale[1] }*/
-+ ld.d r2, r12[2*4] /*r2 = x[3], r3 = x[2]*/
-+ ld.d r4, pc[scale_dctIV - . + 14*2] /*r4 = {scale[16], scale[17]}, r5 = { scale[14], scale[15] }*/
-+ mulsatrndwh.w r9/*tmp2[0]*/, r9, r1:t /*tmp2[0] = mad_f_mul(x[0], scale[0]) */
-+ ld.d r6, r12[16*4] /*r6 = x[17], r7 = x[16]*/
-+ mulsatrndwh.w r8/*tmp2[1]*/, r8, r1:b /*tmp2[1] = mad_f_mul(x[1], scale[1]) */
-+ mulsatrndwh.w r3/*tmp2[2]*/, r3, r0:t /*tmp2[2] = mad_f_mul(x[2], scale[2]) */
-+ mulsatrndwh.w r2/*tmp2[3]*/, r2, r0:b /*tmp2[3] = mad_f_mul(x[3], scale[3]) */
-+ ld.d r0, r12[14*4] /*r0 = x[15], r1 = x[14]*/
-+ mulsatrndwh.w r7/*tmp2[16]*/, r7, r4:t /*tmp2[16] = mad_f_mul(x[16], scale[16]) */
-+ mulsatrndwh.w r6/*tmp2[17]*/, r6, r4:b /*tmp2[17] = mad_f_mul(x[17], scale[17]) */
-+ mulsatrndwh.w r1/*tmp2[14]*/, r1, r5:t /*tmp2[14] = mad_f_mul(x[14], scale[14]) */
-+ mulsatrndwh.w r0/*tmp2[15]*/, r0, r5:b /*tmp2[15] = mad_f_mul(x[15], scale[15]) */
-+
-+ ld.d r4, r12[4*4] /*r4 = x[5], r5 = x[4]*/
-+
-+ sub lr/*tmp4[0]*/, r9, r6
-+ add r6/*tmp3[0]*/, r9, r6
-+ sub r10/*tmp4[1]*/, r8, r7
-+ add r7/*tmp3[1]*/, r8, r7
-+ sub r9/*tmp4[2]*/, r3, r0
-+ add r0/*tmp3[2]*/, r3, r0
-+ sub r8/*tmp4[3]*/, r2, r1
-+ add r1/*tmp3[3]*/, r2, r1
-+
-+ ld.d r2, pc[scale_dctIV - . + 4*2] /*r2 = {scale[6], scale[7]}, r3 = { scale[4], scale[5] }*/
-+
-+ stm --sp, r8-r10, lr /*sp[0] = tmp4[0],sp[1] = tmp4[1],
-+ sp[2] = tmp4[2],sp[3] = tmp4[3] */
-+
-+ /* Registers used: r0 = tmp3[2], r1 = tmp3[3], r6 = tmp3[0], r7 = tmp3[1], r12 = x
-+ Free registers: r2-r5, r8-r11, lr
-+ */
-+ ld.d r8, r12[6*4] /*r8 = x[7], r9 = x[6]*/
-+ ld.d r10, pc[scale_dctIV - . + 10*2] /*r10 = {scale[12], scale[13]}, r11 = { scale[10], scale[11] }*/
-+ mulsatrndwh.w r5/*tmp2[4]*/, r5, r3:t /*tmp2[4] = mad_f_mul(x[4], scale[4]) */
-+ mulsatrndwh.w r4/*tmp2[5]*/, r4, r3:b /*tmp2[5] = mad_f_mul(x[5], scale[5]) */
-+ mulsatrndwh.w r9/*tmp2[6]*/, r9, r2:t /*tmp2[6] = mad_f_mul(x[6], scale[6]) */
-+ mulsatrndwh.w r8/*tmp2[7]*/, r8, r2:b /*tmp2[7] = mad_f_mul(x[7], scale[7]) */
-+
-+ ld.d r2, r12[12*4] /*r2 = x[13], r3 = x[12]*/
-+ ld.w lr, r12[11*4] /*lr = x[11] */
-+ mulsatrndwh.w r3/*tmp2[12]*/, r3, r10:t /*tmp2[12] = mad_f_mul(x[12], scale[12]) */
-+ mulsatrndwh.w r2/*tmp2[13]*/, r2, r10:b /*tmp2[13] = mad_f_mul(x[13], scale[13]) */
-+ ld.w r10, r12[10*4] /*r10 = x[10] */
-+ mulsatrndwh.w lr/*tmp2[11]*/, lr, r11:b /*tmp2[11] = mad_f_mul(x[11], scale[11]) */
-+ mulsatrndwh.w r10/*tmp2[10]*/, r10, r11:t /*tmp2[10] = mad_f_mul(x[10], scale[10]) */
-+
-+ sub r11/*tmp4[4]*/, r5, r2
-+ add r2/*tmp3[4]*/, r5, r2
-+ sub r5/*tmp4[5]*/, r4, r3
-+ add r3/*tmp3[5]*/, r4, r3
-+ sub r4/*tmp4[6]*/, r9, lr
-+ add lr/*tmp3[6]*/, r9, lr
-+ sub r9/*tmp4[7]*/, r8, r10
-+ add r10/*tmp3[7]*/, r8, r10
-+ lddpc r8, scale_dctIV + 8*2 /*r8 = {scale[8], scale[9]} */
-+
-+ stm --sp, r4, r5, r9, r11 /*sp[0] = tmp4[4],sp[1] = tmp4[7],
-+ sp[2] = tmp4[5],sp[3] = tmp4[6] */
-+ ld.d r4, r12[8*4] /*r4 = x[9], r5 = x[8]*/
-+ mulsatrndwh.w r5/*tmp2[8]*/, r5, r8:t /*tmp2[8] = mad_f_mul(x[8], scale[8]) */
-+ mulsatrndwh.w r4/*tmp2[9]*/, r4, r8:b /*tmp2[9] = mad_f_mul(x[9], scale[9]) */
-+ sub r9/*tmp4[8]*/, r5, r4
-+ add r5/*tmp3[8]*/, r5, r4
-+
-+ st.w --sp, r9 /* sp[0] = tmp4[8] */
-+
-+ /* Registers used:
-+
-+ r0=tmp3[2], r1=tmp3[3], r2=tmp3[4], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+ r7 = tmp3[1], r10=tmp3[7], lr=tmp3[6]
-+ Free registers:
-+ r4, r8, r9, r11, r12
-+ */
-+
-+
-+ /* SDCT-II */
-+/*
-+
-+ {
-+ mad_fixed_t tmp3[9];
-+ int i;
-+*/
-+ /* scale[i] = 2 * cos(PI * (2 * i + 1) / (2 * 18)) */
-+/*
-+ static mad_fixed_t const scale[9] = {
-+ MAD_F(0x1fe0d3b4), MAD_F(0x1ee8dd47), MAD_F(0x1d007930),
-+ MAD_F(0x1a367e59), MAD_F(0x16a09e66), MAD_F(0x125abcf8),
-+ MAD_F(0x0d8616bc), MAD_F(0x08483ee1), MAD_F(0x02c9fad7)
-+ };
-+*/
-+ /* divide the 18-point SDCT-II into two 9-point SDCT-IIs */
-+
-+
-+ /* fastdct */
-+
-+/*
-+ {
-+ mad_fixed_t a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12;
-+ mad_fixed_t a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25;
-+ mad_fixed_t m0, m1, m2, m3, m4, m5, m6, m7;
-+*/
-+// enum {
-+// c0 = MAD_F(0x1f838b8d), /* 2 * cos( 1 * PI / 18) */
-+// c1 = MAD_F(0x1bb67ae8), /* 2 * cos( 3 * PI / 18) */
-+// c2 = MAD_F(0x18836fa3), /* 2 * cos( 4 * PI / 18) */
-+// c3 = MAD_F(0x1491b752), /* 2 * cos( 5 * PI / 18) */
-+// c4 = MAD_F(0x0af1d43a), /* 2 * cos( 7 * PI / 18) */
-+// c5 = MAD_F(0x058e86a0), /* 2 * cos( 8 * PI / 18) */
-+// c6 = -MAD_F(0x1e11f642) /* 2 * cos(16 * PI / 18) */
-+// };
-+
-+/*
-+ a2 = tmp3[6] + tmp3[2];
-+ a6 = tmp3[8] + tmp3[0];
-+ a11 = a2 - a6;
-+ m5 = mad_f_mul(a11, -c6) ;
-+ a4 = tmp3[1] + tmp3[7];
-+
-+ a18 = tmp3[4] + a4;
-+ a19 = -2 * tmp3[4] + a4;
-+
-+ a0 = tmp3[3] + tmp3[5];
-+
-+*/
-+ add r11/*a4*/, r7, r10
-+ add r12/*a18*/, r2, r11
-+ sub r11/*a19*/, r11, r2<<1
-+
-+ add r4/*a2*/, lr, r0
-+ add r8/*a6*/, r5, r6
-+ sub r9/*a11*/, r4, r8
-+
-+ st.d --sp, r0 /* sp[0] = tmp3[3], sp1[1] = tmp3[2]*/
-+
-+ mov r2, MAD_F(0x1e11f642)
-+ mulsatrndwh.w r9/*m5*/, r9, r2:b
-+
-+ add r2/*a0*/, r1, r3
-+
-+ /* Registers used:
-+
-+ r2=a0, r3=tmp3[5], r4=a2, r5=tmp3[8], r6 = tmp3[0],
-+ r7 = tmp3[1], r8=a6, r10=tmp3[7], r9=m5, r11=a19, r12=a18,lr=tmp3[6]
-+ Free registers:
-+ r0, r1
-+ */
-+
-+/*
-+ a8 = a0 + a2;
-+ a12 = a8 + a6;
-+ a10 = a0 - a6;
-+ a9 = a0 - a2;
-+ m7 = mad_f_mul(a9, -c2) ;
-+ m6 = mad_f_mul(a10, -c5) ;
-+*/
-+
-+ add r0/*a8*/, r2, r4
-+ add r0/*a12*/, r8
-+ rsub r8/*a10*/, r2
-+ sub r2/*a9*/, r4
-+ mov r1, -MAD_F(0x18836fa3)
-+ mulsatrndwh.w r2/*m7*/, r2, r1:b
-+ mov r1, -MAD_F(0x058e86a0)
-+ mulsatrndwh.w r8/*m6*/, r8, r1:b
-+
-+ /* Registers used:
-+
-+ r0=a12, r2=m7, r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+ r7 = tmp3[1], r8=m6, r10=tmp3[7], r9=m5, r11=a19, r12=a18,lr=tmp3[6]
-+ Free registers:
-+ r1, r4
-+ */
-+
-+
-+/*
-+ a21 = -a19 - (m5 << 1);
-+ tmp[ 8] = a21 - (m6 << 1);
-+
-+ a20 = a19 - (m5 << 1);
-+ tmp[ 4] = (m7 << 1) + a20;
-+ a22 = -a19 + (m6 << 1);
-+ tmp[16] = a22 + (m7 << 1);
-+ tmp[ 0] = a18 + a12;
-+ tmp[12] = a12 - 2 * a18;
-+*/
-+ add r1/*a21*/, r11, r9 << 1
-+ neg r1
-+ sub r1/*tmp[8]*/, r1, r8 << 1
-+ stdsp sp[4*11/*tmp3[..] on the stack*/ + 8*4], r1
-+ sub r4/*a20*/, r11, r9 << 1
-+ add r4/*tmp[4]*/, r4, r2 << 1
-+ stdsp sp[4*11/*tmp3[..] on the stack*/ + 4*4], r4
-+ neg r11
-+ add r1/*a22*/, r11, r8 << 1
-+ add r1/*tmp[16]*/, r1, r2 << 1
-+ stdsp sp[4*11/*tmp3[..] on the stack*/ + 16*4], r1
-+ add r4, r12, r0
-+ sub r1, r0, r12 << 1
-+ stdsp sp[4*11/*tmp3[..] on the stack*/ + 0*4], r4
-+ stdsp sp[4*11/*tmp3[..] on the stack*/ + 12*4], r1
-+
-+ ld.d r0, sp++
-+
-+ /* Registers used:
-+
-+ r0 = tmp3[2], r1 = tmp3[3], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+ r7 = tmp3[1], r10=tmp3[7], r11=a19, lr=tmp3[6]
-+ Free registers:
-+ r2,r4,r8,r9,r12
-+ */
-+
-+/*
-+ a5 = tmp3[1] - tmp3[7];
-+ a7 = tmp3[8] - tmp3[0];
-+ a3 = tmp3[6] - tmp3[2];
-+ a1 = tmp3[3] - tmp3[5];
-+ a13 = a1 - a3;
-+ a14 = a13 + a7;
-+ m3 = mad_f_mul(a14, -c1) ;
-+ m4 = mad_f_mul(a5, -c1) ;
-+ tmp[ 6] = m3 << 1;
-+*/
-+ sub r7/*a5*/, r10
-+ sub r2/*a7*/, r5, r6
-+ sub r4/*a3*/, lr, r0
-+ sub r8/*a1*/, r1, r3
-+ sub r9/*a13*/, r8, r4
-+ add r12/*a14*/, r9, r2
-+ mov r0, -MAD_F(0x1bb67ae8)
-+ mulsatrndwh.w r12/*m3*/, r12, r0:b
-+ mulsatrndwh.w r7/*m4*/, r7, r0:b
-+ lsl r12, 1
-+ stdsp sp[4*9/*tmp3[..] on the stack*/ + 6*4], r12
-+
-+ /* Registers used:
-+ r2 = a7, r4 = a3, r7 = m4, r8 = a1, r12 = m3
-+
-+ Free registers:
-+ r0, r1, r3, r5, r6, r10, r9, r11, lr
-+ */
-+
-+
-+/*
-+ a15 = a3 + a7;
-+ m2 = mad_f_mul(a15, -c4) ;
-+ a17 = a1 + a3;
-+ m0 = mad_f_mul(a17, -c3) ;
-+ a23 = (m4 << 1) + (m2 << 1);
-+ tmp[14] = a23 + (m0 << 1); */
-+ add r0/*a15*/, r4, r2
-+ mov r1, -MAD_F(0x0af1d43a)
-+ mulsatrndwh.w r0/*m2*/, r0, r1:b
-+ mov r3, -MAD_F(0x1491b752)
-+ add r5/*a17*/, r8, r4
-+ mulsatrndwh.w r5/*m0*/, r5, r3:b
-+ lsl r7, 1
-+ add r6/*a23*/, r7, r0 << 1
-+ add r6/*tmp[14]*/, r6, r5 << 1
-+ stdsp sp[4*9/*tmp3[..] on the stack*/ + 14*4], r6
-+
-+ /* Registers used:
-+ r0 = m2, r2 = a7, r5 = m0, r7 = m4, r8 = a1
-+
-+ Free registers:
-+ r1, r3, r4, r6, r10, r9, r11, lr
-+ */
-+
-+/*
-+ a16 = a1 - a7;
-+ m1 = mad_f_mul(a16, -c0) ;
-+ a24 = (m4 << 1) - (m2 << 1);
-+ tmp[10] = a24 - (m1 << 1);
-+
-+ a25 = (m4 << 1) + (m1 << 1);
-+ tmp[ 2] = (m0 << 1) - a25;
-+*/
-+ sub r3/*a16*/, r8, r2
-+ mov r4, -MAD_F(0x1f838b8d)
-+ mulsatrndwh.w r3/*m1*/, r3, r4:b
-+ sub r1/*a24*/, r7, r0 << 1
-+ sub r1/*tmp[10]*/, r1, r3 << 1
-+ stdsp sp[4*9/*tmp3[..] on the stack*/ + 10*4], r1
-+ add r7/*a25*/, r7, r3 << 1
-+ sub r7, r7, r5 << 1
-+ neg r7
-+ stdsp sp[4*9/*tmp3[..] on the stack*/ + 2*4], r7
-+
-+
-+
-+
-+ /* output to every other slot for convenience */
-+
-+ /*} */
-+ /* End fastdct */
-+
-+ /* odd input butterfly and scaling */
-+
-+
-+ /* On the stack:
-+ sp[0] = tmp4[8], sp[1] = tmp4[4],sp[2] = tmp4[7], sp[3] = tmp4[5],sp[4] = tmp4[6]
-+ sp[5] = tmp4[0], sp[6] = tmp4[1],sp[7] = tmp4[2],sp[8] = tmp4[3]
-+ */
-+
-+ /*
-+ tmp3[0] = mad_f_mul(tmp4[0], scale[0]);
-+ tmp3[1] = mad_f_mul(tmp4[1], scale[1]) << 1;
-+ tmp3[2] = mad_f_mul(tmp4[2], scale[2]);
-+ tmp3[3] = mad_f_mul(tmp4[3], scale[3]) << 1;
-+ tmp3[4] = mad_f_mul(tmp4[4], scale[4]);
-+ tmp3[5] = mad_f_mul(tmp4[5], scale[5]);
-+ tmp3[6] = mad_f_mul(tmp4[6], scale[6]) << 1;
-+ tmp3[7] = mad_f_mul(tmp4[7], scale[7]);
-+ tmp3[8] = mad_f_mul(tmp4[8], scale[8]) << 1;
-+ */
-+ /* Registers used:
-+ r1 = tmp4[3], r2 = tmp4[2], r3 = tmp4[1], r4 = tmp4[0], r7 = tmp4[6]
-+ r10 = tmp4[5], r11 = tmp4[7], r12 = tmp4[4], lr = tmp4[8]
-+
-+ Free registers:
-+ r0, r5, r6, r8, r9
-+ */
-+ ld.d r8, pc[ scale_sdctII - . + 4*2] /* r8 = { scale[6], scale[7] }, r9 = { scale[4], scale[5]} */
-+ ldm sp++, r1, r2, r3, r4, r7, r10, r11, r12, lr
-+ mov r5, MAD_F(0x02c9fad7) /* r3 = scale[8] */
-+ mulsatrndwh.w r5/*tmp3[8]*/, lr, r5:b
-+ mulsatrndwh.w lr/*tmp3[6]*/, r7, r8:t
-+ ld.d r6, pc[ scale_sdctII - . + 0*2] /* r6 = { scale[2], scale[3] }, r7 = { scale[0], scale[1]} */
-+ lsl lr, 1
-+ lsl r5, 1
-+ mulsatrndwh.w r0/*tmp3[2]*/, r2, r6:t
-+ mulsatrndwh.w r1/*tmp3[3]*/, r1, r6:b
-+ mulsatrndwh.w r6/*tmp3[0]*/, r4, r7:t
-+ mulsatrndwh.w r7/*tmp3[1]*/, r3, r7:b
-+ mulsatrndwh.w r3/*tmp3[5]*/, r10, r9:b
-+ mulsatrndwh.w r2/*tmp3[4]*/, r12, r9:t
-+ mulsatrndwh.w r9/*tmp3[7]*/, r11, r8:b
-+ lsl r1, 1
-+ lsl r7, 1
-+
-+
-+ /* fastdct */
-+
-+/*
-+ {
-+ mad_fixed_t a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12;
-+ mad_fixed_t a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25;
-+ mad_fixed_t m0, m1, m2, m3, m4, m5, m6, m7;
-+*/
-+// enum {
-+// c0 = MAD_F(0x1f838b8d), /* 2 * cos( 1 * PI / 18) */
-+// c1 = MAD_F(0x1bb67ae8), /* 2 * cos( 3 * PI / 18) */
-+// c2 = MAD_F(0x18836fa3), /* 2 * cos( 4 * PI / 18) */
-+// c3 = MAD_F(0x1491b752), /* 2 * cos( 5 * PI / 18) */
-+// c4 = MAD_F(0x0af1d43a), /* 2 * cos( 7 * PI / 18) */
-+// c5 = MAD_F(0x058e86a0), /* 2 * cos( 8 * PI / 18) */
-+// c6 = -MAD_F(0x1e11f642) /* 2 * cos(16 * PI / 18) */
-+// };
-+
-+ /* Registers used:
-+
-+ r0=tmp3[2], r1=tmp3[3], r2=tmp3[4], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+ r7 = tmp3[1], r9=tmp3[7], lr=tmp3[6]
-+ Free registers:
-+ r4, r8, r10, r11, r12
-+ */
-+
-+/*
-+ a2 = tmp3[6] + (tmp3[2] << 1);
-+ a6 = tmp3[8] + (tmp3[0] << 1);
-+ a11 = a2 - a6;
-+ m5 = mad_f_mul(a11, c6) ;
-+ a4 = tmp3[1] + (tmp3[7] << 1);
-+
-+ a18 = (tmp3[4] << 1) + a4;
-+ a19 = -2 * (tmp3[4] << 1) + a4;
-+
-+ a0 = tmp3[3] + (tmp3[5] << 1);
-+
-+*/
-+ add r11/*a4*/, r7, r9 << 1
-+ add r12/*a18*/, r11, r2 << 1
-+ sub r11/*a19*/, r11, r2 << 2
-+
-+ add r4/*a2*/, lr, r0 << 1
-+ add r8/*a6*/, r5, r6 << 1
-+ sub r10/*a11*/, r4, r8
-+
-+ st.d --sp, r0 /* sp[0] = tmp3[3], sp1[1] = tmp3[2]*/
-+
-+ mov r2, -MAD_F(0x1e11f642)
-+ mulsatrndwh.w r10/*m5*/, r10, r2:b
-+
-+ add r2/*a0*/, r1, r3 << 1
-+
-+ /* Registers used:
-+
-+ r2=a0, r3=tmp3[5], r4=a2, r5=tmp3[8], r6 = tmp3[0],
-+ r7 = tmp3[1], r8=a6, r9=tmp3[7], r10=m5, r11=a19, r12=a18,lr=tmp3[6]
-+ Free registers:
-+ r0, r1
-+ */
-+
-+/*
-+ a8 = a0 + a2;
-+ a12 = a8 + a6;
-+ a10 = a0 - a6;
-+ a9 = a0 - a2;
-+ m7 = mad_f_mul(a9, -c2) ;
-+ m6 = mad_f_mul(a10, -c5) ;
-+*/
-+
-+ add r0/*a8*/, r2, r4
-+ add r0/*a12*/, r8
-+ rsub r8/*a10*/, r2
-+ sub r2/*a9*/, r4
-+ mov r1, -MAD_F(0x18836fa3)
-+ mulsatrndwh.w r2/*m7*/, r2, r1:b
-+ mov r1, -MAD_F(0x058e86a0)
-+ mulsatrndwh.w r8/*m6*/, r8, r1:b
-+
-+ /* Registers used:
-+
-+ r0=a12, r2=m7, r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+ r7 = tmp3[1], r8=m6, r9=tmp3[7], r10=m5, r11=a19, r12=a18,lr=tmp3[6]
-+ Free registers:
-+ r1, r4
-+ */
-+
-+
-+/*
-+ a21 = -a19 + (m5 << 1);
-+ tmp[ 9] = a21 - (m6 << 1);
-+
-+ a20 = -(-a19 - (m5 << 1));
-+ tmp[ 5] = (m7 << 1) + a20;
-+ a22 = -a19 + (m6 << 1);
-+ tmp[17] = a22 + (m7 << 1);
-+ tmp[ 1] = a18 + a12;
-+ tmp[13] = a12 - 2 * a18;
-+*/
-+ sub r1/*a21*/, r11, r10 << 1
-+ neg r1
-+ sub r1/*tmp[9]*/, r1, r8 << 1
-+ stdsp sp[4*2/*tmp3[..] on the stack*/ + 9*4], r1
-+ add r4/*a20*/, r11, r10 << 1
-+ add r4/*tmp[5]*/, r4, r2 << 1
-+ stdsp sp[4*2/*tmp3[..] on the stack*/ + 5*4], r4
-+ neg r11
-+ add r1/*a22*/, r11, r8 << 1
-+ add r1/*tmp[17]*/, r1, r2 << 1
-+ stdsp sp[4*2/*tmp3[..] on the stack*/ + 17*4], r1
-+ add r4, r12, r0
-+ sub r1, r0, r12 << 1
-+ stdsp sp[4*2/*tmp3[..] on the stack*/ + 1*4], r4
-+ stdsp sp[4*2/*tmp3[..] on the stack*/ + 13*4], r1
-+
-+ ld.d r0, sp++
-+
-+ /* Registers used:
-+
-+ r0 = tmp3[2], r1 = tmp3[3], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+ r7 = tmp3[1], r9=tmp3[7], r11=a19, lr=tmp3[6]
-+ Free registers:
-+ r2,r4,r8,r10,r12
-+ */
-+
-+/*
-+ a5 = tmp3[1] - (tmp3[7] << 1);
-+ a7 = tmp3[8] - (tmp3[0] << 1);
-+ a3 = tmp3[6] - (tmp3[2] << 1);
-+ a1 = tmp3[3] - (tmp3[5] << 1);
-+ a13 = a1 - a3;
-+ a14 = a13 + a7;
-+ m3 = mad_f_mul(a14, -c1) ;
-+ m4 = mad_f_mul(a5, -c1) ;
-+ tmp[ 7] = m3 << 1;
-+*/
-+ sub r7/*a5*/, r7, r9 << 1
-+ sub r2/*a7*/, r5, r6 << 1
-+ sub r4/*a3*/, lr, r0 << 1
-+ sub r8/*a1*/, r1, r3 << 1
-+ sub r10/*a13*/, r8, r4
-+ add r12/*a14*/, r10, r2
-+ mov r0, -MAD_F(0x1bb67ae8)
-+ mulsatrndwh.w r12/*m3*/, r12, r0:b
-+ mulsatrndwh.w r7/*m4*/, r7, r0:b
-+ lsl r12, 1
-+ stdsp sp[7*4], r12
-+
-+ /* Registers used:
-+ r2 = a7, r4 = a3, r7 = m4, r8 = a1, r12 = m3
-+
-+ Free registers:
-+ r0, r1, r3, r5, r6, r9, r10, r11, lr
-+ */
-+
-+
-+/*
-+ a15 = a3 + a7;
-+ m2 = mad_f_mul(a15, -c4) ;
-+ a17 = a1 + a3;
-+ m0 = mad_f_mul(a17, -c3) ;
-+ a23 = (m4 << 1) + (m2 << 1);
-+ tmp[15] = a23 + (m0 << 1); */
-+ add r0/*a15*/, r4, r2
-+ mov r1, -MAD_F(0x0af1d43a)
-+ mulsatrndwh.w r0/*m2*/, r0, r1:b
-+ mov r3, -MAD_F(0x1491b752)
-+ add r5/*a17*/, r8, r4
-+ mulsatrndwh.w r5/*m0*/, r5, r3:b
-+ lsl r7, 1
-+ add r6/*a23*/, r7, r0 << 1
-+ add r6/*tmp[15]*/, r6, r5 << 1
-+ stdsp sp[15*4], r6
-+
-+ /* Registers used:
-+ r0 = m2, r2 = a7, r5 = m0, r7 = m4, r8 = a1
-+
-+ Free registers:
-+ r1, r3, r4, r6, r9, r10, r11, lr
-+ */
-+
-+/*
-+ a16 = a1 - a7;
-+ m1 = mad_f_mul(a16, -c0) ;
-+ a24 = (m4 << 1) - (m2 << 1);
-+ tmp[11] = a24 - (m1 << 1);
-+
-+ a25 = (m4 << 1) + (m1 << 1);
-+ tmp[ 3] = (m0 << 1) - a25;
-+*/
-+ sub r3/*a16*/, r8, r2
-+ mov r4, -MAD_F(0x1f838b8d)
-+ mulsatrndwh.w r3/*m1*/, r3, r4:b
-+ sub r1/*a24*/, r7, r0 << 1
-+ sub r1/*tmp[11]*/, r1, r3 << 1
-+ stdsp sp[11*4], r1
-+ add r7/*a25*/, r7, r3 << 1
-+ sub r7, r7, r5 << 1
-+ neg r7
-+ lddsp r12, sp[4*18+4] /* Get y from stack */
-+ stdsp sp[3*4], r7
-+
-+
-+ /* output to every other slot for convenience */
-+
-+ /* End fastdct */
-+
-+ /* output accumulation */
-+
-+/* for (i = 3; i < 18; i += 8) {
-+ tmp[i + 0] -= tmp[(i + 0) - 2];
-+ tmp[i + 2] -= tmp[(i + 2) - 2];
-+ tmp[i + 4] -= tmp[(i + 4) - 2];
-+ tmp[i + 6] -= tmp[(i + 6) - 2];
-+ }
-+ }
-+*/
-+
-+/* End SDCT-II */
-+
-+
-+
-+ /* scale reduction and output accumulation */
-+
-+/*
-+ for (i = 1; i < 17; i += 4) {
-+ tmp[i + 0] = tmp[i + 0] - tmp[(i + 0) - 1];
-+ tmp[i + 1] = tmp[i + 1] - tmp[(i + 1) - 1];
-+ tmp[i + 2] = tmp[i + 2] - tmp[(i + 2) - 1];
-+ tmp[i + 3] = tmp[i + 3] - tmp[(i + 3) - 1];
-+ }
-+ tmp[17] = tmp[17] - tmp[16];
-+ }
-+*/
-+/* End DCT-IV */
-+
-+
-+ /* convert 18-point DCT-IV to 36-point IMDCT */
-+
-+/*
-+ for (i = 0; i < 9; i += 3) {
-+ y[i + 0] = tmp[9 + (i + 0)];
-+ y[i + 1] = tmp[9 + (i + 1)];
-+ y[i + 2] = tmp[9 + (i + 2)];
-+ }
-+ for (i = 9; i < 27; i += 3) {
-+ y[i + 0] = -tmp[36 - (9 + (i + 0)) - 1];
-+ y[i + 1] = -tmp[36 - (9 + (i + 1)) - 1];
-+ y[i + 2] = -tmp[36 - (9 + (i + 2)) - 1];
-+ }
-+ for (i = 27; i < 36; i += 3) {
-+ y[i + 0] = -tmp[(i + 0) - 27];
-+ y[i + 1] = -tmp[(i + 1) - 27];
-+ y[i + 2] = -tmp[(i + 2) - 27];
-+ }
-+ }
-+*/
-+
-+ /* Registers used:
-+ r0 = tmp[8], r1 = tmp[7], r2 = tmp[6], r3 = tmp[5], r4 = tmp[4]
-+ r5 = tmp[3], r6 = tmp[2], r7 = tmp[1], r8 = tmp[0], r12 = y
-+
-+ Free registers:
-+ r9, r10, r11, lr
-+ */
-+
-+ ldm sp++, r0-r8 /* Get tmp[0]-tmp[8] from stack */
-+ sub r5, r7 /* tmp[3] -= tmp[1]*/
-+ sub r3, r5 /* tmp[5] -= tmp[3]*/
-+ sub r1, r3 /* tmp[7] -= tmp[5]*/
-+
-+ sub r7, r8 /* tmp[1] -= tmp[0]*/
-+ sub r6, r7 /* tmp[2] -= tmp[1]*/
-+ sub r5, r6 /* tmp[3] -= tmp[2]*/
-+ neg r8
-+ st.w r12[26*4], r8 /* y[26] = -tmp[0] */
-+ st.w r12[27*4], r8 /* y[27] = -tmp[0] */
-+ neg r7
-+ neg r6
-+ st.w r12[25*4], r7 /* y[25] = -tmp[1] */
-+ st.w r12[24*4], r6 /* y[24] = -tmp[2] */
-+ st.d r12[28*4], r6 /* y[28] = -tmp[1], y[29] = -tmp[2]*/
-+
-+ sub r4, r5 /* tmp[4] -= tmp[3]*/
-+ sub r3, r4 /* tmp[5] -= tmp[4]*/
-+ neg r5
-+ neg r4
-+ st.w r12[23*4], r5 /* y[23] = -tmp[3] */
-+ st.w r12[22*4], r4 /* y[22] = -tmp[4] */
-+ st.d r12[30*4], r4 /* y[30] = -tmp[3], y[31] = -tmp[4]*/
-+
-+ ldm sp++, r4-r11,lr /* Get tmp[9]-tmp[17] from stack */
-+
-+ sub r2, r3 /* tmp[6] -= tmp[5]*/
-+
-+ sub lr, r1 /* tmp[9] -= tmp[7]*/
-+ sub r10, lr /* tmp[11] -= tmp[9]*/
-+ sub r8, r10 /* tmp[13] -= tmp[11]*/
-+ sub r6, r8 /* tmp[15] -= tmp[13]*/
-+ sub r4, r6 /* tmp[17] -= tmp[15]*/
-+
-+ sub r1, r2 /* tmp[7] -= tmp[6]*/
-+ sub r0, r1 /* tmp[8] -= tmp[7]*/
-+ neg r3
-+ neg r2
-+ st.w r12[21*4], r3 /* y[21] = -tmp[5] */
-+ st.w r12[20*4], r2 /* y[20] = -tmp[6] */
-+ st.d r12[32*4], r2 /* y[32] = -tmp[5], y[33] = -tmp[6]*/
-+
-+ sub lr, r0 /* tmp[9] -= tmp[8]*/
-+ sub r11, lr /* tmp[10] -= tmp[9]*/
-+ neg r1
-+ neg r0
-+ st.w r12[19*4], r1 /* y[19] = -tmp[7] */
-+ st.w r12[18*4], r0 /* y[18] = -tmp[8] */
-+ st.d r12[34*4], r0 /* y[34] = -tmp[7], y[35] = -tmp[8]*/
-+
-+ sub r10, r11 /* tmp[11] -= tmp[10]*/
-+ sub r9, r10 /* tmp[12] -= tmp[11]*/
-+
-+ st.w r12[0*4], lr /* y[0] = tmp[9]*/
-+ neg lr
-+ st.w r12[17*4], lr /* y[17] = -tmp[9]*/
-+ st.d r12[1*4], r10 /* y[1] = tmp[10], y[2] = tmp[11] */
-+ neg r11
-+ neg r10
-+ st.w r12[16*4], r11 /* y[16] = -tmp[10] */
-+ st.w r12[15*4], r10 /* y[15] = -tmp[11] */
-+
-+
-+ sub r8, r9 /* tmp[13] -= tmp[12]*/
-+ sub r7, r8 /* tmp[14] -= tmp[13]*/
-+ st.d r12[3*4], r8 /* y[3] = tmp[12], y[4] = tmp[13] */
-+ neg r9
-+ neg r8
-+ st.w r12[14*4], r9 /* y[14] = -tmp[12] */
-+ st.w r12[13*4], r8 /* y[13] = -tmp[13] */
-+
-+ sub r6, r7 /* tmp[15] -= tmp[14]*/
-+ sub r5, r6 /* tmp[16] -= tmp[15]*/
-+ sub r4, r5 /* tmp[17] -= tmp[16]*/
-+
-+ st.d r12[5*4], r6 /* y[5] = tmp[14], y[6] = tmp[15] */
-+ neg r7
-+ neg r6
-+ st.w r12[12*4], r7 /* y[12] = -tmp[14] */
-+ st.w r12[11*4], r6 /* y[11] = -tmp[15] */
-+
-+ st.d r12[7*4], r4 /* y[7] = tmp[16], y[8] = tmp[17] */
-+ neg r5
-+ neg r4
-+ st.w r12[10*4], r5 /* y[10] = -tmp[16] */
-+ st.w r12[9*4], r4 /* y[9] = -tmp[17] */
-+
-+ popm r0-r7,r11,pc
-+
-+ .align 2
-+scale_dctIV:
-+ .short MAD_F(0x1ff833fa), MAD_F(0x1fb9ea93), MAD_F(0x1f3dd120)
-+ .short MAD_F(0x1e84d969), MAD_F(0x1d906bcf), MAD_F(0x1c62648b)
-+ .short MAD_F(0x1afd100f), MAD_F(0x1963268b), MAD_F(0x1797c6a4)
-+ .short MAD_F(0x159e6f5b), MAD_F(0x137af940), MAD_F(0x11318ef3)
-+ .short MAD_F(0x0ec6a507), MAD_F(0x0c3ef153), MAD_F(0x099f61c5)
-+ .short MAD_F(0x06ed12c5), MAD_F(0x042d4544), MAD_F(0x0165547c)
-+
-+ .align 2
-+scale_sdctII:
-+ .short MAD_F(0x1fe0d3b4), MAD_F(0x1ee8dd47), MAD_F(0x1d007930)
-+ .short MAD_F(0x1a367e59), MAD_F(0x16a09e66), MAD_F(0x125abcf8)
-+ .short MAD_F(0x0d8616bc), MAD_F(0x08483ee1), MAD_F(0x02c9fad7)
-diff --git a/layer3.c b/layer3.c
-index 4e5d3fa..dffdab3 100644
---- a/layer3.c
-+++ b/layer3.c
-@@ -378,6 +378,11 @@ mad_fixed_t const ca[8] = {
- -MAD_F(0x003a2847) /* -0.014198569 */, -MAD_F(0x000f27b4) /* -0.003699975 */
- };
-
-+#ifdef FPM_AVR32
-+# undef MAD_F
-+# define MAD_F(x) ((x + (1 << 12)) >> 13)
-+#endif
-+
- /*
- * IMDCT coefficients for short blocks
- * derived from section 2.4.3.4.10.2 of ISO/IEC 11172-3
-@@ -386,7 +391,7 @@ mad_fixed_t const ca[8] = {
- * imdct_s[i /odd][k] = cos((PI / 24) * (2 * (6 + (i-1)/2) + 7) * (2 * k + 1))
- */
- static
--mad_fixed_t const imdct_s[6][6] = {
-+mad_coeff_t const imdct_s[6][6] = {
- # include "imdct_s.dat"
- };
-
-@@ -398,7 +403,7 @@ mad_fixed_t const imdct_s[6][6] = {
- * window_l[i] = sin((PI / 36) * (i + 1/2))
- */
- static
--mad_fixed_t const window_l[36] = {
-+mad_coeff_t const window_l[36] = {
- MAD_F(0x00b2aa3e) /* 0.043619387 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
- MAD_F(0x03768962) /* 0.216439614 */, MAD_F(0x04cfb0e2) /* 0.300705800 */,
- MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x07635284) /* 0.461748613 */,
-@@ -429,7 +434,7 @@ mad_fixed_t const window_l[36] = {
- * window_s[i] = sin((PI / 12) * (i + 1/2))
- */
- static
--mad_fixed_t const window_s[12] = {
-+mad_coeff_t const window_s[12] = {
- MAD_F(0x0216a2a2) /* 0.130526192 */, MAD_F(0x061f78aa) /* 0.382683432 */,
- MAD_F(0x09bd7ca0) /* 0.608761429 */, MAD_F(0x0cb19346) /* 0.793353340 */,
- MAD_F(0x0ec835e8) /* 0.923879533 */, MAD_F(0x0fdcf549) /* 0.991444861 */,
-@@ -438,6 +443,11 @@ mad_fixed_t const window_s[12] = {
- MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
- };
-
-+#ifdef FPM_AVR32
-+# undef MAD_F
-+# define MAD_F(x) ((mad_fixed_t) (x##L))
-+#endif
-+
- /*
- * coefficients for intensity stereo processing
- * derived from section 2.4.3.4.9.3 of ISO/IEC 11172-3
-@@ -879,6 +889,42 @@ void III_exponents(struct channel const *channel,
- * NAME: III_requantize()
- * DESCRIPTION: requantize one (positive) value
- */
-+
-+#if 0
-+/*static*/
-+mad_fixed_t III_requantize(unsigned int value, signed int exp)
-+{
-+ register mad_fixed_t tmp2, tmp3;
-+ long long tmp_d;
-+
-+ asm ("asr\t%0, %1, 2\n"
-+ "ld.w\t%2, %4[%5 << 2]\n"
-+ "sub\t%1, %1, %0 << 2\n"
-+ "asr\t%3, %2, 7\n"
-+ "andl\t%2, 0x7f, COH\n"
-+ "add\t%0, %2\n"
-+ "lsl\t%m0,%3,%0\n"
-+ "neg\t%0\n"
-+ "asr\t%3,%3,%0\n"
-+ "add\t%2, %6, %1 << 2\n"
-+ "ld.w\t%2, %2[12]\n"
-+ "cp.w\t%0, 0\n"
-+ "movlt\t%3, %m0\n"
-+ "muls.d\t%0, %3, %2\n"
-+ "cp.w\t%1, 0\n"
-+ "breq\t0f\n"
-+ "lsr\t%0, %0, 28\n"
-+ "or\t%3, %0, %m0 << 4\n"
-+ "0:\n"
-+ : "=&r"(tmp_d), "+r"(exp), "=&r"(tmp2), "=&r"(tmp3)
-+ : "r"(&rq_table), "r"(value), "r"(root_table));
-+
-+
-+ return tmp3;
-+}
-+
-+#else
-+
- static
- mad_fixed_t III_requantize(unsigned int value, signed int exp)
- {
-@@ -918,6 +964,7 @@ mad_fixed_t III_requantize(unsigned int value, signed int exp)
-
- return frac ? mad_f_mul(requantized, root_table[3 + frac]) : requantized;
- }
-+#endif
-
- /* we must take care that sz >= bits and sz < sizeof(long) lest bits == 0 */
- # define MASK(cache, sz, bits) \
-@@ -2054,27 +2101,42 @@ void imdct36(mad_fixed_t const X[18], mad_fixed_t x[36])
- }
- # endif
-
-+
-+#ifdef FPM_AVR32
-+# undef mad_f_mul
-+# define mad_f_mul(x, y) __builtin_mulsatrndwh_w(x, y)
-+#endif
-+
- /*
- * NAME: III_imdct_l()
- * DESCRIPTION: perform IMDCT and windowing for long blocks
- */
- static
--void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
-+void III_imdct_l(mad_fixed_t /*const*/ X[18], mad_fixed_t z[36],
- unsigned int block_type)
- {
- unsigned int i;
-+ mad_fixed_t *z_ptr;
-+ mad_coeff_t *w_ptr;
-
- /* IMDCT */
-
-+#ifdef FPM_AVR32
-+ imdct36_avr32(X, z);
-+#else
- imdct36(X, z);
-+#endif
-
- /* windowing */
-
-+ z_ptr = &z[0];
-+ w_ptr = &window_l[0];
-+
- switch (block_type) {
- case 0: /* normal window */
- # if defined(ASO_INTERLEAVE1)
- {
-- register mad_fixed_t tmp1, tmp2;
-+ register mad_coeff_t tmp1, tmp2;
-
- tmp1 = window_l[0];
- tmp2 = window_l[1];
-@@ -2091,15 +2153,16 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
- }
- # elif defined(ASO_INTERLEAVE2)
- {
-- register mad_fixed_t tmp1, tmp2;
-+ register mad_fixed_t tmp1;
-+ register mad_coeff_t tmp2;
-
-- tmp1 = z[0];
-- tmp2 = window_l[0];
-+ tmp1 = *z_ptr;
-+ tmp2 = *w_ptr++;
-
- for (i = 0; i < 35; ++i) {
-- z[i] = mad_f_mul(tmp1, tmp2);
-- tmp1 = z[i + 1];
-- tmp2 = window_l[i + 1];
-+ *z_ptr++ = mad_f_mul(tmp1, tmp2);
-+ tmp1 = *z_ptr;
-+ tmp2 = *w_ptr++;
- }
-
- z[35] = mad_f_mul(tmp1, tmp2);
-@@ -2118,23 +2181,28 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
-
- case 1: /* start block */
- for (i = 0; i < 18; i += 3) {
-- z[i + 0] = mad_f_mul(z[i + 0], window_l[i + 0]);
-- z[i + 1] = mad_f_mul(z[i + 1], window_l[i + 1]);
-- z[i + 2] = mad_f_mul(z[i + 2], window_l[i + 2]);
-+ *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
-+ *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
-+ *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
- }
-+ z_ptr += 6;
-+ w_ptr = &window_s[6];
- /* (i = 18; i < 24; ++i) z[i] unchanged */
-- for (i = 24; i < 30; ++i) z[i] = mad_f_mul(z[i], window_s[i - 18]);
-- for (i = 30; i < 36; ++i) z[i] = 0;
-+ for (i = 24; i < 30; ++i) *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
-+ for (i = 30; i < 36; ++i) *z_ptr++ = 0;
- break;
-
- case 3: /* stop block */
-- for (i = 0; i < 6; ++i) z[i] = 0;
-- for (i = 6; i < 12; ++i) z[i] = mad_f_mul(z[i], window_s[i - 6]);
-+ w_ptr = &window_s[0];
-+ for (i = 0; i < 6; ++i) *z_ptr++ = 0;
-+ for (i = 6; i < 12; ++i) *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
- /* (i = 12; i < 18; ++i) z[i] unchanged */
-+ w_ptr = &window_l[18];
-+ z_ptr += 6;
- for (i = 18; i < 36; i += 3) {
-- z[i + 0] = mad_f_mul(z[i + 0], window_l[i + 0]);
-- z[i + 1] = mad_f_mul(z[i + 1], window_l[i + 1]);
-- z[i + 2] = mad_f_mul(z[i + 2], window_l[i + 2]);
-+ *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++ );
-+ *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
-+ *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
- }
- break;
- }
-@@ -2146,10 +2214,10 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
- * DESCRIPTION: perform IMDCT and windowing for short blocks
- */
- static
--void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
-+void III_imdct_s(mad_fixed_t /*const*/ X[18], mad_fixed_t z[36])
- {
- mad_fixed_t y[36], *yptr;
-- mad_fixed_t const *wptr;
-+ mad_coeff_t const *wptr;
- int w, i;
- register mad_fixed64hi_t hi;
- register mad_fixed64lo_t lo;
-@@ -2159,11 +2227,56 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
- yptr = &y[0];
-
- for (w = 0; w < 3; ++w) {
-- register mad_fixed_t const (*s)[6];
-+ register mad_coeff_t const (*s)[6];
-
- s = imdct_s;
-
- for (i = 0; i < 3; ++i) {
-+#ifdef FPM_AVR32
-+ register long long int acc, tmp1, tmp2, tmp3, tmp4;
-+ asm volatile ("ld.d\t%0, %5++\n"
-+ "ld.d\t%1, %6[0]\n"
-+ "ld.d\t%2, %6[2*4]\n"
-+ "ld.d\t%3, %6[4*4]\n"
-+ "mulwh.d\t%4, %m1, %m0:t\n"
-+ "macwh.d\t%4, %1, %m0:b\n"
-+ "ld.w\t%m0, %5++\n"
-+ "macwh.d\t%4, %m2, %0:t\n"
-+ "macwh.d\t%4, %2, %0:b\n"
-+ "macwh.d\t%4, %m3, %m0:t\n"
-+ "macwh.d\t%4, %3, %m0:b\n"
-+ "ld.d\t%0, %5++\n"
-+ "rol\t%4\n"
-+ "rol\t%m4\n"
-+ : "=&r"(tmp1), "=&r"(tmp2), "=&r"(tmp3), "=&r"(tmp4),
-+ "=&r"(acc), "+r"(s)
-+ : "r"(X));
-+
-+ asm volatile ("st.w\t%1[0], %m0\n"
-+ "neg\t%m0\n"
-+ "st.w\t%2[5*4], %m0\n"
-+ : "+r"(acc)
-+ : "r"(&yptr[i]), "r"(&yptr[-i]));
-+
-+ asm volatile ("mulwh.d\t%4, %m1, %m0:t\n"
-+ "macwh.d\t%4, %1, %m0:b\n"
-+ "ld.w\t%m0, %5++\n"
-+ "macwh.d\t%4, %m2, %0:t\n"
-+ "macwh.d\t%4, %2, %0:b\n"
-+ "macwh.d\t%4, %m3, %m0:t\n"
-+ "macwh.d\t%4, %3, %m0:b\n"
-+ "rol\t%4\n"
-+ "rol\t%m4\n"
-+ : "+r"(tmp1), "+r"(tmp2), "+r"(tmp3), "+r"(tmp4),
-+ "=&r"(acc), "+r"(s)
-+ : "r"(X));
-+
-+ asm volatile ( "st.w\t%1[6*4], %m0\n"
-+ "st.w\t%2[11*4], %m0\n"
-+ :: "r"(acc), "r"(&yptr[i]), "r"(&yptr[-i]));
-+
-+
-+#else
- MAD_F_ML0(hi, lo, X[0], (*s)[0]);
- MAD_F_MLA(hi, lo, X[1], (*s)[1]);
- MAD_F_MLA(hi, lo, X[2], (*s)[2]);
-@@ -2187,6 +2300,7 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
- yptr[11 - i] = yptr[i + 6];
-
- ++s;
-+#endif
- }
-
- yptr += 12;
-@@ -2198,6 +2312,196 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
- yptr = &y[0];
- wptr = &window_s[0];
-
-+#ifdef FPM_AVR32
-+ /* z[0] = 0;
-+ z[1] = 0;
-+ z[2] = 0;
-+ z[3] = 0;
-+ z[4] = 0;
-+ z[5] = 0;
-+ z[30] = 0;
-+ z[31] = 0;
-+ z[32] = 0;
-+ z[33] = 0;
-+ z[34] = 0;
-+ z[35] = 0;
-+ */
-+ {
-+ register long long int tmp, tmp2, tmp3, w0123, w4567, w891011;
-+ asm volatile ("mov\t%m0, 0\n"
-+ "mov\t%0, %m0\n"
-+ "st.d\t%1[0], %0\n"
-+ "st.d\t%1[2*4], %0\n"
-+ "st.d\t%1[4*4], %0\n"
-+ "st.d\t%1[30*4], %0\n"
-+ "st.d\t%1[32*4], %0\n"
-+ "st.d\t%1[34*4], %0\n"
-+ : "=&r"(tmp) : "r"(z));
-+
-+
-+
-+ /*
-+ z[6] = mad_f_mul(yptr [0], wptr[0]);
-+ z[7] = mad_f_mul(yptr [1], wptr[1]);
-+ z[8] = mad_f_mul(yptr [2], wptr[2]);
-+ z[9] = mad_f_mul(yptr [3], wptr[3]);
-+ z[10] = mad_f_mul(yptr[4], wptr[4]);
-+ z[11] = mad_f_mul(yptr[5], wptr[5]);
-+ z[24] = mad_f_mul(yptr [30], wptr[6]);
-+ z[25] = mad_f_mul(yptr [31], wptr[7]);
-+ z[26] = mad_f_mul(yptr [32], wptr[8]);
-+ z[27] = mad_f_mul(yptr [33], wptr[9]);
-+ z[28] = mad_f_mul(yptr[34], wptr[10]);
-+ z[29] = mad_f_mul(yptr[35], wptr[11]);
-+ */
-+
-+
-+ asm volatile ("ld.d\t%0, %5[0*4]\n"
-+ "ld.d\t%3, %6[0*4]\n"
-+ "ld.d\t%1, %5[2*4]\n"
-+ "ld.d\t%2, %5[4*4]\n"
-+ "mulsatrndwh.w\t%m3, %m3, %m0:t\n"
-+ "mulsatrndwh.w\t%3, %3, %m0:b\n"
-+ "ld.d\t%4, %6[2*4]\n"
-+ "st.d\t%7[6*4], %3\n"
-+
-+ "mulsatrndwh.w\t%m4, %m4, %0:t\n"
-+ "mulsatrndwh.w\t%4, %4, %0:b\n"
-+ "ld.d\t%3, %6[4*4]\n"
-+ "st.d\t%7[8*4], %4\n"
-+
-+ "mulsatrndwh.w\t%m3, %m3, %m1:t\n"
-+ "mulsatrndwh.w\t%3, %3, %m1:b\n"
-+ "ld.d\t%4, %6[30*4]\n"
-+ "st.d\t%7[10*4], %3\n"
-+
-+ "mulsatrndwh.w\t%m4, %m4, %1:t\n"
-+ "mulsatrndwh.w\t%4, %4, %1:b\n"
-+ "ld.d\t%3, %6[32*4]\n"
-+ "st.d\t%7[24*4], %4\n"
-+
-+ "mulsatrndwh.w\t%m3, %m3, %m2:t\n"
-+ "mulsatrndwh.w\t%3, %3, %m2:b\n"
-+ "ld.d\t%4, %6[34*4]\n"
-+ "st.d\t%7[26*4], %3\n"
-+
-+ "mulsatrndwh.w\t%m4, %m4, %2:t\n"
-+ "mulsatrndwh.w\t%4, %4, %2:b\n"
-+ "st.d\t%7[28*4], %4\n"
-+
-+ : "=&r"(w0123), "=&r"(w4567), "=&r"(w891011), "=&r"(tmp), "=&r"(tmp2)
-+ : "r"(wptr), "r"(yptr), "r"(z));
-+ /*
-+ MAD_F_ML0(hi, lo, yptr[6], wptr[6]);
-+ MAD_F_MLA(hi, lo, yptr[12], wptr[0]);
-+ z[12] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[7], wptr[7]);
-+ MAD_F_MLA(hi, lo, yptr[13], wptr[1]);
-+ z[13] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[8], wptr[8]);
-+ MAD_F_MLA(hi, lo, yptr[14], wptr[2]);
-+ z[14] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[9], wptr[9]);
-+ MAD_F_MLA(hi, lo, yptr[15], wptr[3]);
-+ z[15] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[10], wptr[10]);
-+ MAD_F_MLA(hi, lo, yptr[16], wptr[4]);
-+ z[16] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[11], wptr[11]);
-+ MAD_F_MLA(hi, lo, yptr[17], wptr[5]);
-+ z[17] = MAD_F_MLZ(hi, lo);
-+
-+ MAD_F_ML0(hi, lo, yptr[18], wptr[6]);
-+ MAD_F_MLA(hi, lo, yptr[24], wptr[0]);
-+ z[18] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[19], wptr[7]);
-+ MAD_F_MLA(hi, lo, yptr[25], wptr[1]);
-+ z[19] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[20], wptr[8]);
-+ MAD_F_MLA(hi, lo, yptr[26], wptr[2]);
-+ z[20] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[21], wptr[9]);
-+ MAD_F_MLA(hi, lo, yptr[27], wptr[3]);
-+ z[21] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[22], wptr[10]);
-+ MAD_F_MLA(hi, lo, yptr[28], wptr[4]);
-+ z[22] = MAD_F_MLZ(hi, lo);
-+ MAD_F_ML0(hi, lo, yptr[23], wptr[11]);
-+ MAD_F_MLA(hi, lo, yptr[29], wptr[5]);
-+ z[23] = MAD_F_MLZ(hi, lo);*/
-+
-+
-+ asm volatile ("ld.d\t%0, %3[6*4]\n"
-+ "ld.d\t%1, %3[12*4]\n"
-+ "mulwh.d\t%2, %m0, %5:t\n"
-+ "macwh.d\t%2, %m1, %m4:t\n"
-+ "mulwh.d\t%0, %0, %5:b\n"
-+ "macwh.d\t%0, %1, %m4:b\n"
-+ "lsl\t%m2, 1\n"
-+ "lsl\t%2, %m0, 1\n"
-+ "st.d\t%6[12*4], %2\n"
-+
-+ "ld.d\t%0, %3[18*4]\n"
-+ "ld.d\t%1, %3[24*4]\n"
-+ "mulwh.d\t%2, %m0, %5:t\n"
-+ "macwh.d\t%2, %m1, %m4:t\n"
-+ "mulwh.d\t%0, %0, %5:b\n"
-+ "macwh.d\t%0, %1, %m4:b\n"
-+ "lsl\t%m2, 1\n"
-+ "lsl\t%2, %m0, 1\n"
-+ "st.d\t%6[18*4], %2\n"
-+
-+ : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
-+ : "r"(yptr), "r"(w0123), "r"(w4567), "r"(z));
-+
-+ asm volatile ("ld.d\t%0, %3[8*4]\n"
-+ "ld.d\t%1, %3[14*4]\n"
-+ "mulwh.d\t%2, %m0, %m5:t\n"
-+ "macwh.d\t%2, %m1, %4:t\n"
-+ "mulwh.d\t%0, %0, %m5:b\n"
-+ "macwh.d\t%0, %1, %4:b\n"
-+ "lsl\t%m2, 1\n"
-+ "lsl\t%2, %m0, 1\n"
-+ "st.d\t%6[14*4], %2\n"
-+
-+ "ld.d\t%0, %3[20*4]\n"
-+ "ld.d\t%1, %3[26*4]\n"
-+ "mulwh.d\t%2, %m0, %m5:t\n"
-+ "macwh.d\t%2, %m1, %4:t\n"
-+ "mulwh.d\t%0, %0, %m5:b\n"
-+ "macwh.d\t%0, %1, %4:b\n"
-+ "lsl\t%m2, 1\n"
-+ "lsl\t%2, %m0, 1\n"
-+ "st.d\t%6[20*4], %2\n"
-+
-+ : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
-+ : "r"(yptr), "r"(w0123), "r"(w891011), "r"(z));
-+
-+ asm volatile ("ld.d\t%0, %3[10*4]\n"
-+ "ld.d\t%1, %3[16*4]\n"
-+ "mulwh.d\t%2, %m0, %5:t\n"
-+ "macwh.d\t%2, %m1, %m4:t\n"
-+ "mulwh.d\t%0, %0, %5:b\n"
-+ "macwh.d\t%0, %1, %m4:b\n"
-+ "lsl\t%m2, 1\n"
-+ "lsl\t%2, %m0, 1\n"
-+ "st.d\t%6[16*4], %2\n"
-+
-+ "ld.d\t%0, %3[22*4]\n"
-+ "ld.d\t%1, %3[28*4]\n"
-+ "mulwh.d\t%2, %m0, %5:t\n"
-+ "macwh.d\t%2, %m1, %m4:t\n"
-+ "mulwh.d\t%0, %0, %5:b\n"
-+ "macwh.d\t%0, %1, %m4:b\n"
-+ "lsl\t%m2, 1\n"
-+ "lsl\t%2, %m0, 1\n"
-+ "st.d\t%6[22*4], %2\n"
-+
-+ : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
-+ : "r"(yptr), "r"(w4567), "r"(w891011), "r"(z));
-+
-+ }
-+#else
- for (i = 0; i < 6; ++i) {
- z[i + 0] = 0;
- z[i + 6] = mad_f_mul(yptr[ 0 + 0], wptr[0]);
-@@ -2218,8 +2522,15 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
- ++yptr;
- ++wptr;
- }
-+#endif
- }
-
-+#ifdef FPM_AVR32
-+# undef mad_f_mul
-+# define mad_f_mul(x, y) ((((x) + (1L << 11)) >> 12) * \
-+ (((y) + (1L << 15)) >> 16))
-+#endif
-+
- /*
- * NAME: III_overlap()
- * DESCRIPTION: perform overlap-add of windowed IMDCT outputs
-diff --git a/synth.c b/synth.c
-index 1d28d43..f42d49b 100644
---- a/synth.c
-+++ b/synth.c
-@@ -29,20 +29,6 @@
- # include "frame.h"
- # include "synth.h"
-
--/*
-- * NAME: synth->init()
-- * DESCRIPTION: initialize synth struct
-- */
--void mad_synth_init(struct mad_synth *synth)
--{
-- mad_synth_mute(synth);
--
-- synth->phase = 0;
--
-- synth->pcm.samplerate = 0;
-- synth->pcm.channels = 0;
-- synth->pcm.length = 0;
--}
-
- /*
- * NAME: synth->mute()
-@@ -88,6 +74,10 @@ void mad_synth_mute(struct mad_synth *synth)
-
- /* FPM_DEFAULT without OPT_SSO will actually lose accuracy and performance */
-
-+# if defined(FPM_AVR32)
-+# define OPT_SSO
-+# endif
-+
- # if defined(FPM_DEFAULT) && !defined(OPT_SSO)
- # define OPT_SSO
- # endif
-@@ -522,9 +512,15 @@ void dct32(mad_fixed_t const in[32], unsigned int slot,
- # endif
- # define ML0(hi, lo, x, y) ((lo) = (x) * (y))
- # define MLA(hi, lo, x, y) ((lo) += (x) * (y))
--# define MLN(hi, lo) ((lo) = -(lo))
--# define MLZ(hi, lo) ((void) (hi), (mad_fixed_t) (lo))
--# define SHIFT(x) ((x) >> 2)
-+# if defined(FPM_AVR32)
-+# define MLN(hi, lo) MAD_F_MLN((hi), (lo))
-+# define MLZ(hi, lo) (hi)
-+# define SHIFT(x) ((x) << 2)
-+# else
-+# define MLN(hi, lo) ((lo) = -(lo))
-+# define MLZ(hi, lo) ((void) (hi), (mad_fixed_t) (lo))
-+# define SHIFT(x) ((x) >> 2)
-+# endif
- # define PRESHIFT(x) ((MAD_F(x) + (1L << 13)) >> 14)
- # else
- # define ML0(hi, lo, x, y) MAD_F_ML0((hi), (lo), (x), (y))
-@@ -541,11 +537,54 @@ void dct32(mad_fixed_t const in[32], unsigned int slot,
- # endif
- # endif
-
-+/*
-+ * NAME: synth->init()
-+ * DESCRIPTION: initialize synth struct
-+ */
-+
-+#ifdef FPM_AVR32
-+short Dmod[17][33];
-+#endif
-+
- static
-+#ifdef FPM_AVR32
-+short const D[17][32] = {
-+#else
- mad_fixed_t const D[17][32] = {
-+#endif
- # include "D.dat"
- };
-
-+void mad_synth_init(struct mad_synth *synth)
-+{
-+
-+ mad_synth_mute(synth);
-+
-+ synth->phase = 0;
-+
-+ synth->pcm.samplerate = 0;
-+ synth->pcm.channels = 0;
-+ synth->pcm.length = 0;
-+
-+#ifdef FPM_AVR32
-+ {
-+ int i, j;
-+ for ( i = 0; i < 17; i++ ){
-+ for ( j = 0; j < 32; j++ ){
-+ if ( j & 1 ){
-+ Dmod[i][17 + (j >> 1)]= D[i][j];
-+ } else {
-+ Dmod[i][(j >> 1)]= D[i][j];
-+ }
-+ }
-+
-+ Dmod[i][16]= Dmod[i][16+8];
-+ }
-+ }
-+#endif
-+
-+}
-+
- # if defined(ASO_SYNTH)
- void synth_full(struct mad_synth *, struct mad_frame const *,
- unsigned int, unsigned int);
-@@ -560,9 +599,13 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
- {
- unsigned int phase, ch, s, sb, pe, po;
- mad_fixed_t *pcm1, *pcm2, (*filter)[2][2][16][8];
-- mad_fixed_t const (*sbsample)[36][32];
-+ mad_fixed_t /*const*/ (*sbsample)[36][32];
- register mad_fixed_t (*fe)[8], (*fx)[8], (*fo)[8];
-+#ifdef FPM_AVR32
-+ register short const (*Dptr)[32], *ptr;
-+#else
- register mad_fixed_t const (*Dptr)[32], *ptr;
-+#endif
- register mad_fixed64hi_t hi;
- register mad_fixed64lo_t lo;
-
-@@ -573,6 +616,20 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
- pcm1 = synth->pcm.samples[ch];
-
- for (s = 0; s < ns; ++s) {
-+# ifdef FPM_AVR32
-+/*
-+ int i;
-+ for ( i = 0; i < 32; i++ ){
-+ (*sbsample)[s][i] = ((*sbsample)[s][i] + (1 << 13)) & 0xFFFFC000;
-+ }
-+*/
-+ dct32_avr32((*sbsample)[s], phase >> 1,
-+ (*filter)[0][phase & 1], (*filter)[1][phase & 1]);
-+ /* printf("dct32: %d\n", GET_CYCLES);*/
-+ pcm1 = synth_avr32(phase, (mad_fixed_t *)filter, \
-+ pcm1, (short *)&Dmod[0]);
-+ /* printf("synth_window: %d\n", GET_CYCLES);*/
-+# else
- dct32((*sbsample)[s], phase >> 1,
- (*filter)[0][phase & 1], (*filter)[1][phase & 1]);
-
-@@ -679,6 +736,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
- MLA(hi, lo, (*fo)[7], ptr[ 2]);
-
- *pcm1 = SHIFT(-MLZ(hi, lo));
-+# endif
- pcm1 += 16;
-
- phase = (phase + 1) % 16;
-diff --git a/synth_avr32.S b/synth_avr32.S
-new file mode 100644
-index 0000000..701077b
---- /dev/null
-+++ b/synth_avr32.S
-@@ -0,0 +1,394 @@
-+/*
-+ Optimized function for speeding up synthesis filter
-+ in MPEG Audio Decoding.
-+ Copyright 2003-2006 Atmel Corporation.
-+
-+ Written by Ronny Pedersen and Lars Even Almås, Atmel Norway
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2 of the License, or
-+ (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+
-+/* *****************
-+ Defining macros
-+ ***************** */
-+
-+ .macro window_1 f, ptr, acc, ptr_offset, mul, tmp1_lo, tmp1_hi, tmp2_lo, tmp2_hi, tmp3_lo, tmp3_hi
-+ ld.d \tmp1_lo, \f[0*4] /* tmp1 = { f[0], f[1] } */
-+ ld.w \tmp2_lo, \ptr[0*2+\ptr_offset*2] /* tmp2_lo = { ptr[0], ptr[1] }*/
-+ ld.d \tmp3_lo, \f[6*4] /* tmp3 = { f[6], f[7] } */
-+ ld.w \tmp2_hi, \ptr[6*2+\ptr_offset*2] /* tmp2_hi = { ptr[6], ptr[7] }*/
-+ .if \mul
-+ mulwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[0] * ptr[0]*/
-+ .else
-+ macwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[0] * ptr[0]*/
-+ .endif
-+ macwh.d \acc, \tmp3_lo, \tmp2_lo:b /* f[7] * ptr[1]*/
-+ ld.w \tmp2_lo, \ptr[2*2+\ptr_offset*2] /* tmp2_lo = { ptr[2], ptr[3] }*/
-+ macwh.d \acc, \tmp1_lo, \tmp2_hi:b /* f[1] * ptr[7]*/
-+ ld.d \tmp1_lo, \f[2*4] /* tmp1 = { f[2], f[3] } */
-+
-+ macwh.d \acc, \tmp3_hi, \tmp2_lo:t /* f[6] * ptr[2]*/
-+ macwh.d \acc, \tmp1_hi, \tmp2_hi:t /* f[2] * ptr[6]*/
-+ ld.d \tmp3_lo, \f[4*4] /* tmp3 = { f[4], f[5] } */
-+ ld.w \tmp2_hi, \ptr[4*2+\ptr_offset*2] /* tmp2_hi = { ptr[4], ptr[5] }*/
-+ macwh.d \acc, \tmp3_lo, \tmp2_lo:b /* f[5] * ptr[3]*/
-+
-+ macwh.d \acc, \tmp1_lo, \tmp2_hi:b /* f[3] * ptr[5]*/
-+ macwh.d \acc, \tmp3_hi, \tmp2_hi:t /* f[4] * ptr[4]*/
-+ .endm
-+
-+ .macro window_2 f, ptr, acc, ptr_offset, mul, tmp1_lo, tmp1_hi, tmp2_lo, tmp2_hi, tmp3_lo, tmp3_hi
-+ ld.d \tmp1_lo, \f[0*4] /* tmp1 = { f[0], f[1] } */
-+ ld.w \tmp2_lo, \ptr[7*2+\ptr_offset*2] /* tmp2_lo = { ptr[7], ptr[8] }*/
-+ ld.d \tmp3_lo, \f[2*4] /* tmp3 = { f[2], f[3] } */
-+ ld.w \tmp2_hi, \ptr[9*2+\ptr_offset*2] /* tmp2_hi = { ptr[9], ptr[10] }*/
-+ .if \mul
-+ mulwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[0] * ptr[7]*/
-+ .else
-+ macwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[0] * ptr[7]*/
-+ .endif
-+ macwh.d \acc, \tmp1_lo, \tmp2_lo:b /* f[1] * ptr[8]*/
-+
-+ ld.d \tmp1_lo, \f[4*4] /* tmp1 = { f[4], f[5] } */
-+ ld.w \tmp2_lo, \ptr[11*2+\ptr_offset*2] /* tmp2_lo = { ptr[11], ptr[12] }*/
-+
-+ macwh.d \acc, \tmp3_hi, \tmp2_hi:t /* f[2] * ptr[9]*/
-+ macwh.d \acc, \tmp3_lo, \tmp2_hi:b /* f[3] * ptr[10]*/
-+
-+ ld.d \tmp3_lo, \f[6*4] /* tmp3 = { f[6], f[7] } */
-+ ld.w \tmp2_hi, \ptr[13*2+\ptr_offset*2] /* tmp2_hi = { ptr[13], ptr[14] }*/
-+
-+ macwh.d \acc, \tmp1_hi, \tmp2_lo:t /* f[4] * ptr[11]*/
-+ macwh.d \acc, \tmp1_lo, \tmp2_lo:b /* f[5] * ptr[12]*/
-+ macwh.d \acc, \tmp3_hi, \tmp2_hi:t /* f[6] * ptr[13]*/
-+ macwh.d \acc, \tmp3_lo, \tmp2_hi:b /* f[7] * ptr[14]*/
-+ .endm
-+
-+ .macro scale res, d_lo, d_hi
-+ lsl \d_hi, 2
-+ .endm
-+
-+/* **********************
-+ Starting main function
-+ ********************** */
-+
-+/* Function synth_avr32 is called from synth.c with arguments:
-+ phase, filter, *pcm1, &D[0] */
-+
-+ .global synth_avr32
-+synth_avr32:
-+ pushm r0-r7, lr
-+ sub sp, 8
-+
-+ /* R12 = phase, R11 = filter, R10 = pcm1, r9 = D*/
-+ bld r12, 0
-+ brcc synth_even
-+
-+ /* Filter for odd phases */
-+
-+ /* fe = &(*filter)[0][1][0];
-+ fx = &(*filter)[0][0][0];
-+ fo = &(*filter)[1][0][0]; */
-+ sub lr /*fe*/, r11, -16*8*4
-+ sub r8 /*fo*/, r11, -16*8*4*2
-+
-+ /* pe = phase >> 1; */
-+ lsr r12, 1
-+ stdsp sp[4], r12
-+ /* ptr = (short const *)Dmod + pe; */
-+ add r12, r9, r12 << 1
-+
-+ /* ML0(hi, lo, (*fx)[0], ptr[0 + 17]);
-+ MLA(hi, lo, (*fx)[1], ptr[7 + 17]);
-+ MLA(hi, lo, (*fx)[2], ptr[6 + 17]);
-+ MLA(hi, lo, (*fx)[3], ptr[5 + 17]);
-+ MLA(hi, lo, (*fx)[4], ptr[4 + 17]);
-+ MLA(hi, lo, (*fx)[5], ptr[3 + 17]);
-+ MLA(hi, lo, (*fx)[6], ptr[2 + 17]);
-+ MLA(hi, lo, (*fx)[7], ptr[1 + 17]); */
-+ window_1 r11/*fx*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+
-+ /* MLN(hi, lo); */
-+ neg r0
-+ acr r1
-+ neg r1
-+
-+ /* MLA(hi, lo, (*fe)[0], ptr[0]);
-+ MLA(hi, lo, (*fe)[1], ptr[7]);
-+ MLA(hi, lo, (*fe)[2], ptr[6]);
-+ MLA(hi, lo, (*fe)[3], ptr[5]);
-+ MLA(hi, lo, (*fe)[4], ptr[4]);
-+ MLA(hi, lo, (*fe)[5], ptr[3]);
-+ MLA(hi, lo, (*fe)[6], ptr[2]);
-+ MLA(hi, lo, (*fe)[7], ptr[1]); */
-+ window_1 lr/*fe*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+ /* *pcm1++ = SHIFT(MLZ(hi, lo));
-+
-+ pcm2 = pcm1 + 31; */
-+ scale r1, r0, r1
-+ st.w r10/*pcm_1*/++, r1
-+ sub r11/*pcm2*/, r10, -4*31
-+
-+ /* for (sb = 1; sb < 16; ++sb) { */
-+ mov r2, 15
-+ stdsp sp[0], r2
-+odd_loop:
-+ /* ++fe;
-+ ptr += 33; */
-+ sub lr /*fe*/, -8*4
-+ sub r12, -33*2
-+
-+ /* ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
-+ MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
-+ MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
-+ MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
-+ MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
-+ MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
-+ MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
-+ MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
-+ window_1 r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+ /* MLN(hi, lo); */
-+
-+ neg r0
-+ acr r1
-+ neg r1
-+
-+ /* MLA(hi, lo, (*fe)[7], ptr[1]);
-+ MLA(hi, lo, (*fe)[6], ptr[2]);
-+ MLA(hi, lo, (*fe)[5], ptr[3]);
-+ MLA(hi, lo, (*fe)[4], ptr[4]);
-+ MLA(hi, lo, (*fe)[3], ptr[5]);
-+ MLA(hi, lo, (*fe)[2], ptr[6]);
-+ MLA(hi, lo, (*fe)[1], ptr[7]);
-+ MLA(hi, lo, (*fe)[0], ptr[0]); */
-+ window_1 lr/*fe*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+ /* ptr -= 2*pe; */
-+ lddsp r2, sp[4]
-+
-+ /* *pcm1++ = SHIFT(MLZ(hi, lo)); */
-+
-+ scale r1, r0, r1
-+ sub r12/*ptr*/, r12, r2/*pe*/<< 2
-+ st.w r10/*pcm_1*/++, r1
-+
-+
-+ /* ML0(hi, lo, (*fe)[0], ptr[7 + 17]);
-+ MLA(hi, lo, (*fe)[1], ptr[8 + 17]);
-+ MLA(hi, lo, (*fe)[2], ptr[9 + 17]);
-+ MLA(hi, lo, (*fe)[3], ptr[10 + 17]);
-+ MLA(hi, lo, (*fe)[4], ptr[11 + 17]);
-+ MLA(hi, lo, (*fe)[5], ptr[12 + 17]);
-+ MLA(hi, lo, (*fe)[6], ptr[13 + 17]);
-+ MLA(hi, lo, (*fe)[7], ptr[14 + 17]); */
-+ window_2 lr/*fe*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+ /* MLA(hi, lo, (*fo)[7], ptr[14]);
-+ MLA(hi, lo, (*fo)[6], ptr[13]);
-+ MLA(hi, lo, (*fo)[5], ptr[12]);
-+ MLA(hi, lo, (*fo)[4], ptr[11]);
-+ MLA(hi, lo, (*fo)[3], ptr[10]);
-+ MLA(hi, lo, (*fo)[2], ptr[9]);
-+ MLA(hi, lo, (*fo)[1], ptr[8]);
-+ MLA(hi, lo, (*fo)[0], ptr[7]); */
-+ window_2 r8/*fo*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+
-+ /* *pcm2-- = SHIFT(MLZ(hi, lo)); */
-+ lddsp r3, sp[4]
-+ lddsp r2, sp[0]
-+ scale r1, r0, r1
-+ st.w --r11/*pcm_2*/, r1
-+
-+ /* ptr += 2*pe; */
-+ add r12/*ptr*/, r12, r3/*pe*/<< 2
-+
-+ /* ++fo;
-+ } */
-+ sub r8/*fo*/, -8*4
-+
-+ sub r2, 1
-+ stdsp sp[0], r2
-+ brne odd_loop
-+
-+ /* ptr += 33; */
-+ sub r12/*ptr*/, -33*2
-+
-+ /* ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
-+ MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
-+ MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
-+ MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
-+ MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
-+ MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
-+ MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
-+ MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
-+ window_1 r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+
-+ rjmp synth_end
-+synth_even:
-+ /* Filter for even phases */
-+
-+ /* fe = &(*filter)[0][0][0];
-+ fx = &(*filter)[0][1][0];
-+ fo = &(*filter)[1][1][0]; */
-+ sub lr /*fx*/, r11, -16*8*4
-+ sub r8 /*fo*/, r11, -(16*8*4*2 + 16*8*4)
-+
-+ /* po = ((phase - 1) & 0xF) >> 1; */
-+ sub r12, 1
-+ andl r12, 0xe, COH
-+ stdsp sp[4], r12
-+ /* ptr = (short const *)Dmod + po; */
-+ add r12, r9, r12
-+
-+ /* ML0(hi, lo, (*fx)[0], ptr[0 + 17]);
-+ MLA(hi, lo, (*fx)[1], ptr[7 + 17]);
-+ MLA(hi, lo, (*fx)[2], ptr[6 + 17]);
-+ MLA(hi, lo, (*fx)[3], ptr[5 + 17]);
-+ MLA(hi, lo, (*fx)[4], ptr[4 + 17]);
-+ MLA(hi, lo, (*fx)[5], ptr[3 + 17]);
-+ MLA(hi, lo, (*fx)[6], ptr[2 + 17]);
-+ MLA(hi, lo, (*fx)[7], ptr[1 + 17]); */
-+ window_1 lr/*fx*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+
-+ /* MLN(hi, lo); */
-+ neg r0
-+ acr r1
-+ neg r1
-+
-+ /* MLA(hi, lo, (*fe)[0], ptr[0 + 1]);
-+ MLA(hi, lo, (*fe)[1], ptr[7 + 1]);
-+ MLA(hi, lo, (*fe)[2], ptr[6 + 1]);
-+ MLA(hi, lo, (*fe)[3], ptr[5 + 1]);
-+ MLA(hi, lo, (*fe)[4], ptr[4 + 1]);
-+ MLA(hi, lo, (*fe)[5], ptr[3 + 1]);
-+ MLA(hi, lo, (*fe)[6], ptr[2 + 1]);
-+ MLA(hi, lo, (*fe)[7], ptr[1 + 1]); */
-+ window_1 r11/*fe*/,r12/*ptr*/,r0/*acc*/,1/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+ /* *pcm1++ = SHIFT(MLZ(hi, lo));
-+
-+ pcm2 = pcm1 + 31; */
-+ scale r1, r0, r1
-+ st.w r10/*pcm_1*/++, r1
-+ sub lr/*pcm2*/, r10, -4*31
-+
-+ /* for (sb = 1; sb < 16; ++sb) { */
-+ mov r2, 15
-+ stdsp sp[0], r2
-+even_loop:
-+ /* ++fe;
-+ ptr += 33; */
-+ sub r11 /*fe*/, -8*4
-+ sub r12, -33*2
-+
-+ /* ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
-+ MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
-+ MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
-+ MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
-+ MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
-+ MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
-+ MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
-+ MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
-+ window_1 r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+ /* MLN(hi, lo); */
-+ neg r0
-+ acr r1
-+ neg r1
-+
-+ /* MLA(hi, lo, (*fe)[7], ptr[1 + 1]);
-+ MLA(hi, lo, (*fe)[6], ptr[2 + 1]);
-+ MLA(hi, lo, (*fe)[5], ptr[3 + 1]);
-+ MLA(hi, lo, (*fe)[4], ptr[4 + 1]);
-+ MLA(hi, lo, (*fe)[3], ptr[5 + 1]);
-+ MLA(hi, lo, (*fe)[2], ptr[6 + 1]);
-+ MLA(hi, lo, (*fe)[1], ptr[7 + 1]);
-+ MLA(hi, lo, (*fe)[0], ptr[0 + 1]); */
-+ window_1 r11/*fe*/,r12/*ptr*/,r0/*acc*/,1/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+ /* *pcm1++ = SHIFT(MLZ(hi, lo)); */
-+ lddsp r2, sp[4]
-+ scale r1, r0, r1
-+ /* ptr -= 2*po; */
-+ sub r12/*ptr*/, r12, r2/*po*/<< 1
-+ st.w r10/*pcm_1*/++, r1
-+
-+
-+ /* ML0(hi, lo, (*fe)[0], ptr[7 + 17 - 1]);
-+ MLA(hi, lo, (*fe)[1], ptr[8 + 17 - 1]);
-+ MLA(hi, lo, (*fe)[2], ptr[9 + 17 - 1]);
-+ MLA(hi, lo, (*fe)[3], ptr[10 + 17 - 1]);
-+ MLA(hi, lo, (*fe)[4], ptr[11 + 17 - 1]);
-+ MLA(hi, lo, (*fe)[5], ptr[12 + 17 - 1]);
-+ MLA(hi, lo, (*fe)[6], ptr[13 + 17 - 1]);
-+ MLA(hi, lo, (*fe)[7], ptr[14 + 17 - 1]); */
-+ window_2 r11/*fe*/,r12/*ptr*/,r0/*acc*/,16/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+ /* MLA(hi, lo, (*fo)[7], ptr[14]);
-+ MLA(hi, lo, (*fo)[6], ptr[13]);
-+ MLA(hi, lo, (*fo)[5], ptr[12]);
-+ MLA(hi, lo, (*fo)[4], ptr[11]);
-+ MLA(hi, lo, (*fo)[3], ptr[10]);
-+ MLA(hi, lo, (*fo)[2], ptr[9]);
-+ MLA(hi, lo, (*fo)[1], ptr[8]);
-+ MLA(hi, lo, (*fo)[0], ptr[7]); */
-+ window_2 r8/*fo*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+
-+ /* *pcm2-- = SHIFT(MLZ(hi, lo)); */
-+ lddsp r3, sp[4]
-+ lddsp r2, sp[0]
-+ scale r1, r0, r1
-+ st.w --lr/*pcm_2*/, r1
-+
-+ /* ptr += 2*po; */
-+ add r12/*ptr*/, r12, r3/*po*/<< 1
-+
-+ /* ++fo;
-+ } */
-+ sub r8/*fo*/, -8*4
-+
-+ sub r2, 1
-+ stdsp sp[0], r2
-+ brne even_loop
-+
-+ /* ptr += 33; */
-+ sub r12/*ptr*/, -33*2
-+
-+ /* ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
-+ MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
-+ MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
-+ MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
-+ MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
-+ MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
-+ MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
-+ MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
-+ window_1 r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+
-+
-+
-+synth_end:
-+ /* *pcm1 = SHIFT(-MLZ(hi, lo)); */
-+ scale r1, r0, r1
-+ neg r1
-+ st.w r10/*pcm_1*/, r1
-+
-+ mov r12, r10
-+ sub sp, -8
-+ popm r0-r7, pc
-+
-+
-+
-+
-+
+++ /dev/null
-libmad: remove deprecated cflags (-fforce-mem)
-
-fforce-mem has long been deprecated, and is completely removed from
-gcc 4.3.x on.
----
- configure | 1 -
- configure.ac | 1 -
- 2 files changed, 2 deletions(-)
-
-Index: libmad-0.15.1b/configure.ac
-===================================================================
---- libmad-0.15.1b.orig/configure.ac
-+++ libmad-0.15.1b/configure.ac
-@@ -140,7 +140,6 @@
- case "$optimize" in
- -O|"-O "*)
- optimize="-O"
-- optimize="$optimize -fforce-mem"
- optimize="$optimize -fforce-addr"
- : #x optimize="$optimize -finline-functions"
- : #- optimize="$optimize -fstrength-reduce"
-Index: libmad-0.15.1b/configure
-===================================================================
---- libmad-0.15.1b.orig/configure
-+++ libmad-0.15.1b/configure
-@@ -19099,7 +19099,6 @@
- case "$optimize" in
- -O|"-O "*)
- optimize="-O"
-- optimize="$optimize -fforce-mem"
- optimize="$optimize -fforce-addr"
- : #x optimize="$optimize -finline-functions"
- : #- optimize="$optimize -fstrength-reduce"
+++ /dev/null
-Fixes Thumb2-related build failure
-
-Patch below comes from the Debian libmad package.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-From: Dave Martin
-Subject: "rsc" doesnt exist anymore in thumb2
-
-diff --git a/fixed.h b/fixed.h
-index 4b58abf..ba4bc26 100644
---- a/fixed.h
-+++ b/fixed.h
-@@ -275,12 +275,25 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
- : "+r" (lo), "+r" (hi) \
- : "%r" (x), "r" (y))
-
-+#ifdef __thumb__
-+/* In Thumb-2, the RSB-immediate instruction is only allowed with a zero
-+ operand. If needed this code can also support Thumb-1
-+ (simply append "s" to the end of the second two instructions). */
-+# define MAD_F_MLN(hi, lo) \
-+ asm ("rsbs %0, %0, #0\n\t" \
-+ "sbc %1, %1, %1\n\t" \
-+ "sub %1, %1, %2" \
-+ : "+&r" (lo), "=&r" (hi) \
-+ : "r" (hi) \
-+ : "cc")
-+#else /* ! __thumb__ */
- # define MAD_F_MLN(hi, lo) \
- asm ("rsbs %0, %2, #0\n\t" \
- "rsc %1, %3, #0" \
-- : "=r" (lo), "=r" (hi) \
-+ : "=&r" (lo), "=r" (hi) \
- : "0" (lo), "1" (hi) \
- : "cc")
-+#endif /* __thumb__ */
-
- # define mad_f_scale64(hi, lo) \
- ({ mad_fixed_t __result; \
+++ /dev/null
-Fixes Thumb2 related build failure
-
-Patch below comes from the Debian libmad package.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-From: Konstantinos Margaritis <markos@debian.org>
-Subject: use "adr" instead of "add" to make code ready for thumb2
-
---- ./imdct_l_arm.S.orig 2010-02-25 13:25:23.000000000 +0100
-+++ ./imdct_l_arm.S 2010-02-25 13:27:26.000000000 +0100
-@@ -468,7 +468,7 @@
-
- @----
-
-- add r2, pc, #(imdct36_long_karray-.-8) @ r2 = base address of Knn array (PIC safe ?)
-+ adr r2, imdct36_long_karray
-
-
- loop:
--- /dev/null
+libmcrypt doesn't use C++ so remove the check.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura libmcrypt-2.5.8.orig/configure.in libmcrypt-2.5.8/configure.in
+--- libmcrypt-2.5.8.orig/configure.in 2013-01-07 12:20:44.332200669 -0300
++++ libmcrypt-2.5.8/configure.in 2013-01-07 12:20:50.405390565 -0300
+@@ -19,7 +19,6 @@
+
+ AC_PROG_MAKE_SET
+
+-AC_PROG_CXX
+ AC_PROG_CC
+ AC_PROG_CPP
+ AC_PROG_INSTALL
+++ /dev/null
-libmcrypt doesn't use C++ so remove the check.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura libmcrypt-2.5.8.orig/configure.in libmcrypt-2.5.8/configure.in
---- libmcrypt-2.5.8.orig/configure.in 2013-01-07 12:20:44.332200669 -0300
-+++ libmcrypt-2.5.8/configure.in 2013-01-07 12:20:50.405390565 -0300
-@@ -19,7 +19,6 @@
-
- AC_PROG_MAKE_SET
-
--AC_PROG_CXX
- AC_PROG_CC
- AC_PROG_CPP
- AC_PROG_INSTALL
--- /dev/null
+From ae2acfa7d287e3ffc0bb66091059b86f62775bd5 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Tue, 10 Sep 2013 15:24:47 -0300
+Subject: [PATCH] configure: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index dcd3cf8..313a015 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,7 +17,7 @@ AC_DISABLE_STATIC
+ LT_INIT
+ CHECK_GCC_FVISIBILITY
+ case "$host" in
+-*-*-linux*) ;;
++*-*-linux* | *-*-uclinux*) ;;
+ *) AC_MSG_ERROR([Linux only, dude!]);;
+ esac
+
+--
+1.8.1.5
+
+++ /dev/null
-From ae2acfa7d287e3ffc0bb66091059b86f62775bd5 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 15:24:47 -0300
-Subject: [PATCH] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index dcd3cf8..313a015 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -17,7 +17,7 @@ AC_DISABLE_STATIC
- LT_INIT
- CHECK_GCC_FVISIBILITY
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-1.8.1.5
-
--- /dev/null
+From cc2ffe943dd36a4c95ec34b2f2bf413de15b7974 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
+Date: Fri, 11 Jul 2014 08:56:49 +0200
+Subject: POSIX says fd_set is defined by <sys/select.h>
+
+Haiku requires this.
+
+cf.
+http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/select.h.html
+
+Also guard sys/select.h by ifndef WIN32 as Mingw32 doesn't provide it.
+We'll avoid a configure check just for this.
+
+diff --git a/src/socket.c b/src/socket.c
+index f76510c..2aa5f7f 100644
+--- a/src/socket.c
++++ b/src/socket.c
+@@ -43,6 +43,7 @@
+ #else
+ # include <netinet/in.h>
+ # include <arpa/inet.h>
++# include <sys/select.h>
+ # include <sys/socket.h>
+ # include <netdb.h>
+ # include <sys/un.h>
+diff --git a/src/sync.c b/src/sync.c
+index 43cfe50..0a6c9d3 100644
+--- a/src/sync.c
++++ b/src/sync.c
+@@ -33,6 +33,9 @@
+ #include <assert.h>
+ #include <stdlib.h>
+ #include <stdio.h>
++#ifndef WIN32
++#include <sys/select.h>
++#endif
+ #include <fcntl.h>
+ #include <unistd.h>
+
+--
+cgit v0.10-2-gd358
+++ /dev/null
-From cc2ffe943dd36a4c95ec34b2f2bf413de15b7974 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
-Date: Fri, 11 Jul 2014 08:56:49 +0200
-Subject: POSIX says fd_set is defined by <sys/select.h>
-
-Haiku requires this.
-
-cf.
-http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/select.h.html
-
-Also guard sys/select.h by ifndef WIN32 as Mingw32 doesn't provide it.
-We'll avoid a configure check just for this.
-
-diff --git a/src/socket.c b/src/socket.c
-index f76510c..2aa5f7f 100644
---- a/src/socket.c
-+++ b/src/socket.c
-@@ -43,6 +43,7 @@
- #else
- # include <netinet/in.h>
- # include <arpa/inet.h>
-+# include <sys/select.h>
- # include <sys/socket.h>
- # include <netdb.h>
- # include <sys/un.h>
-diff --git a/src/sync.c b/src/sync.c
-index 43cfe50..0a6c9d3 100644
---- a/src/sync.c
-+++ b/src/sync.c
-@@ -33,6 +33,9 @@
- #include <assert.h>
- #include <stdlib.h>
- #include <stdio.h>
-+#ifndef WIN32
-+#include <sys/select.h>
-+#endif
- #include <fcntl.h>
- #include <unistd.h>
-
---
-cgit v0.10-2-gd358
--- /dev/null
+[PATCH] fix altivec.h detection
+
+Patch from Gentoo:
+
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/libmpeg2/files/libmpeg2-0.5.1-altivec.patch?revision=1.1&view=markup
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+--- a/configure.ac.bak 2010-05-25 17:12:14.756245990 +0000
++++ b/configure.ac 2010-05-25 17:11:51.629581723 +0000
+@@ -79,11 +79,10 @@
+ CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
+ AC_MSG_CHECKING([if <altivec.h> is needed])
+ AC_TRY_COMPILE([],
+- [typedef vector int t;
+- vec_ld(0, (unsigned char *)0);],
++ [vector int t; t = vec_add(t,t);],
+ [have_altivec=yes; AC_MSG_RESULT(no)],
+ [AC_TRY_COMPILE([#include <altivec.h>],
+- [typedef vector int t; vec_ld(0, (unsigned char *)0);],
++ [vector int t; t = vec_add(t,t);],
+ [AC_DEFINE([HAVE_ALTIVEC_H],,
+ [Define to 1 if you have the <altivec.h> header.])
+ have_altivec=yes; AC_MSG_RESULT(yes)],
--- /dev/null
+Patch taken from gentoo.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -urNp libmpeg2.orig/libmpeg2/motion_comp_arm_s.S libmpeg2/libmpeg2/motion_comp_arm_s.S
+--- libmpeg2.orig/libmpeg2/motion_comp_arm_s.S 2008-07-09 21:16:05.000000000 +0200
++++ libmpeg2/libmpeg2/motion_comp_arm_s.S 2009-11-20 19:55:22.000000000 +0100
+@@ -19,6 +19,16 @@
+ @ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
++@ Data preload is supported only by ARM V5TE and above
++
++#if (defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
++ || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
++ || defined (__ARM_ARCH_4T__) || defined (__ARM_ARCH_5__) \
++ || defined (__ARM_ARCH_5T__))
++.macro pld reg
++.endm
++#endif
++
+ .text
+
+ @ ----------------------------------------------------------------
+++ /dev/null
-[PATCH] fix altivec.h detection
-
-Patch from Gentoo:
-
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/libmpeg2/files/libmpeg2-0.5.1-altivec.patch?revision=1.1&view=markup
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---- a/configure.ac.bak 2010-05-25 17:12:14.756245990 +0000
-+++ b/configure.ac 2010-05-25 17:11:51.629581723 +0000
-@@ -79,11 +79,10 @@
- CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
- AC_MSG_CHECKING([if <altivec.h> is needed])
- AC_TRY_COMPILE([],
-- [typedef vector int t;
-- vec_ld(0, (unsigned char *)0);],
-+ [vector int t; t = vec_add(t,t);],
- [have_altivec=yes; AC_MSG_RESULT(no)],
- [AC_TRY_COMPILE([#include <altivec.h>],
-- [typedef vector int t; vec_ld(0, (unsigned char *)0);],
-+ [vector int t; t = vec_add(t,t);],
- [AC_DEFINE([HAVE_ALTIVEC_H],,
- [Define to 1 if you have the <altivec.h> header.])
- have_altivec=yes; AC_MSG_RESULT(yes)],
+++ /dev/null
-Patch taken from gentoo.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -urNp libmpeg2.orig/libmpeg2/motion_comp_arm_s.S libmpeg2/libmpeg2/motion_comp_arm_s.S
---- libmpeg2.orig/libmpeg2/motion_comp_arm_s.S 2008-07-09 21:16:05.000000000 +0200
-+++ libmpeg2/libmpeg2/motion_comp_arm_s.S 2009-11-20 19:55:22.000000000 +0100
-@@ -19,6 +19,16 @@
- @ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-+@ Data preload is supported only by ARM V5TE and above
-+
-+#if (defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
-+ || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
-+ || defined (__ARM_ARCH_4T__) || defined (__ARM_ARCH_5__) \
-+ || defined (__ARM_ARCH_5T__))
-+.macro pld reg
-+.endm
-+#endif
-+
- .text
-
- @ ----------------------------------------------------------------
--- /dev/null
+From bfcaf00a8c972e2c10412d917f08626eb05079c7 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Tue, 10 Sep 2013 15:32:03 -0300
+Subject: [PATCH] configure: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ad1bef8..24a7bb9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,7 +22,7 @@ AC_DISABLE_STATIC
+ LT_INIT
+ CHECK_GCC_FVISIBILITY
+ case "$host" in
+-*-*-linux*) ;;
++*-*-linux* | *-*-uclinux*) ;;
+ *) AC_MSG_ERROR([Linux only, dude!]);;
+ esac
+
+--
+1.8.1.5
+
+++ /dev/null
-From bfcaf00a8c972e2c10412d917f08626eb05079c7 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 15:32:03 -0300
-Subject: [PATCH] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index ad1bef8..24a7bb9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,7 +22,7 @@ AC_DISABLE_STATIC
- LT_INIT
- CHECK_GCC_FVISIBILITY
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-1.8.1.5
-
--- /dev/null
+From d028334281b218209412ec6e1dba56ca96320bd9 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Tue, 10 Sep 2013 16:08:29 -0300
+Subject: [PATCH] configure: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index d52b1ce..9389b70 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,7 +22,7 @@ AC_DISABLE_STATIC
+ LT_INIT
+ CHECK_GCC_FVISIBILITY
+ case "$host" in
+-*-*-linux*) ;;
++*-*-linux* | *-*-uclinux*) ;;
+ *) AC_MSG_ERROR([Linux only, dude!]);;
+ esac
+
+--
+1.8.1.5
+
+++ /dev/null
-From d028334281b218209412ec6e1dba56ca96320bd9 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 16:08:29 -0300
-Subject: [PATCH] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index d52b1ce..9389b70 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,7 +22,7 @@ AC_DISABLE_STATIC
- LT_INIT
- CHECK_GCC_FVISIBILITY
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-1.8.1.5
-
--- /dev/null
+From d8d2ec14bc192f998afae2b71c69248e73518ddf Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Tue, 10 Sep 2013 16:09:14 -0300
+Subject: [PATCH] configure: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index d79e941..aeb6ad0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,7 +22,7 @@ AC_DISABLE_STATIC
+ LT_INIT
+ CHECK_GCC_FVISIBILITY
+ case "$host" in
+-*-*-linux*) ;;
++*-*-linux* | *-*-uclinux*) ;;
+ *) AC_MSG_ERROR([Linux only, dude!]);;
+ esac
+
+--
+1.8.1.5
+
+++ /dev/null
-From d8d2ec14bc192f998afae2b71c69248e73518ddf Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 16:09:14 -0300
-Subject: [PATCH] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index d79e941..aeb6ad0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,7 +22,7 @@ AC_DISABLE_STATIC
- LT_INIT
- CHECK_GCC_FVISIBILITY
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-1.8.1.5
-
--- /dev/null
+From e36a2377e7ec50f6f675eb41f79edcda6ddebe5c Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Tue, 10 Sep 2013 15:48:50 -0300
+Subject: [PATCH] configure: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index e6e1317..189a753 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,7 +20,7 @@ AC_PROG_INSTALL
+ AC_PROG_LN_S
+
+ case "$host" in
+-*-*-linux*) ;;
++*-*-linux* | *-*-uclinux*) ;;
+ *) AC_MSG_ERROR([Linux only, dude!]);;
+ esac
+
+--
+1.8.1.5
+
+++ /dev/null
-From e36a2377e7ec50f6f675eb41f79edcda6ddebe5c Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 15:48:50 -0300
-Subject: [PATCH] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index e6e1317..189a753 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -20,7 +20,7 @@ AC_PROG_INSTALL
- AC_PROG_LN_S
-
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-1.8.1.5
-
--- /dev/null
+From 311b60655761f6f3c4fe44cf6eff63427283f25e Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Tue, 10 Sep 2013 16:13:58 -0300
+Subject: [PATCH] configure: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 07747a6..289868f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,7 +21,7 @@ AC_PROG_INSTALL
+ CHECK_GCC_FVISIBILITY
+
+ case "$host" in
+-*-*-linux*) ;;
++*-*-linux* | *-*-uclinux*) ;;
+ *) AC_MSG_ERROR([Linux only, dude!]);;
+ esac
+
+--
+1.8.1.5
+
+++ /dev/null
-From 311b60655761f6f3c4fe44cf6eff63427283f25e Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 16:13:58 -0300
-Subject: [PATCH] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 07747a6..289868f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -21,7 +21,7 @@ AC_PROG_INSTALL
- CHECK_GCC_FVISIBILITY
-
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-1.8.1.5
-
--- /dev/null
+From 40a4871b171293d98acb40cf54be9ee9b78a3244 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Wed, 6 Jun 2012 00:49:25 +0200
+Subject: [PATCH 1/1] build systems: make example build optional
+
+This patch makes example build optional for both cmake and autotools build
+systems.
+
+In order to keep the former behavior, example build is enabled by default.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+diff -Nurp a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2013-12-08 18:51:01.000000000 +0000
++++ b/CMakeLists.txt 2014-01-08 12:51:42.435096403 +0000
+@@ -39,6 +39,7 @@ IF(LIBNFC_ENVVARS)
+ ADD_DEFINITIONS(-DENVVARS)
+ ENDIF(LIBNFC_ENVVARS)
+
++SET(BUILD_EXAMPLES ON CACHE BOOL "Build examples")
+ SET(LIBNFC_DEBUG_MODE OFF CACHE BOOL "Debug mode")
+ IF(LIBNFC_DEBUG_MODE)
+ ADD_DEFINITIONS(-DDEBUG)
+@@ -155,7 +156,10 @@ ENDIF(WIN32)
+ ADD_SUBDIRECTORY(libnfc)
+ ADD_SUBDIRECTORY(include)
+ ADD_SUBDIRECTORY(utils)
+-ADD_SUBDIRECTORY(examples)
++
++IF(BUILD_EXAMPLES)
++ ADD_SUBDIRECTORY(examples)
++ENDIF(BUILD_EXAMPLES)
+
+ # Binary Package
+ IF(WIN32)
+diff -Nurp a/Makefile.am b/Makefile.am
+--- a/Makefile.am 2013-12-08 18:51:01.000000000 +0000
++++ b/Makefile.am 2014-01-08 12:52:12.807018593 +0000
+@@ -2,7 +2,13 @@ ACLOCAL_AMFLAGS = -I m4
+
+ AM_CFLAGS = $(LIBNFC_CFLAGS)
+
+-SUBDIRS = libnfc utils examples include contrib cmake test
++SUBDIRS = libnfc utils
++
++if EXAMPLE_ENABLED
++SUBDIRS += examples
++endif
++
++SUBDIRS += include contrib cmake test
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = libnfc.pc
+diff -Nurp a/configure.ac b/configure.ac
+--- a/configure.ac 2013-12-08 18:51:01.000000000 +0000
++++ b/configure.ac 2014-01-08 12:53:02.054872564 +0000
+@@ -142,6 +142,14 @@ then
+ fi
+ AM_CONDITIONAL(DOC_ENABLED, [test x"$enable_doc" = xyes])
+
++# Example build (default: yes)
++AC_ARG_ENABLE([example],AS_HELP_STRING([--enable-example],[Enable example build.]),[enable_example=$enableval],[enable_example="yes"])
++
++AC_MSG_CHECKING(for example build)
++AC_MSG_RESULT($enable_example)
++
++AM_CONDITIONAL(EXAMPLE_ENABLED, [test x"$enable_example" = xyes])
++
+ # Dependencies
+ PKG_CONFIG_REQUIRES=""
+
+@@ -160,7 +168,10 @@ if test x$ac_cv_with_cutter = xyes -a x$
+ fi
+ AM_CONDITIONAL([WITH_CUTTER], [test "$ac_cv_use_cutter" != "no"])
+
++if test x"$enable_example" = "xyes"
++then
+ AC_CHECK_READLINE
++fi
+
+ # Help us to write great code ;-)
+ CFLAGS="$CFLAGS -Wall -pedantic -Wextra"
+++ /dev/null
-From 40a4871b171293d98acb40cf54be9ee9b78a3244 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Wed, 6 Jun 2012 00:49:25 +0200
-Subject: [PATCH 1/1] build systems: make example build optional
-
-This patch makes example build optional for both cmake and autotools build
-systems.
-
-In order to keep the former behavior, example build is enabled by default.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
-diff -Nurp a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt 2013-12-08 18:51:01.000000000 +0000
-+++ b/CMakeLists.txt 2014-01-08 12:51:42.435096403 +0000
-@@ -39,6 +39,7 @@ IF(LIBNFC_ENVVARS)
- ADD_DEFINITIONS(-DENVVARS)
- ENDIF(LIBNFC_ENVVARS)
-
-+SET(BUILD_EXAMPLES ON CACHE BOOL "Build examples")
- SET(LIBNFC_DEBUG_MODE OFF CACHE BOOL "Debug mode")
- IF(LIBNFC_DEBUG_MODE)
- ADD_DEFINITIONS(-DDEBUG)
-@@ -155,7 +156,10 @@ ENDIF(WIN32)
- ADD_SUBDIRECTORY(libnfc)
- ADD_SUBDIRECTORY(include)
- ADD_SUBDIRECTORY(utils)
--ADD_SUBDIRECTORY(examples)
-+
-+IF(BUILD_EXAMPLES)
-+ ADD_SUBDIRECTORY(examples)
-+ENDIF(BUILD_EXAMPLES)
-
- # Binary Package
- IF(WIN32)
-diff -Nurp a/Makefile.am b/Makefile.am
---- a/Makefile.am 2013-12-08 18:51:01.000000000 +0000
-+++ b/Makefile.am 2014-01-08 12:52:12.807018593 +0000
-@@ -2,7 +2,13 @@ ACLOCAL_AMFLAGS = -I m4
-
- AM_CFLAGS = $(LIBNFC_CFLAGS)
-
--SUBDIRS = libnfc utils examples include contrib cmake test
-+SUBDIRS = libnfc utils
-+
-+if EXAMPLE_ENABLED
-+SUBDIRS += examples
-+endif
-+
-+SUBDIRS += include contrib cmake test
-
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = libnfc.pc
-diff -Nurp a/configure.ac b/configure.ac
---- a/configure.ac 2013-12-08 18:51:01.000000000 +0000
-+++ b/configure.ac 2014-01-08 12:53:02.054872564 +0000
-@@ -142,6 +142,14 @@ then
- fi
- AM_CONDITIONAL(DOC_ENABLED, [test x"$enable_doc" = xyes])
-
-+# Example build (default: yes)
-+AC_ARG_ENABLE([example],AS_HELP_STRING([--enable-example],[Enable example build.]),[enable_example=$enableval],[enable_example="yes"])
-+
-+AC_MSG_CHECKING(for example build)
-+AC_MSG_RESULT($enable_example)
-+
-+AM_CONDITIONAL(EXAMPLE_ENABLED, [test x"$enable_example" = xyes])
-+
- # Dependencies
- PKG_CONFIG_REQUIRES=""
-
-@@ -160,7 +168,10 @@ if test x$ac_cv_with_cutter = xyes -a x$
- fi
- AM_CONDITIONAL([WITH_CUTTER], [test "$ac_cv_use_cutter" != "no"])
-
-+if test x"$enable_example" = "xyes"
-+then
- AC_CHECK_READLINE
-+fi
-
- # Help us to write great code ;-)
- CFLAGS="$CFLAGS -Wall -pedantic -Wextra"
--- /dev/null
+From 8e5a9d8f32c9646d01d8c84e979892dfd28a7f7c Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Tue, 10 Sep 2013 15:35:22 -0300
+Subject: [PATCH] configure: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0926a1c..b979772 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -18,7 +18,7 @@ AC_DISABLE_STATIC
+ AM_PROG_LIBTOOL
+
+ case "$host" in
+-*-*-linux*) ;;
++*-*-linux* | *-*-uclinux*) ;;
+ *) AC_MSG_ERROR([Linux only, dude!]);;
+ esac
+
+--
+1.8.1.5
+
+++ /dev/null
-From 8e5a9d8f32c9646d01d8c84e979892dfd28a7f7c Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 15:35:22 -0300
-Subject: [PATCH] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0926a1c..b979772 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -18,7 +18,7 @@ AC_DISABLE_STATIC
- AM_PROG_LIBTOOL
-
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-1.8.1.5
-
--- /dev/null
+netlink/netlink.h: As the poll() man page recommends include the <poll.h>
+instead of <sys/poll.h>. This removes an error when building libdl against
+the musl C library.
+
+Signed-off-by: Jörg Krause <jkrause@posteo.de>
+
+diff -purN libnl-3.2.25.orig/include/netlink/netlink.h libnl-3.2.25/include/netlink/netlink.h
+--- libnl-3.2.25.orig/include/netlink/netlink.h 2014-09-01 11:42:37.254724124 +0200
++++ libnl-3.2.25/include/netlink/netlink.h 2014-09-01 11:42:58.254724255 +0200
+@@ -16,7 +16,7 @@
+ #include <stdint.h>
+ #include <string.h>
+ #include <stdlib.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
+++ /dev/null
-netlink/netlink.h: As the poll() man page recommends include the <poll.h>
-instead of <sys/poll.h>. This removes an error when building libdl against
-the musl C library.
-
-Signed-off-by: Jörg Krause <jkrause@posteo.de>
-
-diff -purN libnl-3.2.25.orig/include/netlink/netlink.h libnl-3.2.25/include/netlink/netlink.h
---- libnl-3.2.25.orig/include/netlink/netlink.h 2014-09-01 11:42:37.254724124 +0200
-+++ libnl-3.2.25/include/netlink/netlink.h 2014-09-01 11:42:58.254724255 +0200
-@@ -16,7 +16,7 @@
- #include <stdint.h>
- #include <string.h>
- #include <stdlib.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/socket.h>
- #include <sys/types.h>
- #include <sys/time.h>
--- /dev/null
+Add Nios-II support
+
+[Gustavo: update for nspr 4.10.6]
+Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+
+diff -Nura nspr-4.10.6.orig/nspr/pr/include/md/_linux.cfg nspr-4.10.6/nspr/pr/include/md/_linux.cfg
+--- nspr-4.10.6.orig/nspr/pr/include/md/_linux.cfg 2014-06-18 10:26:22.447502521 -0300
++++ nspr-4.10.6/nspr/pr/include/md/_linux.cfg 2014-06-18 10:26:32.746850581 -0300
+@@ -924,6 +924,51 @@
+ #define PR_BYTES_PER_WORD_LOG2 2
+ #define PR_BYTES_PER_DWORD_LOG2 3
+
++#elif defined(nios2)
++
++#define IS_LITTLE_ENDIAN 1
++#undef IS_BIG_ENDIAN
++
++#define PR_BYTES_PER_BYTE 1
++#define PR_BYTES_PER_SHORT 2
++#define PR_BYTES_PER_INT 4
++#define PR_BYTES_PER_INT64 8
++#define PR_BYTES_PER_LONG 4
++#define PR_BYTES_PER_FLOAT 4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD 4
++#define PR_BYTES_PER_DWORD 8
++
++#define PR_BITS_PER_BYTE 8
++#define PR_BITS_PER_SHORT 16
++#define PR_BITS_PER_INT 32
++#define PR_BITS_PER_INT64 64
++#define PR_BITS_PER_LONG 32
++#define PR_BITS_PER_FLOAT 32
++#define PR_BITS_PER_DOUBLE 64
++#define PR_BITS_PER_WORD 32
++
++#define PR_BITS_PER_BYTE_LOG2 3
++#define PR_BITS_PER_SHORT_LOG2 4
++#define PR_BITS_PER_INT_LOG2 5
++#define PR_BITS_PER_INT64_LOG2 6
++#define PR_BITS_PER_LONG_LOG2 5
++#define PR_BITS_PER_FLOAT_LOG2 5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2 5
++
++#define PR_ALIGN_OF_SHORT 2
++#define PR_ALIGN_OF_INT 4
++#define PR_ALIGN_OF_LONG 4
++#define PR_ALIGN_OF_INT64 4
++#define PR_ALIGN_OF_FLOAT 4
++#define PR_ALIGN_OF_DOUBLE 4
++#define PR_ALIGN_OF_POINTER 4
++#define PR_ALIGN_OF_WORD 4
++
++#define PR_BYTES_PER_WORD_LOG2 2
++#define PR_BYTES_PER_DWORD_LOG2 3
++
+ #else
+
+ #error "Unknown CPU architecture"
+diff -Nura nspr-4.10.6.orig/nspr/pr/include/md/_linux.h nspr-4.10.6/nspr/pr/include/md/_linux.h
+--- nspr-4.10.6.orig/nspr/pr/include/md/_linux.h 2014-06-18 10:26:22.446502487 -0300
++++ nspr-4.10.6/nspr/pr/include/md/_linux.h 2014-06-18 10:26:32.747850615 -0300
+@@ -55,6 +55,8 @@
+ #define _PR_SI_ARCHITECTURE "avr32"
+ #elif defined(__m32r__)
+ #define _PR_SI_ARCHITECTURE "m32r"
++#elif defined(nios2)
++#define _PR_SI_ARCHITECTURE "nios2"
+ #else
+ #error "Unknown CPU architecture"
+ #endif
--- /dev/null
+Add Microblaze support
+
+[Gustavo: update for nspr 4.10.6]
+Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
+
+diff -Nura nspr-4.10.6.nios2/nspr/pr/include/md/_linux.cfg nspr-4.10.6/nspr/pr/include/md/_linux.cfg
+--- nspr-4.10.6.nios2/nspr/pr/include/md/_linux.cfg 2014-06-18 10:29:15.816361425 -0300
++++ nspr-4.10.6/nspr/pr/include/md/_linux.cfg 2014-06-18 10:26:59.908768508 -0300
+@@ -969,6 +969,56 @@
+ #define PR_BYTES_PER_WORD_LOG2 2
+ #define PR_BYTES_PER_DWORD_LOG2 3
+
++#elif defined(__microblaze__)
++
++#if defined(__BIG_ENDIAN__)
++#define IS_BIG_ENDIAN 1
++#undef IS_LITTLE_ENDIAN
++#else
++#define IS_LITTLE_ENDIAN 1
++#undef IS_BIG_ENDIAN
++#endif
++
++#define PR_BYTES_PER_BYTE 1
++#define PR_BYTES_PER_SHORT 2
++#define PR_BYTES_PER_INT 4
++#define PR_BYTES_PER_INT64 8
++#define PR_BYTES_PER_LONG 4
++#define PR_BYTES_PER_FLOAT 4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD 4
++#define PR_BYTES_PER_DWORD 8
++
++#define PR_BITS_PER_BYTE 8
++#define PR_BITS_PER_SHORT 16
++#define PR_BITS_PER_INT 32
++#define PR_BITS_PER_INT64 64
++#define PR_BITS_PER_LONG 32
++#define PR_BITS_PER_FLOAT 32
++#define PR_BITS_PER_DOUBLE 64
++#define PR_BITS_PER_WORD 32
++
++#define PR_BITS_PER_BYTE_LOG2 3
++#define PR_BITS_PER_SHORT_LOG2 4
++#define PR_BITS_PER_INT_LOG2 5
++#define PR_BITS_PER_INT64_LOG2 6
++#define PR_BITS_PER_LONG_LOG2 5
++#define PR_BITS_PER_FLOAT_LOG2 5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2 5
++
++#define PR_ALIGN_OF_SHORT 2
++#define PR_ALIGN_OF_INT 4
++#define PR_ALIGN_OF_LONG 4
++#define PR_ALIGN_OF_INT64 4
++#define PR_ALIGN_OF_FLOAT 4
++#define PR_ALIGN_OF_DOUBLE 4
++#define PR_ALIGN_OF_POINTER 4
++#define PR_ALIGN_OF_WORD 4
++
++#define PR_BYTES_PER_WORD_LOG2 2
++#define PR_BYTES_PER_DWORD_LOG2 3
++
+ #else
+
+ #error "Unknown CPU architecture"
+diff -Nura nspr-4.10.6.nios2/nspr/pr/include/md/_linux.h nspr-4.10.6/nspr/pr/include/md/_linux.h
+--- nspr-4.10.6.nios2/nspr/pr/include/md/_linux.h 2014-06-18 10:29:15.817361459 -0300
++++ nspr-4.10.6/nspr/pr/include/md/_linux.h 2014-06-18 10:26:59.909768537 -0300
+@@ -55,6 +55,8 @@
+ #define _PR_SI_ARCHITECTURE "avr32"
+ #elif defined(__m32r__)
+ #define _PR_SI_ARCHITECTURE "m32r"
++#elif defined(__microblaze__)
++#define _PR_SI_ARCHITECTURE "microblaze"
+ #elif defined(nios2)
+ #define _PR_SI_ARCHITECTURE "nios2"
+ #else
+++ /dev/null
-Add Nios-II support
-
-[Gustavo: update for nspr 4.10.6]
-Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
-
-diff -Nura nspr-4.10.6.orig/nspr/pr/include/md/_linux.cfg nspr-4.10.6/nspr/pr/include/md/_linux.cfg
---- nspr-4.10.6.orig/nspr/pr/include/md/_linux.cfg 2014-06-18 10:26:22.447502521 -0300
-+++ nspr-4.10.6/nspr/pr/include/md/_linux.cfg 2014-06-18 10:26:32.746850581 -0300
-@@ -924,6 +924,51 @@
- #define PR_BYTES_PER_WORD_LOG2 2
- #define PR_BYTES_PER_DWORD_LOG2 3
-
-+#elif defined(nios2)
-+
-+#define IS_LITTLE_ENDIAN 1
-+#undef IS_BIG_ENDIAN
-+
-+#define PR_BYTES_PER_BYTE 1
-+#define PR_BYTES_PER_SHORT 2
-+#define PR_BYTES_PER_INT 4
-+#define PR_BYTES_PER_INT64 8
-+#define PR_BYTES_PER_LONG 4
-+#define PR_BYTES_PER_FLOAT 4
-+#define PR_BYTES_PER_DOUBLE 8
-+#define PR_BYTES_PER_WORD 4
-+#define PR_BYTES_PER_DWORD 8
-+
-+#define PR_BITS_PER_BYTE 8
-+#define PR_BITS_PER_SHORT 16
-+#define PR_BITS_PER_INT 32
-+#define PR_BITS_PER_INT64 64
-+#define PR_BITS_PER_LONG 32
-+#define PR_BITS_PER_FLOAT 32
-+#define PR_BITS_PER_DOUBLE 64
-+#define PR_BITS_PER_WORD 32
-+
-+#define PR_BITS_PER_BYTE_LOG2 3
-+#define PR_BITS_PER_SHORT_LOG2 4
-+#define PR_BITS_PER_INT_LOG2 5
-+#define PR_BITS_PER_INT64_LOG2 6
-+#define PR_BITS_PER_LONG_LOG2 5
-+#define PR_BITS_PER_FLOAT_LOG2 5
-+#define PR_BITS_PER_DOUBLE_LOG2 6
-+#define PR_BITS_PER_WORD_LOG2 5
-+
-+#define PR_ALIGN_OF_SHORT 2
-+#define PR_ALIGN_OF_INT 4
-+#define PR_ALIGN_OF_LONG 4
-+#define PR_ALIGN_OF_INT64 4
-+#define PR_ALIGN_OF_FLOAT 4
-+#define PR_ALIGN_OF_DOUBLE 4
-+#define PR_ALIGN_OF_POINTER 4
-+#define PR_ALIGN_OF_WORD 4
-+
-+#define PR_BYTES_PER_WORD_LOG2 2
-+#define PR_BYTES_PER_DWORD_LOG2 3
-+
- #else
-
- #error "Unknown CPU architecture"
-diff -Nura nspr-4.10.6.orig/nspr/pr/include/md/_linux.h nspr-4.10.6/nspr/pr/include/md/_linux.h
---- nspr-4.10.6.orig/nspr/pr/include/md/_linux.h 2014-06-18 10:26:22.446502487 -0300
-+++ nspr-4.10.6/nspr/pr/include/md/_linux.h 2014-06-18 10:26:32.747850615 -0300
-@@ -55,6 +55,8 @@
- #define _PR_SI_ARCHITECTURE "avr32"
- #elif defined(__m32r__)
- #define _PR_SI_ARCHITECTURE "m32r"
-+#elif defined(nios2)
-+#define _PR_SI_ARCHITECTURE "nios2"
- #else
- #error "Unknown CPU architecture"
- #endif
+++ /dev/null
-Add Microblaze support
-
-[Gustavo: update for nspr 4.10.6]
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
-
-diff -Nura nspr-4.10.6.nios2/nspr/pr/include/md/_linux.cfg nspr-4.10.6/nspr/pr/include/md/_linux.cfg
---- nspr-4.10.6.nios2/nspr/pr/include/md/_linux.cfg 2014-06-18 10:29:15.816361425 -0300
-+++ nspr-4.10.6/nspr/pr/include/md/_linux.cfg 2014-06-18 10:26:59.908768508 -0300
-@@ -969,6 +969,56 @@
- #define PR_BYTES_PER_WORD_LOG2 2
- #define PR_BYTES_PER_DWORD_LOG2 3
-
-+#elif defined(__microblaze__)
-+
-+#if defined(__BIG_ENDIAN__)
-+#define IS_BIG_ENDIAN 1
-+#undef IS_LITTLE_ENDIAN
-+#else
-+#define IS_LITTLE_ENDIAN 1
-+#undef IS_BIG_ENDIAN
-+#endif
-+
-+#define PR_BYTES_PER_BYTE 1
-+#define PR_BYTES_PER_SHORT 2
-+#define PR_BYTES_PER_INT 4
-+#define PR_BYTES_PER_INT64 8
-+#define PR_BYTES_PER_LONG 4
-+#define PR_BYTES_PER_FLOAT 4
-+#define PR_BYTES_PER_DOUBLE 8
-+#define PR_BYTES_PER_WORD 4
-+#define PR_BYTES_PER_DWORD 8
-+
-+#define PR_BITS_PER_BYTE 8
-+#define PR_BITS_PER_SHORT 16
-+#define PR_BITS_PER_INT 32
-+#define PR_BITS_PER_INT64 64
-+#define PR_BITS_PER_LONG 32
-+#define PR_BITS_PER_FLOAT 32
-+#define PR_BITS_PER_DOUBLE 64
-+#define PR_BITS_PER_WORD 32
-+
-+#define PR_BITS_PER_BYTE_LOG2 3
-+#define PR_BITS_PER_SHORT_LOG2 4
-+#define PR_BITS_PER_INT_LOG2 5
-+#define PR_BITS_PER_INT64_LOG2 6
-+#define PR_BITS_PER_LONG_LOG2 5
-+#define PR_BITS_PER_FLOAT_LOG2 5
-+#define PR_BITS_PER_DOUBLE_LOG2 6
-+#define PR_BITS_PER_WORD_LOG2 5
-+
-+#define PR_ALIGN_OF_SHORT 2
-+#define PR_ALIGN_OF_INT 4
-+#define PR_ALIGN_OF_LONG 4
-+#define PR_ALIGN_OF_INT64 4
-+#define PR_ALIGN_OF_FLOAT 4
-+#define PR_ALIGN_OF_DOUBLE 4
-+#define PR_ALIGN_OF_POINTER 4
-+#define PR_ALIGN_OF_WORD 4
-+
-+#define PR_BYTES_PER_WORD_LOG2 2
-+#define PR_BYTES_PER_DWORD_LOG2 3
-+
- #else
-
- #error "Unknown CPU architecture"
-diff -Nura nspr-4.10.6.nios2/nspr/pr/include/md/_linux.h nspr-4.10.6/nspr/pr/include/md/_linux.h
---- nspr-4.10.6.nios2/nspr/pr/include/md/_linux.h 2014-06-18 10:29:15.817361459 -0300
-+++ nspr-4.10.6/nspr/pr/include/md/_linux.h 2014-06-18 10:26:59.909768537 -0300
-@@ -55,6 +55,8 @@
- #define _PR_SI_ARCHITECTURE "avr32"
- #elif defined(__m32r__)
- #define _PR_SI_ARCHITECTURE "m32r"
-+#elif defined(__microblaze__)
-+#define _PR_SI_ARCHITECTURE "microblaze"
- #elif defined(nios2)
- #define _PR_SI_ARCHITECTURE "nios2"
- #else
--- /dev/null
+This patch allows us to set a value for the cross compiler via TARGETCC without
+setting CC on the command line. CC is used for host tools as well as cross
+compiled code so we cannot define it on the command line without breaking
+the host tools build.
+
+[Gustavo: update for nss 3.16.1]
+[baruch: add OPTIMIZER handling]
+Signed-off-by: Will Newton <will.newton@imgtec.com>
+
+diff -Nuar nss-3.16.1-orig/nss/coreconf/Linux.mk nss-3.16.1/nss/coreconf/Linux.mk
+--- nss-3.16.1-orig/nss/coreconf/Linux.mk 2014-05-02 06:27:18.000000000 +0300
++++ nss-3.16.1/nss/coreconf/Linux.mk 2014-07-01 02:38:18.701480512 +0300
+@@ -16,9 +16,13 @@
+ IMPL_STRATEGY = _PTH
+ endif
+
+-CC = gcc
+-CCC = g++
+-RANLIB = ranlib
++TARGETCC = gcc
++TARGETCCC = g++
++TARGETRANLIB = ranlib
++
++CC = $(TARGETCC)
++CCC = $(TARGETCCC)
++RANLIB = $(TARGETRANLIB)
+
+ DEFAULT_COMPILER = gcc
+
+@@ -125,6 +129,7 @@
+ endif
+ endif
+
++OPTIMIZER = $(TARGET_OPTIMIZER)
+
+ ifeq ($(USE_PTHREADS),1)
+ OS_PTHREAD = -lpthread
+diff -Nuar nss-3.16.1-orig/nss/coreconf/nsinstall/Makefile nss-3.16.1/nss/coreconf/nsinstall/Makefile
+--- nss-3.16.1-orig/nss/coreconf/nsinstall/Makefile 2014-05-02 06:27:18.000000000 +0300
++++ nss-3.16.1/nss/coreconf/nsinstall/Makefile 2014-07-01 02:38:48.102185011 +0300
+@@ -31,6 +31,7 @@
+
+ ifdef NATIVE_FLAGS
+ OS_CFLAGS=$(NATIVE_FLAGS)
++OPTIMIZER=
+ endif
+
+ include $(DEPTH)/coreconf/rules.mk
--- /dev/null
+uCLibc does not define RTLD_NOLOAD.
+
+[Gustavo: update for nss 3.16.1]
+Signed-off-by: Will Newton <will.newton@imgtec.com>
+
+diff -Nura nss-3.16.1.orig/nss/lib/freebl/stubs.c nss-3.16.1/nss/lib/freebl/stubs.c
+--- nss-3.16.1.orig/nss/lib/freebl/stubs.c 2014-06-18 10:34:30.529997002 -0300
++++ nss-3.16.1/nss/lib/freebl/stubs.c 2014-06-18 10:36:25.508882650 -0300
+@@ -594,6 +594,11 @@
+ return SECSuccess;
+ }
+
++/* uClibc does not define RTLD_NOLOAD. */
++#ifndef RTLD_NOLOAD
++#define RTLD_NOLOAD 0
++#endif
++
+ /*
+ * fetch the library if it's loaded. For NSS it should already be loaded
+ */
+++ /dev/null
-This patch allows us to set a value for the cross compiler via TARGETCC without
-setting CC on the command line. CC is used for host tools as well as cross
-compiled code so we cannot define it on the command line without breaking
-the host tools build.
-
-[Gustavo: update for nss 3.16.1]
-[baruch: add OPTIMIZER handling]
-Signed-off-by: Will Newton <will.newton@imgtec.com>
-
-diff -Nuar nss-3.16.1-orig/nss/coreconf/Linux.mk nss-3.16.1/nss/coreconf/Linux.mk
---- nss-3.16.1-orig/nss/coreconf/Linux.mk 2014-05-02 06:27:18.000000000 +0300
-+++ nss-3.16.1/nss/coreconf/Linux.mk 2014-07-01 02:38:18.701480512 +0300
-@@ -16,9 +16,13 @@
- IMPL_STRATEGY = _PTH
- endif
-
--CC = gcc
--CCC = g++
--RANLIB = ranlib
-+TARGETCC = gcc
-+TARGETCCC = g++
-+TARGETRANLIB = ranlib
-+
-+CC = $(TARGETCC)
-+CCC = $(TARGETCCC)
-+RANLIB = $(TARGETRANLIB)
-
- DEFAULT_COMPILER = gcc
-
-@@ -125,6 +129,7 @@
- endif
- endif
-
-+OPTIMIZER = $(TARGET_OPTIMIZER)
-
- ifeq ($(USE_PTHREADS),1)
- OS_PTHREAD = -lpthread
-diff -Nuar nss-3.16.1-orig/nss/coreconf/nsinstall/Makefile nss-3.16.1/nss/coreconf/nsinstall/Makefile
---- nss-3.16.1-orig/nss/coreconf/nsinstall/Makefile 2014-05-02 06:27:18.000000000 +0300
-+++ nss-3.16.1/nss/coreconf/nsinstall/Makefile 2014-07-01 02:38:48.102185011 +0300
-@@ -31,6 +31,7 @@
-
- ifdef NATIVE_FLAGS
- OS_CFLAGS=$(NATIVE_FLAGS)
-+OPTIMIZER=
- endif
-
- include $(DEPTH)/coreconf/rules.mk
+++ /dev/null
-uCLibc does not define RTLD_NOLOAD.
-
-[Gustavo: update for nss 3.16.1]
-Signed-off-by: Will Newton <will.newton@imgtec.com>
-
-diff -Nura nss-3.16.1.orig/nss/lib/freebl/stubs.c nss-3.16.1/nss/lib/freebl/stubs.c
---- nss-3.16.1.orig/nss/lib/freebl/stubs.c 2014-06-18 10:34:30.529997002 -0300
-+++ nss-3.16.1/nss/lib/freebl/stubs.c 2014-06-18 10:36:25.508882650 -0300
-@@ -594,6 +594,11 @@
- return SECSuccess;
- }
-
-+/* uClibc does not define RTLD_NOLOAD. */
-+#ifndef RTLD_NOLOAD
-+#define RTLD_NOLOAD 0
-+#endif
-+
- /*
- * fetch the library if it's loaded. For NSS it should already be loaded
- */
--- /dev/null
+Remove hardcoded path to libnl3 include directory
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -445,7 +445,6 @@
+ AC_DEFINE(HAVE_LIBNL_3_x,1,[if libnl exists and is version 3.x])
+ AC_DEFINE(HAVE_LIBNL_NLE,1,[libnl has NLE_FAILURE])
+ AC_DEFINE(HAVE_LIBNL_SOCKETS,1,[libnl has new-style socket api])
+- V_INCLS="$V_INCLS -I/usr/include/libnl3"
+ have_any_nl="yes"
+ ])
+
--- /dev/null
+From a904d1e35be72d0821a6680a75060815bce86642 Mon Sep 17 00:00:00 2001
+Message-Id: <a904d1e35be72d0821a6680a75060815bce86642.1406266983.git.baruch@tkos.co.il>
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Fri, 25 Jul 2014 07:28:47 +0300
+Subject: [PATCH] configure.in: uclinux is also linux
+
+Also we need -lpthread for the test to build for noMMU targets.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+ configure.in | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 4530aed3a7d0..63f708b9b855 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1539,7 +1539,7 @@ AC_ARG_ENABLE([canusb],
+ if test "x$enable_canusb" != "xno" ; then
+ dnl check for canusb support
+ case "$host_os" in
+- linux*)
++ linux*|uclinux*)
+ AC_CHECK_HEADER(libusb-1.0/libusb.h,
+ [
+ AC_CHECK_LIB(usb-1.0, libusb_init,
+@@ -1549,7 +1549,8 @@ if test "x$enable_canusb" != "xno" ; then
+ LIBS="-lusb-1.0 -lpthread $LIBS"
+ ac_lbl_has_libusb=yes
+ ],
+- ac_lbl_has_libusb=no
++ ac_lbl_has_libusb=no,
++ -lpthread
+ )
+ ],
+ ac_lbl_has_libusb=no
+--
+2.0.1
+
+++ /dev/null
-Remove hardcoded path to libnl3 include directory
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.in
-===================================================================
---- a/configure.in
-+++ b/configure.in
-@@ -445,7 +445,6 @@
- AC_DEFINE(HAVE_LIBNL_3_x,1,[if libnl exists and is version 3.x])
- AC_DEFINE(HAVE_LIBNL_NLE,1,[libnl has NLE_FAILURE])
- AC_DEFINE(HAVE_LIBNL_SOCKETS,1,[libnl has new-style socket api])
-- V_INCLS="$V_INCLS -I/usr/include/libnl3"
- have_any_nl="yes"
- ])
-
+++ /dev/null
-From a904d1e35be72d0821a6680a75060815bce86642 Mon Sep 17 00:00:00 2001
-Message-Id: <a904d1e35be72d0821a6680a75060815bce86642.1406266983.git.baruch@tkos.co.il>
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Fri, 25 Jul 2014 07:28:47 +0300
-Subject: [PATCH] configure.in: uclinux is also linux
-
-Also we need -lpthread for the test to build for noMMU targets.
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- configure.in | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 4530aed3a7d0..63f708b9b855 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1539,7 +1539,7 @@ AC_ARG_ENABLE([canusb],
- if test "x$enable_canusb" != "xno" ; then
- dnl check for canusb support
- case "$host_os" in
-- linux*)
-+ linux*|uclinux*)
- AC_CHECK_HEADER(libusb-1.0/libusb.h,
- [
- AC_CHECK_LIB(usb-1.0, libusb_init,
-@@ -1549,7 +1549,8 @@ if test "x$enable_canusb" != "xno" ; then
- LIBS="-lusb-1.0 -lpthread $LIBS"
- ac_lbl_has_libusb=yes
- ],
-- ac_lbl_has_libusb=no
-+ ac_lbl_has_libusb=no,
-+ -lpthread
- )
- ],
- ac_lbl_has_libusb=no
---
-2.0.1
-
--- /dev/null
+Add -fPIC to CFLAGS
+
+-fPIC is needed to build shared library code.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/Makefile
+===================================================================
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -9,6 +9,7 @@
+ SHARED_LIBNAME_VERSION = $(SHARED_LIBNAME).$(VERSION)
+ SHARED_LIBNAME_MAJOR = $(SHARED_LIBNAME).$(shell echo $(VERSION) | cut -f1 -d.)
+ SHARED_LIBNAME_FLAGS = -shared -Wl,-soname,$(SHARED_LIBNAME_MAJOR)
++CFLAGS = -fPIC
+
+ ifeq ($(BUILD_STATIC),yes)
+ BUILD_RULES += lib_static
--- /dev/null
+From: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+Subject: [PATCH] libplayer: Fix handling of cflags in configure.
+
+The cflags returned by pkg-config or another config script may consist
+of several arguments for the compiler. These should not be quoted together
+into a single argument.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+Sent upstream to devel@geexbox.org on July 11, 2012.
+---
+diff -rup libplayer-2.0.1.orig/configure libplayer-2.0.1/configure
+--- libplayer-2.0.1.orig/configure 2010-10-03 19:26:11.000000000 +0200
++++ libplayer-2.0.1/configure 2012-07-10 23:33:02.783701852 +0200
+@@ -342,7 +342,7 @@ check_libconfig(){
+ err=1
+ if `which "$config" 1>/dev/null 2>&1`; then
+ cflags=`$config $ccflags`
+- [ -n "$cflags" ] && check_cflags "$cflags"
++ [ -n "$cflags" ] && check_cflags $cflags
+ libs=`$config $clibs`
+ if [ -n "$libs" ]; then
+ temp_extralibs "$libs"
+@@ -364,7 +364,7 @@ check_libconfig_exists(){
+ err=1
+ if `which "$config" 1>/dev/null 2>&1`; then
+ cflags=`$config $ccflags`
+- [ -n "$cflags" ] && temp_cflags "$cflags"
++ [ -n "$cflags" ] && temp_cflags $cflags
+ libs=`$config $clibs`
+ if [ -n "$libs" ]; then
+ temp_extralibs "$libs"
+@@ -386,7 +386,7 @@ check_pkgconfig(){
+ err=1
+ if `which pkg-config 1>/dev/null 2>&1`; then
+ cflags=`pkg-config $pkg $ccflags`
+- [ -n "$cflags" ] && check_cflags "$cflags"
++ [ -n "$cflags" ] && check_cflags $cflags
+ libs=`pkg-config $pkg $clibs`
+ if [ -n "$libs" ]; then
+ temp_extralibs "$libs"
+++ /dev/null
-Add -fPIC to CFLAGS
-
--fPIC is needed to build shared library code.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/src/Makefile
-===================================================================
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -9,6 +9,7 @@
- SHARED_LIBNAME_VERSION = $(SHARED_LIBNAME).$(VERSION)
- SHARED_LIBNAME_MAJOR = $(SHARED_LIBNAME).$(shell echo $(VERSION) | cut -f1 -d.)
- SHARED_LIBNAME_FLAGS = -shared -Wl,-soname,$(SHARED_LIBNAME_MAJOR)
-+CFLAGS = -fPIC
-
- ifeq ($(BUILD_STATIC),yes)
- BUILD_RULES += lib_static
+++ /dev/null
-From: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
-Subject: [PATCH] libplayer: Fix handling of cflags in configure.
-
-The cflags returned by pkg-config or another config script may consist
-of several arguments for the compiler. These should not be quoted together
-into a single argument.
-
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
----
-Sent upstream to devel@geexbox.org on July 11, 2012.
----
-diff -rup libplayer-2.0.1.orig/configure libplayer-2.0.1/configure
---- libplayer-2.0.1.orig/configure 2010-10-03 19:26:11.000000000 +0200
-+++ libplayer-2.0.1/configure 2012-07-10 23:33:02.783701852 +0200
-@@ -342,7 +342,7 @@ check_libconfig(){
- err=1
- if `which "$config" 1>/dev/null 2>&1`; then
- cflags=`$config $ccflags`
-- [ -n "$cflags" ] && check_cflags "$cflags"
-+ [ -n "$cflags" ] && check_cflags $cflags
- libs=`$config $clibs`
- if [ -n "$libs" ]; then
- temp_extralibs "$libs"
-@@ -364,7 +364,7 @@ check_libconfig_exists(){
- err=1
- if `which "$config" 1>/dev/null 2>&1`; then
- cflags=`$config $ccflags`
-- [ -n "$cflags" ] && temp_cflags "$cflags"
-+ [ -n "$cflags" ] && temp_cflags $cflags
- libs=`$config $clibs`
- if [ -n "$libs" ]; then
- temp_extralibs "$libs"
-@@ -386,7 +386,7 @@ check_pkgconfig(){
- err=1
- if `which pkg-config 1>/dev/null 2>&1`; then
- cflags=`pkg-config $pkg $ccflags`
-- [ -n "$cflags" ] && check_cflags "$cflags"
-+ [ -n "$cflags" ] && check_cflags $cflags
- libs=`pkg-config $pkg $clibs`
- if [ -n "$libs" ]; then
- temp_extralibs "$libs"
--- /dev/null
+From 2d0450bfa3fb7003098da1a7fe24c3ae140912dc Mon Sep 17 00:00:00 2001
+From: Gregory Hermant <gregory.hermant@calao-systems.com>
+Date: Mon, 22 Oct 2012 15:11:53 +0200
+Subject: [PATCH] pthsem build on Linux 3.x host
+
+
+Signed-off-by: Michael Markstaller <mm@elabnet.de>
+Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
+---
+ acinclude.m4 | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 03b42de..fea9bc8 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -892,6 +892,8 @@ case $PLATFORM in
+ case "x`uname -r`" in
+ changequote(, )dnl
+ x2.[23456789]* ) ;;
++changequote(, )dnl
++ x3.* ) ;;
+ changequote([, ])
+ * ) braindead=yes ;;
+ esac
+--
+1.7.9.5
+
+++ /dev/null
-From 2d0450bfa3fb7003098da1a7fe24c3ae140912dc Mon Sep 17 00:00:00 2001
-From: Gregory Hermant <gregory.hermant@calao-systems.com>
-Date: Mon, 22 Oct 2012 15:11:53 +0200
-Subject: [PATCH] pthsem build on Linux 3.x host
-
-
-Signed-off-by: Michael Markstaller <mm@elabnet.de>
-Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
----
- acinclude.m4 | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 03b42de..fea9bc8 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -892,6 +892,8 @@ case $PLATFORM in
- case "x`uname -r`" in
- changequote(, )dnl
- x2.[23456789]* ) ;;
-+changequote(, )dnl
-+ x3.* ) ;;
- changequote([, ])
- * ) braindead=yes ;;
- esac
---
-1.7.9.5
-
--- /dev/null
+librtlsdr: disable shared library target in build
+
+Disable shared library target if BUILD_SHARED_LIBS if OFF.
+
+Signed-off-by: Yuvaraj Patil <yuvaraj.patil@wipro.com>
+---
+diff -Nurp librtlsdr-v0.5.3_orig/src/CMakeLists.txt librtlsdr-v0.5.3/src/CMakeLists.txt
+--- librtlsdr-v0.5.3_orig/src/CMakeLists.txt 2014-09-24 17:31:40.610337074 +0530
++++ librtlsdr-v0.5.3/src/CMakeLists.txt 2014-09-24 17:32:38.838334632 +0530
+@@ -20,6 +20,7 @@
+ ########################################################################
+ # Setup library
+ ########################################################################
++if(BUILD_SHARED_LIBS)
+ add_library(rtlsdr_shared SHARED
+ librtlsdr.c
+ tuner_e4k.c
+@@ -37,6 +38,7 @@ set_target_properties(rtlsdr_shared PROP
+ set_target_properties(rtlsdr_shared PROPERTIES OUTPUT_NAME rtlsdr)
+ set_target_properties(rtlsdr_shared PROPERTIES SOVERSION ${MAJOR_VERSION})
+ set_target_properties(rtlsdr_shared PROPERTIES VERSION ${LIBVER})
++endif()
+
+ add_library(rtlsdr_static STATIC
+ librtlsdr.c
+@@ -71,6 +73,12 @@ if(NOT WIN32)
+ set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr)
+ endif()
+
++if(BUILD_SHARED_LIBS)
++set(rtlsdr_lib rtlsdr_shared)
++else()
++set(rtlsdr_lib rtlsdr_static)
++endif()
++
+ ########################################################################
+ # Build utility
+ ########################################################################
+@@ -81,33 +89,33 @@ add_executable(rtl_fm rtl_fm.c)
+ add_executable(rtl_eeprom rtl_eeprom.c)
+ add_executable(rtl_adsb rtl_adsb.c)
+ add_executable(rtl_power rtl_power.c)
+-set(INSTALL_TARGETS rtlsdr_shared rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power)
++set(INSTALL_TARGETS ${rtlsdr_lib} rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power)
+
+-target_link_libraries(rtl_sdr rtlsdr_shared convenience_static
++target_link_libraries(rtl_sdr ${rtlsdr_lib} convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
+-target_link_libraries(rtl_tcp rtlsdr_shared convenience_static
++target_link_libraries(rtl_tcp ${rtlsdr_lib} convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
+-target_link_libraries(rtl_test rtlsdr_shared convenience_static
++target_link_libraries(rtl_test ${rtlsdr_lib} convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
+-target_link_libraries(rtl_fm rtlsdr_shared convenience_static
++target_link_libraries(rtl_fm ${rtlsdr_lib} convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
+-target_link_libraries(rtl_eeprom rtlsdr_shared convenience_static
++target_link_libraries(rtl_eeprom ${rtlsdr_lib} convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
+-target_link_libraries(rtl_adsb rtlsdr_shared convenience_static
++target_link_libraries(rtl_adsb ${rtlsdr_lib} convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
+-target_link_libraries(rtl_power rtlsdr_shared convenience_static
++target_link_libraries(rtl_power ${rtlsdr_lib} convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
+++ /dev/null
-librtlsdr: disable shared library target in build
-
-Disable shared library target if BUILD_SHARED_LIBS if OFF.
-
-Signed-off-by: Yuvaraj Patil <yuvaraj.patil@wipro.com>
----
-diff -Nurp librtlsdr-v0.5.3_orig/src/CMakeLists.txt librtlsdr-v0.5.3/src/CMakeLists.txt
---- librtlsdr-v0.5.3_orig/src/CMakeLists.txt 2014-09-24 17:31:40.610337074 +0530
-+++ librtlsdr-v0.5.3/src/CMakeLists.txt 2014-09-24 17:32:38.838334632 +0530
-@@ -20,6 +20,7 @@
- ########################################################################
- # Setup library
- ########################################################################
-+if(BUILD_SHARED_LIBS)
- add_library(rtlsdr_shared SHARED
- librtlsdr.c
- tuner_e4k.c
-@@ -37,6 +38,7 @@ set_target_properties(rtlsdr_shared PROP
- set_target_properties(rtlsdr_shared PROPERTIES OUTPUT_NAME rtlsdr)
- set_target_properties(rtlsdr_shared PROPERTIES SOVERSION ${MAJOR_VERSION})
- set_target_properties(rtlsdr_shared PROPERTIES VERSION ${LIBVER})
-+endif()
-
- add_library(rtlsdr_static STATIC
- librtlsdr.c
-@@ -71,6 +73,12 @@ if(NOT WIN32)
- set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr)
- endif()
-
-+if(BUILD_SHARED_LIBS)
-+set(rtlsdr_lib rtlsdr_shared)
-+else()
-+set(rtlsdr_lib rtlsdr_static)
-+endif()
-+
- ########################################################################
- # Build utility
- ########################################################################
-@@ -81,33 +89,33 @@ add_executable(rtl_fm rtl_fm.c)
- add_executable(rtl_eeprom rtl_eeprom.c)
- add_executable(rtl_adsb rtl_adsb.c)
- add_executable(rtl_power rtl_power.c)
--set(INSTALL_TARGETS rtlsdr_shared rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power)
-+set(INSTALL_TARGETS ${rtlsdr_lib} rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power)
-
--target_link_libraries(rtl_sdr rtlsdr_shared convenience_static
-+target_link_libraries(rtl_sdr ${rtlsdr_lib} convenience_static
- ${LIBUSB_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- )
--target_link_libraries(rtl_tcp rtlsdr_shared convenience_static
-+target_link_libraries(rtl_tcp ${rtlsdr_lib} convenience_static
- ${LIBUSB_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- )
--target_link_libraries(rtl_test rtlsdr_shared convenience_static
-+target_link_libraries(rtl_test ${rtlsdr_lib} convenience_static
- ${LIBUSB_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- )
--target_link_libraries(rtl_fm rtlsdr_shared convenience_static
-+target_link_libraries(rtl_fm ${rtlsdr_lib} convenience_static
- ${LIBUSB_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- )
--target_link_libraries(rtl_eeprom rtlsdr_shared convenience_static
-+target_link_libraries(rtl_eeprom ${rtlsdr_lib} convenience_static
- ${LIBUSB_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- )
--target_link_libraries(rtl_adsb rtlsdr_shared convenience_static
-+target_link_libraries(rtl_adsb ${rtlsdr_lib} convenience_static
- ${LIBUSB_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- )
--target_link_libraries(rtl_power rtlsdr_shared convenience_static
-+target_link_libraries(rtl_power ${rtlsdr_lib} convenience_static
- ${LIBUSB_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- )
--- /dev/null
+configure: check headers in sysroot, not in host's system headers
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN libseccomp-1.0.0.orig/configure libseccomp-1.0.0/configure
+--- libseccomp-1.0.0.orig/configure 2012-07-27 22:35:05.000000000 +0200
++++ libseccomp-1.0.0/configure 2012-10-27 00:12:50.739196219 +0200
+@@ -205,7 +205,8 @@
+ #
+
+ # system seccomp includes
+-if [[ -r "/usr/include/linux/seccomp.h" ]]; then
++# ${SYSROOT} added by buildroot for cross-compilation
++if [[ -r "${SYSROOT}/usr/include/linux/seccomp.h" ]]; then
+ opt_sysinc_seccomp="yes"
+ else
+ opt_sysinc_seccomp="no"
--- /dev/null
+From 58c34ae1343e2a452e08cd160936a231bcdb67a1 Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime.ripard@free-electrons.com>
+Date: Tue, 18 Dec 2012 09:57:47 +0100
+Subject: [PATCH] Remove the dependency on /proc
+
+The Makefile relied on a broken logic for the INSTALL_PC_MACRO.
+It was used like this: $(INSTALL_PC_MACRO) file.
+
+The INSTALL_PC_MACRO was then expanded with a trailing sharp, to pass
+the name of the file to install as a comment at the end of the command.
+
+And then, to retrieve the file to copy, it used the $NF variable of awk
+on the /proc/self/cmdline file to happily reinvent the argument
+mechanism.
+
+This patch removes of this crazy stuff by using the -t option of
+install, that keeps the same calling convention.
+
+Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+---
+ macros.mk | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/macros.mk b/macros.mk
+index 6162900..eb61ead 100644
+--- a/macros.mk
++++ b/macros.mk
+@@ -150,9 +150,8 @@ endif
+ INSTALL_PC_MACRO += \
+ $(INSTALL) -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) \
+ -d "$(INSTALL_LIB_DIR)/pkgconfig"; \
+- $(INSTALL) -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) -m 0644 \
+- "$$(cat /proc/$$$$/cmdline | awk '{print $$(NF)}')" \
+- "$(INSTALL_LIB_DIR)/pkgconfig"; \#
++ $(INSTALL) -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) -m 0644 -t \
++ "$(INSTALL_LIB_DIR)/pkgconfig"
+
+ ifeq ($(V),0)
+ INSTALL_INC_MACRO = @echo " INSTALL $^ ($(INSTALL_INC_DIR))";
+--
+1.7.9.5
+
+++ /dev/null
-configure: check headers in sysroot, not in host's system headers
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN libseccomp-1.0.0.orig/configure libseccomp-1.0.0/configure
---- libseccomp-1.0.0.orig/configure 2012-07-27 22:35:05.000000000 +0200
-+++ libseccomp-1.0.0/configure 2012-10-27 00:12:50.739196219 +0200
-@@ -205,7 +205,8 @@
- #
-
- # system seccomp includes
--if [[ -r "/usr/include/linux/seccomp.h" ]]; then
-+# ${SYSROOT} added by buildroot for cross-compilation
-+if [[ -r "${SYSROOT}/usr/include/linux/seccomp.h" ]]; then
- opt_sysinc_seccomp="yes"
- else
- opt_sysinc_seccomp="no"
+++ /dev/null
-From 58c34ae1343e2a452e08cd160936a231bcdb67a1 Mon Sep 17 00:00:00 2001
-From: Maxime Ripard <maxime.ripard@free-electrons.com>
-Date: Tue, 18 Dec 2012 09:57:47 +0100
-Subject: [PATCH] Remove the dependency on /proc
-
-The Makefile relied on a broken logic for the INSTALL_PC_MACRO.
-It was used like this: $(INSTALL_PC_MACRO) file.
-
-The INSTALL_PC_MACRO was then expanded with a trailing sharp, to pass
-the name of the file to install as a comment at the end of the command.
-
-And then, to retrieve the file to copy, it used the $NF variable of awk
-on the /proc/self/cmdline file to happily reinvent the argument
-mechanism.
-
-This patch removes of this crazy stuff by using the -t option of
-install, that keeps the same calling convention.
-
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
----
- macros.mk | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/macros.mk b/macros.mk
-index 6162900..eb61ead 100644
---- a/macros.mk
-+++ b/macros.mk
-@@ -150,9 +150,8 @@ endif
- INSTALL_PC_MACRO += \
- $(INSTALL) -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) \
- -d "$(INSTALL_LIB_DIR)/pkgconfig"; \
-- $(INSTALL) -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) -m 0644 \
-- "$$(cat /proc/$$$$/cmdline | awk '{print $$(NF)}')" \
-- "$(INSTALL_LIB_DIR)/pkgconfig"; \#
-+ $(INSTALL) -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) -m 0644 -t \
-+ "$(INSTALL_LIB_DIR)/pkgconfig"
-
- ifeq ($(V),0)
- INSTALL_INC_MACRO = @echo " INSTALL $^ ($(INSTALL_INC_DIR))";
---
-1.7.9.5
-
--- /dev/null
+Add support for static-only build
+
+Instead of unconditionally building shared libraries, this patch
+improves the libsepol build system with a "STATIC" variable, which
+when defined to some non-empty value, will disable the build of shared
+libraries. It allows to support cases where the target architecture
+does not have support for shared libraries.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/Makefile
+===================================================================
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -17,7 +17,12 @@
+ CFLAGS ?= -Werror -Wall -W -Wundef -Wshadow -Wmissing-noreturn -Wmissing-format-attribute
+ override CFLAGS += -I. -I../include -D_GNU_SOURCE
+
+-all: $(LIBA) $(LIBSO) $(LIBPC)
++ALL_TARGETS = $(LIBA) $(LIBPC)
++ifeq ($(STATIC),)
++ALL_TARGETS += $(LIBSO)
++endif
++
++all: $(ALL_TARGETS)
+
+ $(LIBA): $(OBJS)
+ $(AR) rcs $@ $^
+@@ -39,11 +44,13 @@
+ install: all
+ test -d $(LIBDIR) || install -m 755 -d $(LIBDIR)
+ install -m 644 $(LIBA) $(LIBDIR)
+- test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR)
+- install -m 755 $(LIBSO) $(SHLIBDIR)
+ test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
+ install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
++ifeq ($(STATIC),)
++ test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR)
++ install -m 755 $(LIBSO) $(SHLIBDIR)
+ cd $(LIBDIR) && ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET)
++endif
+
+ relabel:
+ /sbin/restorecon $(SHLIBDIR)/$(LIBSO)
+++ /dev/null
-Add support for static-only build
-
-Instead of unconditionally building shared libraries, this patch
-improves the libsepol build system with a "STATIC" variable, which
-when defined to some non-empty value, will disable the build of shared
-libraries. It allows to support cases where the target architecture
-does not have support for shared libraries.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/src/Makefile
-===================================================================
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -17,7 +17,12 @@
- CFLAGS ?= -Werror -Wall -W -Wundef -Wshadow -Wmissing-noreturn -Wmissing-format-attribute
- override CFLAGS += -I. -I../include -D_GNU_SOURCE
-
--all: $(LIBA) $(LIBSO) $(LIBPC)
-+ALL_TARGETS = $(LIBA) $(LIBPC)
-+ifeq ($(STATIC),)
-+ALL_TARGETS += $(LIBSO)
-+endif
-+
-+all: $(ALL_TARGETS)
-
- $(LIBA): $(OBJS)
- $(AR) rcs $@ $^
-@@ -39,11 +44,13 @@
- install: all
- test -d $(LIBDIR) || install -m 755 -d $(LIBDIR)
- install -m 644 $(LIBA) $(LIBDIR)
-- test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR)
-- install -m 755 $(LIBSO) $(SHLIBDIR)
- test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
- install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
-+ifeq ($(STATIC),)
-+ test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR)
-+ install -m 755 $(LIBSO) $(SHLIBDIR)
- cd $(LIBDIR) && ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET)
-+endif
-
- relabel:
- /sbin/restorecon $(SHLIBDIR)/$(LIBSO)
--- /dev/null
+Disable build of Python bindings, which requires the sipconfig module.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/Makefile.am b/Makefile.am
+--- a/Makefile.am 2008-11-12 01:27:31.000000000 +0000
++++ b/Makefile.am 2013-04-16 09:41:13.476002178 +0100
+@@ -1,4 +1,4 @@
+-SUBDIRS=src doc examples sip
++SUBDIRS=src doc examples
+
+ EXTRA_DIST = doxygen.conf.in Makefile.dist libserial.spec libserial.pc
+
+diff -Nurp a/Makefile.in b/Makefile.in
+--- a/Makefile.in 2008-11-12 01:28:14.000000000 +0000
++++ b/Makefile.in 2013-04-16 09:41:05.628013626 +0100
+@@ -197,7 +197,7 @@ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-SUBDIRS = src doc examples sip
++SUBDIRS = src doc examples
+ EXTRA_DIST = doxygen.conf.in Makefile.dist libserial.spec libserial.pc
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = libserial.pc
--- /dev/null
+Add a missing header include, to fix a build error.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/src/SerialPort.cpp b/src/SerialPort.cpp
+--- a/src/SerialPort.cpp 2008-11-12 01:27:30.000000000 +0000
++++ b/src/SerialPort.cpp 2013-04-23 15:43:41.537495852 +0100
+@@ -27,6 +27,7 @@
+ #include <cassert>
+ #include <termios.h>
+ #include <fcntl.h>
++#include <unistd.h>
+ #include <sys/ioctl.h>
+ #include <sys/time.h>
+ #include <signal.h>
+++ /dev/null
-Disable build of Python bindings, which requires the sipconfig module.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/Makefile.am b/Makefile.am
---- a/Makefile.am 2008-11-12 01:27:31.000000000 +0000
-+++ b/Makefile.am 2013-04-16 09:41:13.476002178 +0100
-@@ -1,4 +1,4 @@
--SUBDIRS=src doc examples sip
-+SUBDIRS=src doc examples
-
- EXTRA_DIST = doxygen.conf.in Makefile.dist libserial.spec libserial.pc
-
-diff -Nurp a/Makefile.in b/Makefile.in
---- a/Makefile.in 2008-11-12 01:28:14.000000000 +0000
-+++ b/Makefile.in 2013-04-16 09:41:05.628013626 +0100
-@@ -197,7 +197,7 @@ sysconfdir = @sysconfdir@
- target_alias = @target_alias@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = src doc examples sip
-+SUBDIRS = src doc examples
- EXTRA_DIST = doxygen.conf.in Makefile.dist libserial.spec libserial.pc
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = libserial.pc
+++ /dev/null
-Add a missing header include, to fix a build error.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/src/SerialPort.cpp b/src/SerialPort.cpp
---- a/src/SerialPort.cpp 2008-11-12 01:27:30.000000000 +0000
-+++ b/src/SerialPort.cpp 2013-04-23 15:43:41.537495852 +0100
-@@ -27,6 +27,7 @@
- #include <cassert>
- #include <termios.h>
- #include <fcntl.h>
-+#include <unistd.h>
- #include <sys/ioctl.h>
- #include <sys/time.h>
- #include <signal.h>
--- /dev/null
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: libsndfile-1.0.18/Makefile.in
+===================================================================
+--- libsndfile-1.0.18.orig/Makefile.in
++++ libsndfile-1.0.18/Makefile.in
+@@ -260,7 +260,7 @@
+ top_srcdir = @top_srcdir@
+ DISTCHECK_CONFIGURE_FLAGS = --enable-gcc-werror
+ @BUILD_OCTAVE_MOD_TRUE@octave_dir = Octave
+-SUBDIRS = M4 man doc Win32 src $(octave_dir) examples regtest tests programs
++SUBDIRS = src
+ DIST_SUBDIRS = M4 man doc Win32 src Octave examples regtest tests programs
+ EXTRA_DIST = libsndfile.spec.in sndfile.pc.in Mingw-make-dist.sh
+ pkgconfigdir = $(libdir)/pkgconfig
+++ /dev/null
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: libsndfile-1.0.18/Makefile.in
-===================================================================
---- libsndfile-1.0.18.orig/Makefile.in
-+++ libsndfile-1.0.18/Makefile.in
-@@ -260,7 +260,7 @@
- top_srcdir = @top_srcdir@
- DISTCHECK_CONFIGURE_FLAGS = --enable-gcc-werror
- @BUILD_OCTAVE_MOD_TRUE@octave_dir = Octave
--SUBDIRS = M4 man doc Win32 src $(octave_dir) examples regtest tests programs
-+SUBDIRS = src
- DIST_SUBDIRS = M4 man doc Win32 src Octave examples regtest tests programs
- EXTRA_DIST = libsndfile.spec.in sndfile.pc.in Mingw-make-dist.sh
- pkgconfigdir = $(libdir)/pkgconfig
--- /dev/null
+Make the package autoreconfigurable
+
+Signed-off-by: Denis Bodor <lefinnois@lefinnois.net>
+
+diff -ur libstrophe.orig/Makefile.am libstrophe/Makefile.am
+--- libstrophe.orig/Makefile.am 2014-03-02 18:58:36.219753865 +0100
++++ libstrophe/Makefile.am 2014-03-02 18:58:02.739752477 +0100
+@@ -1,4 +1,4 @@
+-AUTOMAKE_OPTIONS = subdir-objects
++AUTOMAKE_OPTIONS = subdir-objects foreign
+
+ CFLAGS = -g -Wall
+
+++ /dev/null
-Make the package autoreconfigurable
-
-Signed-off-by: Denis Bodor <lefinnois@lefinnois.net>
-
-diff -ur libstrophe.orig/Makefile.am libstrophe/Makefile.am
---- libstrophe.orig/Makefile.am 2014-03-02 18:58:36.219753865 +0100
-+++ libstrophe/Makefile.am 2014-03-02 18:58:02.739752477 +0100
-@@ -1,4 +1,4 @@
--AUTOMAKE_OPTIONS = subdir-objects
-+AUTOMAKE_OPTIONS = subdir-objects foreign
-
- CFLAGS = -g -Wall
-
--- /dev/null
+Newer expat versions use different declarations of the following functions:
+
+static void _svg_parser_sax_start_element ();
+static void _svg_parser_sax_end_element ();
+static void _svg_parser_sax_characters ();
+
+We need to patch the libsvg source to not follow into a build error like
+ "static declaration of 'foo' follows non-static declaration"
+and use the functions from the expat library instead from the libsvg source.
+
+Patch based on
+http://oe-lite.org/redmine/projects/xorg/repository/revisions/c4df7951e846e1be718f37f2455696a1d0861f3d/entry/recipes/cairo/libsvg-0.1.4/gcc4_and_expat.patch
+
+Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
+
+diff -bur libsvg-0.1.4~orig/src/svg_parser_expat.c libsvg-0.1.4/src/svg_parser_expat.c
+--- libsvg-0.1.4~orig/src/svg_parser_expat.c 2005-02-14 11:26:26.000000000 -0600
++++ libsvg-0.1.4/src/svg_parser_expat.c 2006-02-10 21:58:20.000000000 -0600
+@@ -30,6 +30,7 @@
+ #include "svgint.h"
+ #include "svg_hash.h"
+
++#ifndef LIBSVG_EXPAT
+ static void
+ _svg_parser_sax_start_element (void *closure,
+ const XML_Char *name,
+@@ -43,6 +44,7 @@
+ _svg_parser_sax_characters (void *closure,
+ const XML_Char *ch,
+ int len);
++#endif
+
+ static void
+++ /dev/null
-Newer expat versions use different declarations of the following functions:
-
-static void _svg_parser_sax_start_element ();
-static void _svg_parser_sax_end_element ();
-static void _svg_parser_sax_characters ();
-
-We need to patch the libsvg source to not follow into a build error like
- "static declaration of 'foo' follows non-static declaration"
-and use the functions from the expat library instead from the libsvg source.
-
-Patch based on
-http://oe-lite.org/redmine/projects/xorg/repository/revisions/c4df7951e846e1be718f37f2455696a1d0861f3d/entry/recipes/cairo/libsvg-0.1.4/gcc4_and_expat.patch
-
-Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>
-
-diff -bur libsvg-0.1.4~orig/src/svg_parser_expat.c libsvg-0.1.4/src/svg_parser_expat.c
---- libsvg-0.1.4~orig/src/svg_parser_expat.c 2005-02-14 11:26:26.000000000 -0600
-+++ libsvg-0.1.4/src/svg_parser_expat.c 2006-02-10 21:58:20.000000000 -0600
-@@ -30,6 +30,7 @@
- #include "svgint.h"
- #include "svg_hash.h"
-
-+#ifndef LIBSVG_EXPAT
- static void
- _svg_parser_sax_start_element (void *closure,
- const XML_Char *name,
-@@ -43,6 +44,7 @@
- _svg_parser_sax_characters (void *closure,
- const XML_Char *ch,
- int len);
-+#endif
-
- static void
--- /dev/null
+Fix cross compilation, based on OpenWRT patch.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura libtorrent-0.13.3.orig/configure.ac libtorrent-0.13.3/configure.ac
+--- libtorrent-0.13.3.orig/configure.ac 2012-10-31 07:38:59.345752076 -0300
++++ libtorrent-0.13.3/configure.ac 2012-10-31 07:39:06.454799361 -0300
+@@ -19,7 +19,6 @@
+
+ AM_INIT_AUTOMAKE
+ AM_CONFIG_HEADER(config.h)
+-AM_PATH_CPPUNIT(1.9.6)
+
+ AC_PROG_CXX
+
+diff -Nura libtorrent-0.13.3.orig/scripts/checks.m4 libtorrent-0.13.3/scripts/checks.m4
+--- libtorrent-0.13.3.orig/scripts/checks.m4 2012-10-31 07:38:59.342752057 -0300
++++ libtorrent-0.13.3/scripts/checks.m4 2012-10-31 07:39:06.454799361 -0300
+@@ -96,7 +96,7 @@
+ AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
+ AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
+
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <fcntl.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+diff -Nura libtorrent-0.13.3.orig/scripts/common.m4 libtorrent-0.13.3/scripts/common.m4
+--- libtorrent-0.13.3.orig/scripts/common.m4 2012-10-31 07:38:59.342752057 -0300
++++ libtorrent-0.13.3/scripts/common.m4 2012-10-31 07:39:32.550972826 -0300
+@@ -223,7 +223,7 @@
+ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
+ AC_MSG_CHECKING(for execinfo.h)
+
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <execinfo.h>
+ int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
+ ])],
+++ /dev/null
-Fix cross compilation, based on OpenWRT patch.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura libtorrent-0.13.3.orig/configure.ac libtorrent-0.13.3/configure.ac
---- libtorrent-0.13.3.orig/configure.ac 2012-10-31 07:38:59.345752076 -0300
-+++ libtorrent-0.13.3/configure.ac 2012-10-31 07:39:06.454799361 -0300
-@@ -19,7 +19,6 @@
-
- AM_INIT_AUTOMAKE
- AM_CONFIG_HEADER(config.h)
--AM_PATH_CPPUNIT(1.9.6)
-
- AC_PROG_CXX
-
-diff -Nura libtorrent-0.13.3.orig/scripts/checks.m4 libtorrent-0.13.3/scripts/checks.m4
---- libtorrent-0.13.3.orig/scripts/checks.m4 2012-10-31 07:38:59.342752057 -0300
-+++ libtorrent-0.13.3/scripts/checks.m4 2012-10-31 07:39:06.454799361 -0300
-@@ -96,7 +96,7 @@
- AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
- AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
-
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
-+ AC_LINK_IFELSE([AC_LANG_SOURCE([
- #include <fcntl.h>
- #include <stdlib.h>
- #include <unistd.h>
-diff -Nura libtorrent-0.13.3.orig/scripts/common.m4 libtorrent-0.13.3/scripts/common.m4
---- libtorrent-0.13.3.orig/scripts/common.m4 2012-10-31 07:38:59.342752057 -0300
-+++ libtorrent-0.13.3/scripts/common.m4 2012-10-31 07:39:32.550972826 -0300
-@@ -223,7 +223,7 @@
- AC_DEFUN([TORRENT_CHECK_EXECINFO], [
- AC_MSG_CHECKING(for execinfo.h)
-
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
-+ AC_LINK_IFELSE([AC_LANG_SOURCE([
- #include <execinfo.h>
- int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
- ])],
--- /dev/null
+[PATCH] libubox: drop legacy json-c support
+
+The cmake logic is wrong (E.G. PKG_CHECK_FOR_MODULES fails unless all
+modules are found), and the legacy libjson.so name is also used by the other
+libjson (http://sourceforge.net/projects/libjson/) which provides an
+incompatible API, so just drop it.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b/CMakeLists.txt
+===================================================================
+--- libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b.orig/CMakeLists.txt
++++ libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b/CMakeLists.txt
+@@ -13,7 +13,7 @@
+ ENDIF()
+
+ INCLUDE(FindPkgConfig)
+-PKG_CHECK_MODULES(JSONC json-c json)
++PKG_CHECK_MODULES(JSONC json-c)
+ IF(JSONC_FOUND)
+ ADD_DEFINITIONS(-DJSONC)
+ INCLUDE_DIRECTORIES(${JSONC_INCLUDE_DIRS})
+@@ -42,7 +42,7 @@
+
+ ADD_SUBDIRECTORY(lua)
+
+-find_library(json NAMES json-c json)
++find_library(json NAMES json-c)
+ IF(EXISTS ${json})
+ ADD_LIBRARY(blobmsg_json SHARED blobmsg_json.c)
+ TARGET_LINK_LIBRARIES(blobmsg_json ubox ${json})
+++ /dev/null
-[PATCH] libubox: drop legacy json-c support
-
-The cmake logic is wrong (E.G. PKG_CHECK_FOR_MODULES fails unless all
-modules are found), and the legacy libjson.so name is also used by the other
-libjson (http://sourceforge.net/projects/libjson/) which provides an
-incompatible API, so just drop it.
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- CMakeLists.txt | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b/CMakeLists.txt
-===================================================================
---- libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b.orig/CMakeLists.txt
-+++ libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b/CMakeLists.txt
-@@ -13,7 +13,7 @@
- ENDIF()
-
- INCLUDE(FindPkgConfig)
--PKG_CHECK_MODULES(JSONC json-c json)
-+PKG_CHECK_MODULES(JSONC json-c)
- IF(JSONC_FOUND)
- ADD_DEFINITIONS(-DJSONC)
- INCLUDE_DIRECTORIES(${JSONC_INCLUDE_DIRS})
-@@ -42,7 +42,7 @@
-
- ADD_SUBDIRECTORY(lua)
-
--find_library(json NAMES json-c json)
-+find_library(json NAMES json-c)
- IF(EXISTS ${json})
- ADD_LIBRARY(blobmsg_json SHARED blobmsg_json.c)
- TARGET_LINK_LIBRARIES(blobmsg_json ubox ${json})
--- /dev/null
+From 54d8fe7ae40902d6d38e670f4024092f53c14e1f Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 8 Mar 2014 13:19:14 +0100
+Subject: [PATCH] Only blacklist ARM gcc 4.8.0 and 4.8.1
+
+Since many ARM toolchain providers include the bug fix for PR58854 in
+their latest releases based on gcc-4.8.2, then only blacklist gcc 4.8.0
+and 4.8.1.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ urcu/compiler.h | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/urcu/compiler.h b/urcu/compiler.h
+index 1e30903..56115f1 100644
+--- a/urcu/compiler.h
++++ b/urcu/compiler.h
+@@ -118,10 +118,17 @@
+ + __GNUC_PATCHLEVEL__)
+
+ /*
++ * Official gcc releases from 4.8.0 to 4.8.2 have the following bug,
++ * however, many arm toolchain providers have the included the fix for
++ * their latest 4.8.2 releases.
++ * So, we only blacklist gcc 4.8.0 and 4.8.1.
++ * Unfortunately, this bug is not easy to test, so we rely on the
++ * knowledge of the user on its compiler.
++ *
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854
+ */
+ # ifdef __ARMEL__
+-# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40802
++# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40801
+ # error Your gcc version produces clobbered frame accesses
+ # endif
+ # endif
+--
+1.9.0
+
+++ /dev/null
-From 54d8fe7ae40902d6d38e670f4024092f53c14e1f Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 8 Mar 2014 13:19:14 +0100
-Subject: [PATCH] Only blacklist ARM gcc 4.8.0 and 4.8.1
-
-Since many ARM toolchain providers include the bug fix for PR58854 in
-their latest releases based on gcc-4.8.2, then only blacklist gcc 4.8.0
-and 4.8.1.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- urcu/compiler.h | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/urcu/compiler.h b/urcu/compiler.h
-index 1e30903..56115f1 100644
---- a/urcu/compiler.h
-+++ b/urcu/compiler.h
-@@ -118,10 +118,17 @@
- + __GNUC_PATCHLEVEL__)
-
- /*
-+ * Official gcc releases from 4.8.0 to 4.8.2 have the following bug,
-+ * however, many arm toolchain providers have the included the fix for
-+ * their latest 4.8.2 releases.
-+ * So, we only blacklist gcc 4.8.0 and 4.8.1.
-+ * Unfortunately, this bug is not easy to test, so we rely on the
-+ * knowledge of the user on its compiler.
-+ *
- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854
- */
- # ifdef __ARMEL__
--# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40802
-+# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40801
- # error Your gcc version produces clobbered frame accesses
- # endif
- # endif
---
-1.9.0
-
--- /dev/null
+From e5952b043a71fe83fbc392e498e8f77774fca0d8 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Sat, 28 Jun 2014 09:32:53 -0300
+Subject: [PATCH] fixup lfs mismatch in preload libraries
+
+Ensure that the lfs variants are not transparently used instead of the !lfs
+ones so both can be wrapped, independently of any custom CFLAGS/CPPFLAGS.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ lib/libv4l1/v4l1compat.c | 3 +++
+ lib/libv4l2/v4l2convert.c | 3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/lib/libv4l1/v4l1compat.c b/lib/libv4l1/v4l1compat.c
+index e328288..70eb74f 100644
+--- a/lib/libv4l1/v4l1compat.c
++++ b/lib/libv4l1/v4l1compat.c
+@@ -19,6 +19,9 @@
+ # Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
+ */
+
++/* ensure we see *64 variants and they aren't transparently used */
++#undef _LARGEFILE_SOURCE
++#undef _FILE_OFFSET_BITS
+ #define _LARGEFILE64_SOURCE 1
+
+ #include <config.h>
+diff --git a/lib/libv4l2/v4l2convert.c b/lib/libv4l2/v4l2convert.c
+index 9b46ab8..bc41056 100644
+--- a/lib/libv4l2/v4l2convert.c
++++ b/lib/libv4l2/v4l2convert.c
+@@ -23,6 +23,9 @@
+ /* prevent GCC 4.7 inlining error */
+ #undef _FORTIFY_SOURCE
+
++/* ensure we see *64 variants and they aren't transparently used */
++#undef _LARGEFILE_SOURCE
++#undef _FILE_OFFSET_BITS
+ #define _LARGEFILE64_SOURCE 1
+
+ #include <config.h>
+--
+1.9.1
+++ /dev/null
-From e5952b043a71fe83fbc392e498e8f77774fca0d8 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Sat, 28 Jun 2014 09:32:53 -0300
-Subject: [PATCH] fixup lfs mismatch in preload libraries
-
-Ensure that the lfs variants are not transparently used instead of the !lfs
-ones so both can be wrapped, independently of any custom CFLAGS/CPPFLAGS.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- lib/libv4l1/v4l1compat.c | 3 +++
- lib/libv4l2/v4l2convert.c | 3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/lib/libv4l1/v4l1compat.c b/lib/libv4l1/v4l1compat.c
-index e328288..70eb74f 100644
---- a/lib/libv4l1/v4l1compat.c
-+++ b/lib/libv4l1/v4l1compat.c
-@@ -19,6 +19,9 @@
- # Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
- */
-
-+/* ensure we see *64 variants and they aren't transparently used */
-+#undef _LARGEFILE_SOURCE
-+#undef _FILE_OFFSET_BITS
- #define _LARGEFILE64_SOURCE 1
-
- #include <config.h>
-diff --git a/lib/libv4l2/v4l2convert.c b/lib/libv4l2/v4l2convert.c
-index 9b46ab8..bc41056 100644
---- a/lib/libv4l2/v4l2convert.c
-+++ b/lib/libv4l2/v4l2convert.c
-@@ -23,6 +23,9 @@
- /* prevent GCC 4.7 inlining error */
- #undef _FORTIFY_SOURCE
-
-+/* ensure we see *64 variants and they aren't transparently used */
-+#undef _LARGEFILE_SOURCE
-+#undef _FILE_OFFSET_BITS
- #define _LARGEFILE64_SOURCE 1
-
- #include <config.h>
---
-1.9.1
--- /dev/null
+Fixes various wayland-related compile errors:
+
+i965_output_wayland.c:31:41: fatal error: wayland-drm-client-protocol.h:
+ No such file or directory
+
+i965_output_wayland.h:31:26: error: unknown type name 'VADriverContextP'
+
+make[4]: *** No rule to make target `wayland-drm-client-protocol.h', needed by
+ `i965_output_wayland.c'. Stop.
+
+Patch sent upstream:
+http://lists.freedesktop.org/archives/libva/2014-July/002520.html
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr libva-intel-driver-1.3.2.org/src/i965_output_wayland.c libva-intel-driver-1.3.2/src/i965_output_wayland.c
+--- libva-intel-driver-1.3.2.org/src/i965_output_wayland.c 2014-06-03 02:36:44.000000000 +0200
++++ libva-intel-driver-1.3.2/src/i965_output_wayland.c 2014-07-19 11:48:31.329043292 +0200
+@@ -28,7 +28,7 @@
+ #include <va/va_backend.h>
+ #include <va/va_backend_wayland.h>
+ #include <wayland-client.h>
+-#include <wayland-drm-client-protocol.h>
++#include <va/wayland-drm-client-protocol.h>
+ #include "intel_driver.h"
+ #include "i965_output_wayland.h"
+ #include "i965_drv_video.h"
+diff -uNr libva-intel-driver-1.3.2.org/src/i965_output_wayland.h libva-intel-driver-1.3.2/src/i965_output_wayland.h
+--- libva-intel-driver-1.3.2.org/src/i965_output_wayland.h 2014-05-19 10:19:39.000000000 +0200
++++ libva-intel-driver-1.3.2/src/i965_output_wayland.h 2014-07-19 11:48:09.201321881 +0200
+@@ -26,6 +26,7 @@
+ #define I965_OUTPUT_WAYLAND_H
+
+ #include <stdbool.h>
++#include <va/va_backend.h>
+
+ bool
+ i965_output_wayland_init(VADriverContextP ctx);
+diff -uNr libva-intel-driver-1.3.2.org/src/Makefile.am libva-intel-driver-1.3.2/src/Makefile.am
+--- libva-intel-driver-1.3.2.org/src/Makefile.am 2014-06-16 04:13:12.000000000 +0200
++++ libva-intel-driver-1.3.2/src/Makefile.am 2014-07-19 11:53:02.885627916 +0200
+@@ -146,7 +146,7 @@
+ endif
+
+ # Wayland protocol
+-protocol_source_h = wayland-drm-client-protocol.h
++#protocol_source_h = wayland-drm-client-protocol.h
+ i965_output_wayland.c: $(protocol_source_h)
+ @wayland_scanner_rules@
+
+++ /dev/null
-Fixes various wayland-related compile errors:
-
-i965_output_wayland.c:31:41: fatal error: wayland-drm-client-protocol.h:
- No such file or directory
-
-i965_output_wayland.h:31:26: error: unknown type name 'VADriverContextP'
-
-make[4]: *** No rule to make target `wayland-drm-client-protocol.h', needed by
- `i965_output_wayland.c'. Stop.
-
-Patch sent upstream:
-http://lists.freedesktop.org/archives/libva/2014-July/002520.html
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr libva-intel-driver-1.3.2.org/src/i965_output_wayland.c libva-intel-driver-1.3.2/src/i965_output_wayland.c
---- libva-intel-driver-1.3.2.org/src/i965_output_wayland.c 2014-06-03 02:36:44.000000000 +0200
-+++ libva-intel-driver-1.3.2/src/i965_output_wayland.c 2014-07-19 11:48:31.329043292 +0200
-@@ -28,7 +28,7 @@
- #include <va/va_backend.h>
- #include <va/va_backend_wayland.h>
- #include <wayland-client.h>
--#include <wayland-drm-client-protocol.h>
-+#include <va/wayland-drm-client-protocol.h>
- #include "intel_driver.h"
- #include "i965_output_wayland.h"
- #include "i965_drv_video.h"
-diff -uNr libva-intel-driver-1.3.2.org/src/i965_output_wayland.h libva-intel-driver-1.3.2/src/i965_output_wayland.h
---- libva-intel-driver-1.3.2.org/src/i965_output_wayland.h 2014-05-19 10:19:39.000000000 +0200
-+++ libva-intel-driver-1.3.2/src/i965_output_wayland.h 2014-07-19 11:48:09.201321881 +0200
-@@ -26,6 +26,7 @@
- #define I965_OUTPUT_WAYLAND_H
-
- #include <stdbool.h>
-+#include <va/va_backend.h>
-
- bool
- i965_output_wayland_init(VADriverContextP ctx);
-diff -uNr libva-intel-driver-1.3.2.org/src/Makefile.am libva-intel-driver-1.3.2/src/Makefile.am
---- libva-intel-driver-1.3.2.org/src/Makefile.am 2014-06-16 04:13:12.000000000 +0200
-+++ libva-intel-driver-1.3.2/src/Makefile.am 2014-07-19 11:53:02.885627916 +0200
-@@ -146,7 +146,7 @@
- endif
-
- # Wayland protocol
--protocol_source_h = wayland-drm-client-protocol.h
-+#protocol_source_h = wayland-drm-client-protocol.h
- i965_output_wayland.c: $(protocol_source_h)
- @wayland_scanner_rules@
-
--- /dev/null
+mpeg2vldemo is the only file requiring cxx support. It is not needed for
+buildroot, so disable its compilation to avoid depending on cxx.
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr libva-1.3.0.org/test/Makefile.am libva-1.3.0/test/Makefile.am
+--- libva-1.3.0.org/test/Makefile.am 2014-03-24 05:49:46.000000000 +0100
++++ libva-1.3.0/test/Makefile.am 2014-04-26 18:12:25.644390292 +0200
+@@ -20,7 +20,7 @@
+ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-SUBDIRS = common decode encode vainfo
++SUBDIRS = common encode vainfo
+
+ if USE_X11
+ SUBDIRS += basic putsurface
--- /dev/null
+Fixes compile error in libva-intel-driver
+
+make[4]: Entering directory `/home/br/br/output/build/libva-intel-driver-1.3.2/src'
+ CC i965_drv_video_la-i965_output_wayland.lo
+i965_output_wayland.c:31:41: fatal error: wayland-drm-client-protocol.h: No such file or directory
+compilation terminated.
+
+Patch sent upstream:
+http://lists.freedesktop.org/archives/libva/2014-July/002519.html
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr libva-1.3.1.org/va/wayland/Makefile.am libva-1.3.1/va/wayland/Makefile.am
+--- libva-1.3.1.org/va/wayland/Makefile.am 2014-05-09 06:28:15.000000000 +0200
++++ libva-1.3.1/va/wayland/Makefile.am 2014-07-19 11:46:01.126931242 +0200
+@@ -54,8 +54,8 @@
+
+ noinst_LTLIBRARIES = libva_wayland.la
+ libva_waylandincludedir = ${includedir}/va
+-libva_waylandinclude_HEADERS = $(source_h)
+-libva_wayland_la_SOURCES = $(source_c) $(protocol_source_h)
++libva_waylandinclude_HEADERS = $(source_h) $(protocol_source_h)
++libva_wayland_la_SOURCES = $(source_c)
+ noinst_HEADERS = $(source_h_priv)
+
+ # Wayland protocol
+++ /dev/null
-mpeg2vldemo is the only file requiring cxx support. It is not needed for
-buildroot, so disable its compilation to avoid depending on cxx.
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr libva-1.3.0.org/test/Makefile.am libva-1.3.0/test/Makefile.am
---- libva-1.3.0.org/test/Makefile.am 2014-03-24 05:49:46.000000000 +0100
-+++ libva-1.3.0/test/Makefile.am 2014-04-26 18:12:25.644390292 +0200
-@@ -20,7 +20,7 @@
- # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--SUBDIRS = common decode encode vainfo
-+SUBDIRS = common encode vainfo
-
- if USE_X11
- SUBDIRS += basic putsurface
+++ /dev/null
-Fixes compile error in libva-intel-driver
-
-make[4]: Entering directory `/home/br/br/output/build/libva-intel-driver-1.3.2/src'
- CC i965_drv_video_la-i965_output_wayland.lo
-i965_output_wayland.c:31:41: fatal error: wayland-drm-client-protocol.h: No such file or directory
-compilation terminated.
-
-Patch sent upstream:
-http://lists.freedesktop.org/archives/libva/2014-July/002519.html
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr libva-1.3.1.org/va/wayland/Makefile.am libva-1.3.1/va/wayland/Makefile.am
---- libva-1.3.1.org/va/wayland/Makefile.am 2014-05-09 06:28:15.000000000 +0200
-+++ libva-1.3.1/va/wayland/Makefile.am 2014-07-19 11:46:01.126931242 +0200
-@@ -54,8 +54,8 @@
-
- noinst_LTLIBRARIES = libva_wayland.la
- libva_waylandincludedir = ${includedir}/va
--libva_waylandinclude_HEADERS = $(source_h)
--libva_wayland_la_SOURCES = $(source_c) $(protocol_source_h)
-+libva_waylandinclude_HEADERS = $(source_h) $(protocol_source_h)
-+libva_wayland_la_SOURCES = $(source_c)
- noinst_HEADERS = $(source_h_priv)
-
- # Wayland protocol
--- /dev/null
+From 6ab441e0509a9fda179fd1febf73d0f9fae321d6 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Fri, 2 May 2014 14:24:58 +0200
+Subject: [PATCH] cmake: set the project language
+
+By default, CMake sets C and C++ as languages used by the project.
+This makes the configuration failed if no C++ compiler is found.
+
+Since libwesockets in written in pure C, no C++, there is no reason to
+disable it when the toolchain has no C++ support.
+
+This patch just make the CMake code reflecting the real status of the
+project with regard to the languages used.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f1b6ace..72391b0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ cmake_minimum_required(VERSION 2.6)
+
+-project(libwebsockets)
++project(libwebsockets C)
+
+ set(PACKAGE "libwebsockets")
+ set(CPACK_PACKAGE_NAME "${PACKAGE}")
+--
+1.9.2
+
--- /dev/null
+From 045b035bd9ebbd45f40dda36b143ede869eb5f16 Mon Sep 17 00:00:00 2001
+From: Sagaert Johan <sagaert.johan@skynet.be>
+Date: Fri, 31 Oct 2014 12:25:48 +0100
+Subject: [PATCH 2/2] cmake: disable shared library build when
+ BUILD_SHARED_LIBS is off
+
+Original patch from Samuel Martin, reworked by Sagaert Johan when
+updating libwebsockets.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+Signed-off-by: Sagaert Johan <sagaert.johan@skynet.be>
+[yann.morin.1998@free.fr: further fix after the version bumped]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+ CMakeLists.txt | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7978845..89853ce 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -372,14 +372,19 @@ source_group("Sources" FILES ${SOURCES})
+ #
+ # Create the lib.
+ #
++set(_libs_websockets websockets)
+ add_library(websockets STATIC
+ ${HDR_PRIVATE}
+ ${HDR_PUBLIC}
+ ${SOURCES})
++
++if(BUILD_SHARED_LIBS)
++list(APPEND _libs_websockets websockets_shared)
+ add_library(websockets_shared SHARED
+ ${HDR_PRIVATE}
+ ${HDR_PUBLIC}
+ ${SOURCES})
++endif()
+
+ if (WIN32)
+ # On Windows libs have the same file ending (.lib)
+@@ -400,15 +405,17 @@ endif(WIN32)
+
+ # We want the shared lib to be named "libwebsockets"
+ # not "libwebsocket_shared".
++if(BUILD_SHARED_LIBS)
+ set_target_properties(websockets_shared
+- PROPERTIES
++ PROPERTIES
+ OUTPUT_NAME websockets)
++endif()
+
+ # Set the so version of the lib.
+ # Equivalent to LDFLAGS=-version-info x:x:x
+ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+- foreach(lib websockets websockets_shared)
+- set_target_properties(${lib}
++ foreach(lib ${_libs_websockets})
++ set_target_properties(${lib}
+ PROPERTIES
+ SOVERSION ${SOVERSION})
+ endforeach()
+@@ -460,7 +467,7 @@ if (NOT LWS_WITHOUT_EXTENSIONS)
+ endif()
+
+ # Make sure ZLib is compiled before the libs.
+- foreach (lib websockets websockets_shared)
++ foreach (lib ${_libs_websockets})
+ add_dependencies(${lib} ZLIB)
+ endforeach()
+
+@@ -524,7 +531,7 @@ if (UNIX)
+ endif()
+
+ # Setup the linking for all libs.
+-foreach (lib websockets websockets_shared)
++foreach (lib ${_libs_websockets})
+ target_link_libraries(${lib} ${LIB_LIST})
+ endforeach()
+
+@@ -793,7 +800,7 @@
+ set(LWS_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
+
+ # Export targets (This is used for other CMake projects to easily find the libraries and include files).
+-export(TARGETS websockets websockets_shared
++export(TARGETS ${_libs_websockets}
+ FILE "${PROJECT_BINARY_DIR}/LibwebsocketsTargets.cmake")
+ export(PACKAGE libwebsockets)
+
+@@ -829,7 +835,7 @@
+ ${PROJECT_BINARY_DIR}/LibwebsocketsConfigVersion.cmake
+ @ONLY)
+
+-set_target_properties(websockets websockets_shared
++set_target_properties(${_libs_websockets}
+ PROPERTIES PUBLIC_HEADER "${HDR_PUBLIC}")
+
+ #
+@@ -837,7 +843,7 @@
+ #
+
+ # Install libs and headers.
+-install(TARGETS websockets websockets_shared
++install(TARGETS ${_libs_websockets}
+ EXPORT LibwebsocketsTargets
+ LIBRARY DESTINATION "${LWS_INSTALL_LIB_DIR}${LIB_SUFFIX}" COMPONENT libraries
+ ARCHIVE DESTINATION "${LWS_INSTALL_LIB_DIR}${LIB_SUFFIX}" COMPONENT libraries
+++ /dev/null
-From 6ab441e0509a9fda179fd1febf73d0f9fae321d6 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Fri, 2 May 2014 14:24:58 +0200
-Subject: [PATCH] cmake: set the project language
-
-By default, CMake sets C and C++ as languages used by the project.
-This makes the configuration failed if no C++ compiler is found.
-
-Since libwesockets in written in pure C, no C++, there is no reason to
-disable it when the toolchain has no C++ support.
-
-This patch just make the CMake code reflecting the real status of the
-project with regard to the languages used.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f1b6ace..72391b0 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,6 @@
- cmake_minimum_required(VERSION 2.6)
-
--project(libwebsockets)
-+project(libwebsockets C)
-
- set(PACKAGE "libwebsockets")
- set(CPACK_PACKAGE_NAME "${PACKAGE}")
---
-1.9.2
-
+++ /dev/null
-From 045b035bd9ebbd45f40dda36b143ede869eb5f16 Mon Sep 17 00:00:00 2001
-From: Sagaert Johan <sagaert.johan@skynet.be>
-Date: Fri, 31 Oct 2014 12:25:48 +0100
-Subject: [PATCH 2/2] cmake: disable shared library build when
- BUILD_SHARED_LIBS is off
-
-Original patch from Samuel Martin, reworked by Sagaert Johan when
-updating libwebsockets.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-Signed-off-by: Sagaert Johan <sagaert.johan@skynet.be>
-[yann.morin.1998@free.fr: further fix after the version bumped]
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
- CMakeLists.txt | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7978845..89853ce 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -372,14 +372,19 @@ source_group("Sources" FILES ${SOURCES})
- #
- # Create the lib.
- #
-+set(_libs_websockets websockets)
- add_library(websockets STATIC
- ${HDR_PRIVATE}
- ${HDR_PUBLIC}
- ${SOURCES})
-+
-+if(BUILD_SHARED_LIBS)
-+list(APPEND _libs_websockets websockets_shared)
- add_library(websockets_shared SHARED
- ${HDR_PRIVATE}
- ${HDR_PUBLIC}
- ${SOURCES})
-+endif()
-
- if (WIN32)
- # On Windows libs have the same file ending (.lib)
-@@ -400,15 +405,17 @@ endif(WIN32)
-
- # We want the shared lib to be named "libwebsockets"
- # not "libwebsocket_shared".
-+if(BUILD_SHARED_LIBS)
- set_target_properties(websockets_shared
-- PROPERTIES
-+ PROPERTIES
- OUTPUT_NAME websockets)
-+endif()
-
- # Set the so version of the lib.
- # Equivalent to LDFLAGS=-version-info x:x:x
- if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
-- foreach(lib websockets websockets_shared)
-- set_target_properties(${lib}
-+ foreach(lib ${_libs_websockets})
-+ set_target_properties(${lib}
- PROPERTIES
- SOVERSION ${SOVERSION})
- endforeach()
-@@ -460,7 +467,7 @@ if (NOT LWS_WITHOUT_EXTENSIONS)
- endif()
-
- # Make sure ZLib is compiled before the libs.
-- foreach (lib websockets websockets_shared)
-+ foreach (lib ${_libs_websockets})
- add_dependencies(${lib} ZLIB)
- endforeach()
-
-@@ -524,7 +531,7 @@ if (UNIX)
- endif()
-
- # Setup the linking for all libs.
--foreach (lib websockets websockets_shared)
-+foreach (lib ${_libs_websockets})
- target_link_libraries(${lib} ${LIB_LIST})
- endforeach()
-
-@@ -793,7 +800,7 @@
- set(LWS_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
-
- # Export targets (This is used for other CMake projects to easily find the libraries and include files).
--export(TARGETS websockets websockets_shared
-+export(TARGETS ${_libs_websockets}
- FILE "${PROJECT_BINARY_DIR}/LibwebsocketsTargets.cmake")
- export(PACKAGE libwebsockets)
-
-@@ -829,7 +835,7 @@
- ${PROJECT_BINARY_DIR}/LibwebsocketsConfigVersion.cmake
- @ONLY)
-
--set_target_properties(websockets websockets_shared
-+set_target_properties(${_libs_websockets}
- PROPERTIES PUBLIC_HEADER "${HDR_PUBLIC}")
-
- #
-@@ -837,7 +843,7 @@
- #
-
- # Install libs and headers.
--install(TARGETS websockets websockets_shared
-+install(TARGETS ${_libs_websockets}
- EXPORT LibwebsocketsTargets
- LIBRARY DESTINATION "${LWS_INSTALL_LIB_DIR}${LIB_SUFFIX}" COMPONENT libraries
- ARCHIVE DESTINATION "${LWS_INSTALL_LIB_DIR}${LIB_SUFFIX}" COMPONENT libraries
--- /dev/null
+Modify the default lighttpd configuration file to have one a starting conf
+
+ * Changed the log path to /var/log and logs filenames
+ * Disable IPv6
+ * Do not setuid to a user that doesn't exist on the system
+ * Disable pdf ranges fix for Adobe Reader since it uses regex and we
+ don't always have pcre support
+ * Change the network backend to writev since linux-sendfile fails on buildroot
+
+Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/doc/config/conf.d/access_log.conf b/doc/config/conf.d/access_log.conf
+--- a/doc/config/conf.d/access_log.conf 2010-07-11 18:01:32.000000000 +0100
++++ b/doc/config/conf.d/access_log.conf 2012-07-21 19:37:58.453207990 +0100
+@@ -9,7 +9,7 @@ server.modules += ( "mod_accesslog" )
+ ##
+ ## Default access log.
+ ##
+-accesslog.filename = log_root + "/access.log"
++accesslog.filename = log_root + "/lighttpd-access.log"
+
+ ##
+ ## The default format produces CLF compatible output.
+diff -Nurp a/doc/config/lighttpd.conf b/doc/config/lighttpd.conf
+--- a/doc/config/lighttpd.conf 2011-12-18 12:57:25.000000000 +0000
++++ b/doc/config/lighttpd.conf 2012-07-21 19:40:45.281200552 +0100
+@@ -13,8 +13,8 @@
+ ## if you add a variable here. Add the corresponding variable in the
+ ## chroot example aswell.
+ ##
+-var.log_root = "/var/log/lighttpd"
+-var.server_root = "/srv/www"
++var.log_root = "/var/log"
++var.server_root = "/var/www"
+ var.state_dir = "/var/run"
+ var.home_dir = "/var/lib/lighttpd"
+ var.conf_dir = "/etc/lighttpd"
+@@ -90,7 +90,7 @@ server.port = 80
+ ##
+ ## Use IPv6?
+ ##
+-server.use-ipv6 = "enable"
++# server.use-ipv6 = "enable"
+
+ ##
+ ## bind to a specific IP
+@@ -101,8 +101,8 @@ server.use-ipv6 = "enable"
+ ## Run as a different username/groupname.
+ ## This requires root permissions during startup.
+ ##
+-server.username = "lighttpd"
+-server.groupname = "lighttpd"
++# server.username = "lighttpd"
++# server.groupname = "lighttpd"
+
+ ##
+ ## enable core files.
+@@ -112,7 +112,7 @@ server.groupname = "lighttpd"
+ ##
+ ## Document root
+ ##
+-server.document-root = server_root + "/htdocs"
++server.document-root = server_root
+
+ ##
+ ## The value for the "Server:" response field.
+@@ -138,7 +138,7 @@ server.pid-file = state_dir + "/lighttpd
+ ##
+ ## Path to the error log file
+ ##
+-server.errorlog = log_root + "/error.log"
++server.errorlog = log_root + "/lighttpd-error.log"
+
+ ##
+ ## If you want to log to syslog you have to unset the
+@@ -188,7 +188,7 @@ server.event-handler = "linux-sysepoll"
+ ## linux-sendfile - is recommended for small files.
+ ## writev - is recommended for sending many large files
+ ##
+-server.network-backend = "linux-sendfile"
++server.network-backend = "writev"
+
+ ##
+ ## As lighttpd is a single-threaded server, its main resource limit is
+@@ -311,9 +311,9 @@ url.access-deny = ( "~", ".i
+ ## disable range requests for pdf files
+ ## workaround for a bug in the Acrobat Reader plugin.
+ ##
+-$HTTP["url"] =~ "\.pdf$" {
+- server.range-requests = "disable"
+-}
++# $HTTP["url"] =~ "\.pdf$" {
++# server.range-requests = "disable"
++# }
+
+ ##
+ ## url handling modules (rewrite, redirect)
+++ /dev/null
-Modify the default lighttpd configuration file to have one a starting conf
-
- * Changed the log path to /var/log and logs filenames
- * Disable IPv6
- * Do not setuid to a user that doesn't exist on the system
- * Disable pdf ranges fix for Adobe Reader since it uses regex and we
- don't always have pcre support
- * Change the network backend to writev since linux-sendfile fails on buildroot
-
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/doc/config/conf.d/access_log.conf b/doc/config/conf.d/access_log.conf
---- a/doc/config/conf.d/access_log.conf 2010-07-11 18:01:32.000000000 +0100
-+++ b/doc/config/conf.d/access_log.conf 2012-07-21 19:37:58.453207990 +0100
-@@ -9,7 +9,7 @@ server.modules += ( "mod_accesslog" )
- ##
- ## Default access log.
- ##
--accesslog.filename = log_root + "/access.log"
-+accesslog.filename = log_root + "/lighttpd-access.log"
-
- ##
- ## The default format produces CLF compatible output.
-diff -Nurp a/doc/config/lighttpd.conf b/doc/config/lighttpd.conf
---- a/doc/config/lighttpd.conf 2011-12-18 12:57:25.000000000 +0000
-+++ b/doc/config/lighttpd.conf 2012-07-21 19:40:45.281200552 +0100
-@@ -13,8 +13,8 @@
- ## if you add a variable here. Add the corresponding variable in the
- ## chroot example aswell.
- ##
--var.log_root = "/var/log/lighttpd"
--var.server_root = "/srv/www"
-+var.log_root = "/var/log"
-+var.server_root = "/var/www"
- var.state_dir = "/var/run"
- var.home_dir = "/var/lib/lighttpd"
- var.conf_dir = "/etc/lighttpd"
-@@ -90,7 +90,7 @@ server.port = 80
- ##
- ## Use IPv6?
- ##
--server.use-ipv6 = "enable"
-+# server.use-ipv6 = "enable"
-
- ##
- ## bind to a specific IP
-@@ -101,8 +101,8 @@ server.use-ipv6 = "enable"
- ## Run as a different username/groupname.
- ## This requires root permissions during startup.
- ##
--server.username = "lighttpd"
--server.groupname = "lighttpd"
-+# server.username = "lighttpd"
-+# server.groupname = "lighttpd"
-
- ##
- ## enable core files.
-@@ -112,7 +112,7 @@ server.groupname = "lighttpd"
- ##
- ## Document root
- ##
--server.document-root = server_root + "/htdocs"
-+server.document-root = server_root
-
- ##
- ## The value for the "Server:" response field.
-@@ -138,7 +138,7 @@ server.pid-file = state_dir + "/lighttpd
- ##
- ## Path to the error log file
- ##
--server.errorlog = log_root + "/error.log"
-+server.errorlog = log_root + "/lighttpd-error.log"
-
- ##
- ## If you want to log to syslog you have to unset the
-@@ -188,7 +188,7 @@ server.event-handler = "linux-sysepoll"
- ## linux-sendfile - is recommended for small files.
- ## writev - is recommended for sending many large files
- ##
--server.network-backend = "linux-sendfile"
-+server.network-backend = "writev"
-
- ##
- ## As lighttpd is a single-threaded server, its main resource limit is
-@@ -311,9 +311,9 @@ url.access-deny = ( "~", ".i
- ## disable range requests for pdf files
- ## workaround for a bug in the Acrobat Reader plugin.
- ##
--$HTTP["url"] =~ "\.pdf$" {
-- server.range-requests = "disable"
--}
-+# $HTTP["url"] =~ "\.pdf$" {
-+# server.range-requests = "disable"
-+# }
-
- ##
- ## url handling modules (rewrite, redirect)
--- /dev/null
+From f210735fe2f17a6225432ee3d1239bcf23a8659c Mon Sep 17 00:00:00 2001
+From: Markus Trippelsdorf <markus@trippelsdorf.de>
+Date: Fri, 24 Jun 2011 15:51:00 +0200
+Subject: [PATCH] headers_install: fix __packed in exported kernel headers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+checkpatch.pl warns about using __attribute__((packed)) in kernel
+headers: "__packed is preferred over __attribute__((packed))". If one
+follows that advice it could cause problems in the exported header
+files, because the outside world doesn't know about this shortcut.
+
+For example busybox will fail to compile:
+ CC miscutils/ubi_attach_detach.o
+ In file included from miscutils/ubi_attach_detach.c:27:0:
+ /usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
+ /usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
+...
+
+Fix the problem by substituting __packed with __attribute__((packed)) in
+the header_install.pl script.
+
+Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
+CC: Joe Perches <joe@perches.com>
+Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
+Signed-off-by: Michal Marek <mmarek@suse.cz>
+---
+ scripts/headers_install.pl | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
+index efb3be1..48462be 100644
+--- a/scripts/headers_install.pl
++++ b/scripts/headers_install.pl
+@@ -35,6 +35,7 @@ foreach my $file (@files) {
+ $line =~ s/([\s(])__iomem\s/$1/g;
+ $line =~ s/\s__attribute_const__\s/ /g;
+ $line =~ s/\s__attribute_const__$//g;
++ $line =~ s/\b__packed\b/__attribute__((packed))/g;
+ $line =~ s/^#include <linux\/compiler.h>//;
+ $line =~ s/(^|\s)(inline)\b/$1__$2__/g;
+ $line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
+--
+1.7.5.4
+
+++ /dev/null
-From f210735fe2f17a6225432ee3d1239bcf23a8659c Mon Sep 17 00:00:00 2001
-From: Markus Trippelsdorf <markus@trippelsdorf.de>
-Date: Fri, 24 Jun 2011 15:51:00 +0200
-Subject: [PATCH] headers_install: fix __packed in exported kernel headers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-checkpatch.pl warns about using __attribute__((packed)) in kernel
-headers: "__packed is preferred over __attribute__((packed))". If one
-follows that advice it could cause problems in the exported header
-files, because the outside world doesn't know about this shortcut.
-
-For example busybox will fail to compile:
- CC miscutils/ubi_attach_detach.o
- In file included from miscutils/ubi_attach_detach.c:27:0:
- /usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
- /usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
-...
-
-Fix the problem by substituting __packed with __attribute__((packed)) in
-the header_install.pl script.
-
-Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-CC: Joe Perches <joe@perches.com>
-Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
-Signed-off-by: Michal Marek <mmarek@suse.cz>
----
- scripts/headers_install.pl | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
-index efb3be1..48462be 100644
---- a/scripts/headers_install.pl
-+++ b/scripts/headers_install.pl
-@@ -35,6 +35,7 @@ foreach my $file (@files) {
- $line =~ s/([\s(])__iomem\s/$1/g;
- $line =~ s/\s__attribute_const__\s/ /g;
- $line =~ s/\s__attribute_const__$//g;
-+ $line =~ s/\b__packed\b/__attribute__((packed))/g;
- $line =~ s/^#include <linux\/compiler.h>//;
- $line =~ s/(^|\s)(inline)\b/$1__$2__/g;
- $line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
---
-1.7.5.4
-
--- /dev/null
+From 98187a5238939edc889fdaad93b00628b55d1e08 Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+Date: Sat, 3 May 2014 19:43:20 +0200
+Subject: [PATCH] test-serial: Remove test-serial
+
+This folders only contains python tests scripts which would force us to
+enable a dependency to host-python which seems kind of silly since
+theses are only tests scripts.
+
+Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+---
+ Makefile.am | 2 +-
+ configure.ac | 6 ------
+ 2 files changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 265f0d7..e7bb1a1 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,7 +2,7 @@ include $(top_srcdir)/Makefile.common
+
+ ACLOCAL_AMFLAGS = -I m4
+
+-SUBDIRS = lib addrdb src tests test-serial
++SUBDIRS = lib addrdb src tests
+
+ include_HEADERS = include/ieee802154.h include/nl802154.h
+ noinst_HEADERS = include/libcommon.h include/addrdb.h include/logging.h
+diff --git a/configure.ac b/configure.ac
+index 17658af..506b289 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -77,11 +77,6 @@ AC_PROG_LIBTOOL
+ AM_PROG_LEX
+ AC_PROG_YACC
+ AC_SUBST(LIBTOOL_DEPS)
+-# Currently the scripts works with python2.x only
+-# Check for this at first
+-AC_PATH_PROG(PYTHON, python2 python2.7 python2.6 python2.5 python)
+-AM_PATH_PYTHON(,, [:])
+-py_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2])
+ AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir)
+
+ # Checks for libraries.
+@@ -135,6 +130,5 @@ AC_CONFIG_FILES([
+ addrdb/Makefile
+ src/Makefile
+ tests/Makefile
+- test-serial/Makefile
+ ])
+ AC_OUTPUT
+--
+1.9.2
+
+++ /dev/null
-From 98187a5238939edc889fdaad93b00628b55d1e08 Mon Sep 17 00:00:00 2001
-From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
-Date: Sat, 3 May 2014 19:43:20 +0200
-Subject: [PATCH] test-serial: Remove test-serial
-
-This folders only contains python tests scripts which would force us to
-enable a dependency to host-python which seems kind of silly since
-theses are only tests scripts.
-
-Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
----
- Makefile.am | 2 +-
- configure.ac | 6 ------
- 2 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 265f0d7..e7bb1a1 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2,7 +2,7 @@ include $(top_srcdir)/Makefile.common
-
- ACLOCAL_AMFLAGS = -I m4
-
--SUBDIRS = lib addrdb src tests test-serial
-+SUBDIRS = lib addrdb src tests
-
- include_HEADERS = include/ieee802154.h include/nl802154.h
- noinst_HEADERS = include/libcommon.h include/addrdb.h include/logging.h
-diff --git a/configure.ac b/configure.ac
-index 17658af..506b289 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -77,11 +77,6 @@ AC_PROG_LIBTOOL
- AM_PROG_LEX
- AC_PROG_YACC
- AC_SUBST(LIBTOOL_DEPS)
--# Currently the scripts works with python2.x only
--# Check for this at first
--AC_PATH_PROG(PYTHON, python2 python2.7 python2.6 python2.5 python)
--AM_PATH_PYTHON(,, [:])
--py_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2])
- AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir)
-
- # Checks for libraries.
-@@ -135,6 +130,5 @@ AC_CONFIG_FILES([
- addrdb/Makefile
- src/Makefile
- tests/Makefile
-- test-serial/Makefile
- ])
- AC_OUTPUT
---
-1.9.2
-
--- /dev/null
+From upstream git (git://git.directfb.org/git/directfb/libs/LiTE.git)
+
+From ffe0ce78327a63ddb1265328ea9b5b03acdca019 Mon Sep 17 00:00:00 2001
+From: Denis Oliver Kropp <dok@directfb.org>
+Date: Fri, 1 Apr 2011 20:20:26 +0200
+Subject: [PATCH] dfbspy: Build fix for dfbspy example.
+
+---
+ examples/dfbspy.c | 20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/examples/dfbspy.c b/examples/dfbspy.c
+index 5f36f0b..c7f9725 100644
+--- a/examples/dfbspy.c
++++ b/examples/dfbspy.c
+@@ -89,9 +89,9 @@ read_stat( FusionStat *stat, int world )
+
+ /**************************************************************************************************/
+
+-#define CALC(x) stat.x = (int)(((s.x - last_stat.x) * 1000 / (float) diff) + 0.5f)
++#define CALC(x) stats.x = (int)(((s.x - last_stat.x) * 1000 / (float) diff) + 0.5f)
+
+-static FusionStat last_stat, stat;
++static FusionStat last_stat, stats;
+ static long long last_millis;
+
+ static int
+@@ -145,14 +145,14 @@ static const struct {
+ void (*update)( LiteLabel *label, void *ctx );
+ void *ctx;
+ } list[] = {
+- { "lease/purchase", update_number, &stat.lease_purchase },
+- { "cede", update_number, &stat.cede },
+- { "attach", update_number, &stat.attach },
+- { "detach", update_number, &stat.detach },
+- { "ref up", update_number, &stat.ref_up },
+- { "ref down", update_number, &stat.ref_down },
+- { "prevail/swoop", update_number, &stat.prevail_swoop },
+- { "dismiss", update_number, &stat.dismiss }
++ { "lease/purchase", update_number, &stats.lease_purchase },
++ { "cede", update_number, &stats.cede },
++ { "attach", update_number, &stats.attach },
++ { "detach", update_number, &stats.detach },
++ { "ref up", update_number, &stats.ref_up },
++ { "ref down", update_number, &stats.ref_down },
++ { "prevail/swoop", update_number, &stats.prevail_swoop },
++ { "dismiss", update_number, &stats.dismiss }
+ };
+
+ #define NUM_LIST (sizeof(list)/sizeof(list[0]))
+--
+1.7.6.3
+
--- /dev/null
+--- a/Makefile.in.orig 2008-07-07 13:07:12.000000000 +0200
++++ b/Makefile.in 2008-07-07 13:07:05.000000000 +0200
+@@ -202,7 +202,7 @@
+ target_vendor = @target_vendor@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-SUBDIRS = data fonts lite leck examples tests
++SUBDIRS = data fonts lite leck examples
+ EXTRA_DIST = TODO lite.pc.in leck.pc.in
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = lite.pc leck.pc
--- /dev/null
+From 7982cccbb6ad58f3802bb266467290200d130a48 Mon Sep 17 00:00:00 2001
+From: Ville Syrjala <syrjala@sci.fi>
+Date: Sat, 27 Nov 2010 01:14:25 +0200
+Subject: [PATCH] Too many '\' characters in the .pc file
+
+---
+ lite.pc.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/lite.pc.in b/lite.pc.in
+index 48eb969..3a21eaa 100644
+--- a/lite.pc.in
++++ b/lite.pc.in
+@@ -9,4 +9,4 @@ Description: "LiTE" is a Toolkit Engine
+ Requires: directfb >= @DFB_REQUIRED_VERSION@
+ Version: @VERSION@
+ Libs: -L${libdir} -llite
+-Cflags: -I${includedir} -DLITEFONTDIR=\\\"@LITEFONTDIR@\\\"
++Cflags: -I${includedir} -DLITEFONTDIR=\"@LITEFONTDIR@\"
+--
+1.7.1
+
+++ /dev/null
-From upstream git (git://git.directfb.org/git/directfb/libs/LiTE.git)
-
-From ffe0ce78327a63ddb1265328ea9b5b03acdca019 Mon Sep 17 00:00:00 2001
-From: Denis Oliver Kropp <dok@directfb.org>
-Date: Fri, 1 Apr 2011 20:20:26 +0200
-Subject: [PATCH] dfbspy: Build fix for dfbspy example.
-
----
- examples/dfbspy.c | 20 ++++++++++----------
- 1 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/examples/dfbspy.c b/examples/dfbspy.c
-index 5f36f0b..c7f9725 100644
---- a/examples/dfbspy.c
-+++ b/examples/dfbspy.c
-@@ -89,9 +89,9 @@ read_stat( FusionStat *stat, int world )
-
- /**************************************************************************************************/
-
--#define CALC(x) stat.x = (int)(((s.x - last_stat.x) * 1000 / (float) diff) + 0.5f)
-+#define CALC(x) stats.x = (int)(((s.x - last_stat.x) * 1000 / (float) diff) + 0.5f)
-
--static FusionStat last_stat, stat;
-+static FusionStat last_stat, stats;
- static long long last_millis;
-
- static int
-@@ -145,14 +145,14 @@ static const struct {
- void (*update)( LiteLabel *label, void *ctx );
- void *ctx;
- } list[] = {
-- { "lease/purchase", update_number, &stat.lease_purchase },
-- { "cede", update_number, &stat.cede },
-- { "attach", update_number, &stat.attach },
-- { "detach", update_number, &stat.detach },
-- { "ref up", update_number, &stat.ref_up },
-- { "ref down", update_number, &stat.ref_down },
-- { "prevail/swoop", update_number, &stat.prevail_swoop },
-- { "dismiss", update_number, &stat.dismiss }
-+ { "lease/purchase", update_number, &stats.lease_purchase },
-+ { "cede", update_number, &stats.cede },
-+ { "attach", update_number, &stats.attach },
-+ { "detach", update_number, &stats.detach },
-+ { "ref up", update_number, &stats.ref_up },
-+ { "ref down", update_number, &stats.ref_down },
-+ { "prevail/swoop", update_number, &stats.prevail_swoop },
-+ { "dismiss", update_number, &stats.dismiss }
- };
-
- #define NUM_LIST (sizeof(list)/sizeof(list[0]))
---
-1.7.6.3
-
+++ /dev/null
---- a/Makefile.in.orig 2008-07-07 13:07:12.000000000 +0200
-+++ b/Makefile.in 2008-07-07 13:07:05.000000000 +0200
-@@ -202,7 +202,7 @@
- target_vendor = @target_vendor@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = data fonts lite leck examples tests
-+SUBDIRS = data fonts lite leck examples
- EXTRA_DIST = TODO lite.pc.in leck.pc.in
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = lite.pc leck.pc
+++ /dev/null
-From 7982cccbb6ad58f3802bb266467290200d130a48 Mon Sep 17 00:00:00 2001
-From: Ville Syrjala <syrjala@sci.fi>
-Date: Sat, 27 Nov 2010 01:14:25 +0200
-Subject: [PATCH] Too many '\' characters in the .pc file
-
----
- lite.pc.in | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/lite.pc.in b/lite.pc.in
-index 48eb969..3a21eaa 100644
---- a/lite.pc.in
-+++ b/lite.pc.in
-@@ -9,4 +9,4 @@ Description: "LiTE" is a Toolkit Engine
- Requires: directfb >= @DFB_REQUIRED_VERSION@
- Version: @VERSION@
- Libs: -L${libdir} -llite
--Cflags: -I${includedir} -DLITEFONTDIR=\\\"@LITEFONTDIR@\\\"
-+Cflags: -I${includedir} -DLITEFONTDIR=\"@LITEFONTDIR@\"
---
-1.7.1
-
--- /dev/null
+Add support for static only build
+
+This patch adds support for a BUILD_SHARED_LIB variable that allows to
+enable/disable the build of the shared library, in order to support
+static-only builds.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -85,6 +85,9 @@
+ # Build and install static library
+ BUILD_STATIC_LIB := 1
+
++# Build and install shared library
++BUILD_SHARED_LIB := 1
++
+ # Set these to add preprocessor or compiler flags, or use
+ # environment variables
+ # CFLAGS :=
+Index: b/lib/Module.mk
+===================================================================
+--- a/lib/Module.mk
++++ b/lib/Module.mk
+@@ -43,8 +43,14 @@
+ LIBSTLIBNAME := libsensors.a
+ LIBSHSONAME := libsensors.so.$(LIBMAINVER)
+
++ifeq ($(BUILD_SHARED_LIB),1)
+ LIBTARGETS := $(MODULE_DIR)/$(LIBSHLIBNAME) \
+ $(MODULE_DIR)/$(LIBSHSONAME) $(MODULE_DIR)/$(LIBSHBASENAME)
++LIBDEP_FOR_PROGS := $(LIBSHBASENAME)
++else
++LIBDEP_FOR_PROGS := $(LIBSTLIBNAME)
++endif
++
+ ifeq ($(BUILD_STATIC_LIB),1)
+ LIBTARGETS += $(MODULE_DIR)/$(LIBSTLIBNAME)
+ endif
+@@ -131,9 +137,11 @@
+ ifeq ($(BUILD_STATIC_LIB),1)
+ $(INSTALL) -m 644 $(LIB_DIR)/$(LIBSTLIBNAME) $(DESTDIR)$(LIBDIR)
+ endif
++ifeq ($(BUILD_SHARED_LIB),1)
+ $(INSTALL) -m 755 $(LIB_DIR)/$(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR)
+ $(LN) $(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBSHSONAME)
+ $(LN) $(LIBSHSONAME) $(DESTDIR)$(LIBDIR)/$(LIBSHBASENAME)
++endif
+ @if [ -z "$(DESTDIR)" -a "$(LIBDIR)" != "/usr/lib" -a "$(LIBDIR)" != "/lib" ] ; then \
+ if [ -e "/usr/lib/$(LIBSHSONAME)" -o -e "/usr/lib/$(LIBSHBASENAME)" ] ; then \
+ echo '******************************************************************************' ; \
+Index: b/prog/sensord/Module.mk
+===================================================================
+--- a/prog/sensord/Module.mk
++++ b/prog/sensord/Module.mk
+@@ -41,7 +41,7 @@
+ REMOVESENSORDBIN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(SBINDIR)/%,$(PROGSENSORDTARGETS))
+ REMOVESENSORDMAN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(PROGSENSORDMAN8DIR)/%,$(PROGSENSORDMAN8FILES))
+
+-$(PROGSENSORDTARGETS): $(PROGSENSORDSOURCES:.c=.ro) lib/$(LIBSHBASENAME)
++$(PROGSENSORDTARGETS): $(PROGSENSORDSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS)
+ $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORDSOURCES:.c=.ro) -Llib -lsensors -lrrd
+
+ all-prog-sensord: $(PROGSENSORDTARGETS)
+Index: b/prog/sensors/Module.mk
+===================================================================
+--- a/prog/sensors/Module.mk
++++ b/prog/sensors/Module.mk
+@@ -39,8 +39,8 @@
+
+ LIBICONV := $(shell if /sbin/ldconfig -p | grep -q '/libiconv\.so$$' ; then echo \-liconv; else echo; fi)
+
+-$(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBSHBASENAME)
+- $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors
++$(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS)
++ $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors -lm
+
+ all-prog-sensors: $(PROGSENSORSTARGETS)
+ user :: all-prog-sensors
--- /dev/null
+Remove usage of host ldconfig
+
+To know whether the libiconv library is available, lm-sensors is using
+the host ldconfig, which is obviously wrong in cross-compilation.
+
+Moreover, the lm-sensors program making use of the iconv_*() API
+already does it when __UCLIBC__ is *not* defined. In this case, the
+iconv_*() functions are already part of the C library, so there is no
+need to link against a separate library. Therefore, this patch simply
+removes the libiconv handling.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/prog/sensors/Module.mk
+===================================================================
+--- a/prog/sensors/Module.mk
++++ b/prog/sensors/Module.mk
+@@ -37,10 +37,8 @@
+ REMOVESENSORSBIN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(BINDIR)/%,$(PROGSENSORSTARGETS))
+ REMOVESENSORSMAN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(PROGSENSORSMAN1DIR)/%,$(PROGSENSORSMAN1FILES))
+
+-LIBICONV := $(shell if /sbin/ldconfig -p | grep -q '/libiconv\.so$$' ; then echo \-liconv; else echo; fi)
+-
+ $(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS)
+- $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors -lm
++ $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) -Llib -lsensors -lm
+
+ all-prog-sensors: $(PROGSENSORSTARGETS)
+ user :: all-prog-sensors
+++ /dev/null
-Add support for static only build
-
-This patch adds support for a BUILD_SHARED_LIB variable that allows to
-enable/disable the build of the shared library, in order to support
-static-only builds.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -85,6 +85,9 @@
- # Build and install static library
- BUILD_STATIC_LIB := 1
-
-+# Build and install shared library
-+BUILD_SHARED_LIB := 1
-+
- # Set these to add preprocessor or compiler flags, or use
- # environment variables
- # CFLAGS :=
-Index: b/lib/Module.mk
-===================================================================
---- a/lib/Module.mk
-+++ b/lib/Module.mk
-@@ -43,8 +43,14 @@
- LIBSTLIBNAME := libsensors.a
- LIBSHSONAME := libsensors.so.$(LIBMAINVER)
-
-+ifeq ($(BUILD_SHARED_LIB),1)
- LIBTARGETS := $(MODULE_DIR)/$(LIBSHLIBNAME) \
- $(MODULE_DIR)/$(LIBSHSONAME) $(MODULE_DIR)/$(LIBSHBASENAME)
-+LIBDEP_FOR_PROGS := $(LIBSHBASENAME)
-+else
-+LIBDEP_FOR_PROGS := $(LIBSTLIBNAME)
-+endif
-+
- ifeq ($(BUILD_STATIC_LIB),1)
- LIBTARGETS += $(MODULE_DIR)/$(LIBSTLIBNAME)
- endif
-@@ -131,9 +137,11 @@
- ifeq ($(BUILD_STATIC_LIB),1)
- $(INSTALL) -m 644 $(LIB_DIR)/$(LIBSTLIBNAME) $(DESTDIR)$(LIBDIR)
- endif
-+ifeq ($(BUILD_SHARED_LIB),1)
- $(INSTALL) -m 755 $(LIB_DIR)/$(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR)
- $(LN) $(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBSHSONAME)
- $(LN) $(LIBSHSONAME) $(DESTDIR)$(LIBDIR)/$(LIBSHBASENAME)
-+endif
- @if [ -z "$(DESTDIR)" -a "$(LIBDIR)" != "/usr/lib" -a "$(LIBDIR)" != "/lib" ] ; then \
- if [ -e "/usr/lib/$(LIBSHSONAME)" -o -e "/usr/lib/$(LIBSHBASENAME)" ] ; then \
- echo '******************************************************************************' ; \
-Index: b/prog/sensord/Module.mk
-===================================================================
---- a/prog/sensord/Module.mk
-+++ b/prog/sensord/Module.mk
-@@ -41,7 +41,7 @@
- REMOVESENSORDBIN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(SBINDIR)/%,$(PROGSENSORDTARGETS))
- REMOVESENSORDMAN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(PROGSENSORDMAN8DIR)/%,$(PROGSENSORDMAN8FILES))
-
--$(PROGSENSORDTARGETS): $(PROGSENSORDSOURCES:.c=.ro) lib/$(LIBSHBASENAME)
-+$(PROGSENSORDTARGETS): $(PROGSENSORDSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS)
- $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORDSOURCES:.c=.ro) -Llib -lsensors -lrrd
-
- all-prog-sensord: $(PROGSENSORDTARGETS)
-Index: b/prog/sensors/Module.mk
-===================================================================
---- a/prog/sensors/Module.mk
-+++ b/prog/sensors/Module.mk
-@@ -39,8 +39,8 @@
-
- LIBICONV := $(shell if /sbin/ldconfig -p | grep -q '/libiconv\.so$$' ; then echo \-liconv; else echo; fi)
-
--$(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBSHBASENAME)
-- $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors
-+$(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS)
-+ $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors -lm
-
- all-prog-sensors: $(PROGSENSORSTARGETS)
- user :: all-prog-sensors
+++ /dev/null
-Remove usage of host ldconfig
-
-To know whether the libiconv library is available, lm-sensors is using
-the host ldconfig, which is obviously wrong in cross-compilation.
-
-Moreover, the lm-sensors program making use of the iconv_*() API
-already does it when __UCLIBC__ is *not* defined. In this case, the
-iconv_*() functions are already part of the C library, so there is no
-need to link against a separate library. Therefore, this patch simply
-removes the libiconv handling.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/prog/sensors/Module.mk
-===================================================================
---- a/prog/sensors/Module.mk
-+++ b/prog/sensors/Module.mk
-@@ -37,10 +37,8 @@
- REMOVESENSORSBIN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(BINDIR)/%,$(PROGSENSORSTARGETS))
- REMOVESENSORSMAN := $(patsubst $(MODULE_DIR)/%,$(DESTDIR)$(PROGSENSORSMAN1DIR)/%,$(PROGSENSORSMAN1FILES))
-
--LIBICONV := $(shell if /sbin/ldconfig -p | grep -q '/libiconv\.so$$' ; then echo \-liconv; else echo; fi)
--
- $(PROGSENSORSTARGETS): $(PROGSENSORSSOURCES:.c=.ro) lib/$(LIBDEP_FOR_PROGS)
-- $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) $(LIBICONV) -Llib -lsensors -lm
-+ $(CC) $(EXLDFLAGS) -o $@ $(PROGSENSORSSOURCES:.c=.ro) -Llib -lsensors -lm
-
- all-prog-sensors: $(PROGSENSORSTARGETS)
- user :: all-prog-sensors
--- /dev/null
+--- /lockfile-progs.orig.c 2007-10-11 10:32:09.000000000 -0300
++++ /lockfile-progs.c 2007-10-11 10:32:28.000000000 -0300
+@@ -93,7 +93,7 @@
+ { NULL, 0, NULL, 0 }
+ };
+
+- char *cmd_name = rindex(argv[0], '/');
++ char *cmd_name = strrchr(argv[0], '/');
+ int mail_cmd_p = 0;
+
+ if(cmd_name != NULL) {
+++ /dev/null
---- /lockfile-progs.orig.c 2007-10-11 10:32:09.000000000 -0300
-+++ /lockfile-progs.c 2007-10-11 10:32:28.000000000 -0300
-@@ -93,7 +93,7 @@
- { NULL, 0, NULL, 0 }
- };
-
-- char *cmd_name = rindex(argv[0], '/');
-+ char *cmd_name = strrchr(argv[0], '/');
- int mail_cmd_p = 0;
-
- if(cmd_name != NULL) {
--- /dev/null
+Fix build when iconv support is not available
+
+When iconv support is not available, the apr-util library does not
+provide character set conversion features, and therefore APR_HAS_XLATE
+is false.
+
+However, on Linux !defined(_WIN32) is always true, but the part of the
+code that defines the APRCharsetDecoder and APRCharsetEncoder are only
+enclosed in a #if APR_HAS_XLATE, without the "|| defined(_WIN32)"
+which leads to build failures: the APRCharsetEncoder and
+APRCharsetDecoder classes are used without being defined.
+
+This patch removes the || !defined(_WIN32) so that when iconv support
+is not here, we fall back to raising an exception at runtime.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/main/cpp/charsetdecoder.cpp
+===================================================================
+--- a/src/main/cpp/charsetdecoder.cpp
++++ b/src/main/cpp/charsetdecoder.cpp
+@@ -476,7 +476,7 @@
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1"))) {
+ return new ISOLatinCharsetDecoder();
+ }
+-#if APR_HAS_XLATE || !defined(_WIN32)
++#if APR_HAS_XLATE
+ return new APRCharsetDecoder(charset);
+ #else
+ throw IllegalArgumentException(charset);
+Index: b/src/main/cpp/charsetencoder.cpp
+===================================================================
+--- a/src/main/cpp/charsetencoder.cpp
++++ b/src/main/cpp/charsetencoder.cpp
+@@ -484,7 +484,7 @@
+ } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16LE"), LOG4CXX_STR("utf-16le"))) {
+ return new UTF16LECharsetEncoder();
+ }
+-#if APR_HAS_XLATE || !defined(_WIN32)
++#if APR_HAS_XLATE
+ return new APRCharsetEncoder(charset);
+ #else
+ throw IllegalArgumentException(charset);
--- /dev/null
+commit bcaf1f8a682d641cee325142099c371464fd5946
+Author: Curtis William Arnold <carnold@apache.org>
+Date: Tue May 20 16:05:37 2008 +0000
+
+ LOGCXX-286: gcc 4.3 requires #include <cstring>
+
+ git-svn-id: https://svn.apache.org/repos/asf/logging/log4cxx/trunk@658304 13f79535-47bb-0310-9956-ffa450edef68
+
+diff --git a/src/examples/cpp/console.cpp b/src/examples/cpp/console.cpp
+index 6a01d8a..a673a10 100755
+--- a/src/examples/cpp/console.cpp
++++ b/src/examples/cpp/console.cpp
+@@ -22,6 +22,7 @@
+ #include <log4cxx/logmanager.h>
+ #include <iostream>
+ #include <locale.h>
++#include <cstring>
+
+ using namespace log4cxx;
+ using namespace log4cxx::helpers;
+diff --git a/src/main/cpp/inputstreamreader.cpp b/src/main/cpp/inputstreamreader.cpp
+index 52b1c0a..cb45181 100644
+--- a/src/main/cpp/inputstreamreader.cpp
++++ b/src/main/cpp/inputstreamreader.cpp
+@@ -20,6 +20,7 @@
+ #include <log4cxx/helpers/exception.h>
+ #include <log4cxx/helpers/pool.h>
+ #include <log4cxx/helpers/bytebuffer.h>
++#include <cstring>
+
+ using namespace log4cxx;
+ using namespace log4cxx::helpers;
+diff --git a/src/main/cpp/socketoutputstream.cpp b/src/main/cpp/socketoutputstream.cpp
+index 185f835..c61eb11 100644
+--- a/src/main/cpp/socketoutputstream.cpp
++++ b/src/main/cpp/socketoutputstream.cpp
+@@ -19,6 +19,7 @@
+ #include <log4cxx/helpers/socketoutputstream.h>
+ #include <log4cxx/helpers/socket.h>
+ #include <log4cxx/helpers/bytebuffer.h>
++#include <cstring>
+
+ using namespace log4cxx;
+ using namespace log4cxx::helpers;
--- /dev/null
+commit ce62c00ea5f9bf2f0740ecde5b245c9b7edc80ff
+Author: Curtis William Arnold <carnold@apache.org>
+Date: Mon Apr 27 03:53:50 2009 +0000
+
+ LOGCXX-332: fails to build with gcc 4.4
+
+ git-svn-id: https://svn.apache.org/repos/asf/logging/log4cxx/trunk@768863 13f79535-47bb-0310-9956-ffa450edef68
+
+diff --git a/src/examples/cpp/console.cpp b/src/examples/cpp/console.cpp
+index a673a10..f44c944 100755
+--- a/src/examples/cpp/console.cpp
++++ b/src/examples/cpp/console.cpp
+@@ -23,6 +23,8 @@
+ #include <iostream>
+ #include <locale.h>
+ #include <cstring>
++#include <cstdio>
++#include <stdint.h>
+
+ using namespace log4cxx;
+ using namespace log4cxx::helpers;
+++ /dev/null
-Fix build when iconv support is not available
-
-When iconv support is not available, the apr-util library does not
-provide character set conversion features, and therefore APR_HAS_XLATE
-is false.
-
-However, on Linux !defined(_WIN32) is always true, but the part of the
-code that defines the APRCharsetDecoder and APRCharsetEncoder are only
-enclosed in a #if APR_HAS_XLATE, without the "|| defined(_WIN32)"
-which leads to build failures: the APRCharsetEncoder and
-APRCharsetDecoder classes are used without being defined.
-
-This patch removes the || !defined(_WIN32) so that when iconv support
-is not here, we fall back to raising an exception at runtime.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/src/main/cpp/charsetdecoder.cpp
-===================================================================
---- a/src/main/cpp/charsetdecoder.cpp
-+++ b/src/main/cpp/charsetdecoder.cpp
-@@ -476,7 +476,7 @@
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1"))) {
- return new ISOLatinCharsetDecoder();
- }
--#if APR_HAS_XLATE || !defined(_WIN32)
-+#if APR_HAS_XLATE
- return new APRCharsetDecoder(charset);
- #else
- throw IllegalArgumentException(charset);
-Index: b/src/main/cpp/charsetencoder.cpp
-===================================================================
---- a/src/main/cpp/charsetencoder.cpp
-+++ b/src/main/cpp/charsetencoder.cpp
-@@ -484,7 +484,7 @@
- } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16LE"), LOG4CXX_STR("utf-16le"))) {
- return new UTF16LECharsetEncoder();
- }
--#if APR_HAS_XLATE || !defined(_WIN32)
-+#if APR_HAS_XLATE
- return new APRCharsetEncoder(charset);
- #else
- throw IllegalArgumentException(charset);
+++ /dev/null
-commit bcaf1f8a682d641cee325142099c371464fd5946
-Author: Curtis William Arnold <carnold@apache.org>
-Date: Tue May 20 16:05:37 2008 +0000
-
- LOGCXX-286: gcc 4.3 requires #include <cstring>
-
- git-svn-id: https://svn.apache.org/repos/asf/logging/log4cxx/trunk@658304 13f79535-47bb-0310-9956-ffa450edef68
-
-diff --git a/src/examples/cpp/console.cpp b/src/examples/cpp/console.cpp
-index 6a01d8a..a673a10 100755
---- a/src/examples/cpp/console.cpp
-+++ b/src/examples/cpp/console.cpp
-@@ -22,6 +22,7 @@
- #include <log4cxx/logmanager.h>
- #include <iostream>
- #include <locale.h>
-+#include <cstring>
-
- using namespace log4cxx;
- using namespace log4cxx::helpers;
-diff --git a/src/main/cpp/inputstreamreader.cpp b/src/main/cpp/inputstreamreader.cpp
-index 52b1c0a..cb45181 100644
---- a/src/main/cpp/inputstreamreader.cpp
-+++ b/src/main/cpp/inputstreamreader.cpp
-@@ -20,6 +20,7 @@
- #include <log4cxx/helpers/exception.h>
- #include <log4cxx/helpers/pool.h>
- #include <log4cxx/helpers/bytebuffer.h>
-+#include <cstring>
-
- using namespace log4cxx;
- using namespace log4cxx::helpers;
-diff --git a/src/main/cpp/socketoutputstream.cpp b/src/main/cpp/socketoutputstream.cpp
-index 185f835..c61eb11 100644
---- a/src/main/cpp/socketoutputstream.cpp
-+++ b/src/main/cpp/socketoutputstream.cpp
-@@ -19,6 +19,7 @@
- #include <log4cxx/helpers/socketoutputstream.h>
- #include <log4cxx/helpers/socket.h>
- #include <log4cxx/helpers/bytebuffer.h>
-+#include <cstring>
-
- using namespace log4cxx;
- using namespace log4cxx::helpers;
+++ /dev/null
-commit ce62c00ea5f9bf2f0740ecde5b245c9b7edc80ff
-Author: Curtis William Arnold <carnold@apache.org>
-Date: Mon Apr 27 03:53:50 2009 +0000
-
- LOGCXX-332: fails to build with gcc 4.4
-
- git-svn-id: https://svn.apache.org/repos/asf/logging/log4cxx/trunk@768863 13f79535-47bb-0310-9956-ffa450edef68
-
-diff --git a/src/examples/cpp/console.cpp b/src/examples/cpp/console.cpp
-index a673a10..f44c944 100755
---- a/src/examples/cpp/console.cpp
-+++ b/src/examples/cpp/console.cpp
-@@ -23,6 +23,8 @@
- #include <iostream>
- #include <locale.h>
- #include <cstring>
-+#include <cstdio>
-+#include <stdint.h>
-
- using namespace log4cxx;
- using namespace log4cxx::helpers;
--- /dev/null
+We need to be able to pass extra LIBS when our toolchain lacks NLS support,
+this way we can build libintl and link to it.
+A good example is uClibc with locale support disabled.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura lshw-B.02.16.orig/src/gui/Makefile lshw-B.02.16/src/gui/Makefile
+--- lshw-B.02.16.orig/src/gui/Makefile 2012-05-28 12:32:49.303885759 -0300
++++ lshw-B.02.16/src/gui/Makefile 2012-05-28 12:33:33.850206001 -0300
+@@ -11,7 +11,7 @@
+ CXXFLAGS=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
+ CFLAGS=$(CXXFLAGS) $(DEFINES)
+ GTKLIBS=$(shell pkg-config gtk+-2.0 gmodule-2.0 --libs)
+-LIBS=-L../core -llshw -lresolv -lsqlite3 $(GTKLIBS)
++LIBS+=-L../core -llshw -lresolv -lsqlite3 $(GTKLIBS)
+ LDFLAGS=
+ ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
+ LDFLAGS+= -Wl,--as-needed
+diff -Nura lshw-B.02.16.orig/src/Makefile lshw-B.02.16/src/Makefile
+--- lshw-B.02.16.orig/src/Makefile 2012-05-28 12:32:49.292885680 -0300
++++ lshw-B.02.16/src/Makefile 2012-05-28 12:33:24.530139060 -0300
+@@ -30,7 +30,7 @@
+ LDFLAGS+= -Wl,--as-needed
+ endif
+ LDSTATIC=-static
+-LIBS=-llshw -lresolv
++LIBS+=-llshw -lresolv
+ ifeq ($(SQLITE), 1)
+ LIBS+= $(shell pkg-config --libs sqlite3)
+ endif
+++ /dev/null
-We need to be able to pass extra LIBS when our toolchain lacks NLS support,
-this way we can build libintl and link to it.
-A good example is uClibc with locale support disabled.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura lshw-B.02.16.orig/src/gui/Makefile lshw-B.02.16/src/gui/Makefile
---- lshw-B.02.16.orig/src/gui/Makefile 2012-05-28 12:32:49.303885759 -0300
-+++ lshw-B.02.16/src/gui/Makefile 2012-05-28 12:33:33.850206001 -0300
-@@ -11,7 +11,7 @@
- CXXFLAGS=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
- CFLAGS=$(CXXFLAGS) $(DEFINES)
- GTKLIBS=$(shell pkg-config gtk+-2.0 gmodule-2.0 --libs)
--LIBS=-L../core -llshw -lresolv -lsqlite3 $(GTKLIBS)
-+LIBS+=-L../core -llshw -lresolv -lsqlite3 $(GTKLIBS)
- LDFLAGS=
- ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
- LDFLAGS+= -Wl,--as-needed
-diff -Nura lshw-B.02.16.orig/src/Makefile lshw-B.02.16/src/Makefile
---- lshw-B.02.16.orig/src/Makefile 2012-05-28 12:32:49.292885680 -0300
-+++ lshw-B.02.16/src/Makefile 2012-05-28 12:33:24.530139060 -0300
-@@ -30,7 +30,7 @@
- LDFLAGS+= -Wl,--as-needed
- endif
- LDSTATIC=-static
--LIBS=-llshw -lresolv
-+LIBS+=-llshw -lresolv
- ifeq ($(SQLITE), 1)
- LIBS+= $(shell pkg-config --libs sqlite3)
- endif
--- /dev/null
+Inspired by: http://peter.korsgaard.com/patches/alsa-utils/alsamixer-fix-build-on-uClibc-exp10.patch
+
+exp10 extension is not part of uClibc, so compute it.
+
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+diff -purN ltp-testsuite-20101031.orig/testcases/realtime/lib/libstats.c ltp-testsuite-20101031/testcases/realtime/lib/libstats.c
+--- ltp-testsuite-20101031.orig/testcases/realtime/lib/libstats.c 2012-10-22 23:19:02.306646174 +0200
++++ ltp-testsuite-20101031/testcases/realtime/lib/libstats.c 2012-10-22 23:25:41.554847766 +0200
+@@ -46,6 +46,11 @@
+ #include <libstats.h>
+ #include <librttest.h>
+
++#ifdef __UCLIBC__
++/* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */
++#define exp10(x) (exp((x) * log(10)))
++#endif /* __UCLIBC__ */
++
+ int save_stats = 0;
+
+ /* static helper functions */
+++ /dev/null
-Inspired by: http://peter.korsgaard.com/patches/alsa-utils/alsamixer-fix-build-on-uClibc-exp10.patch
-
-exp10 extension is not part of uClibc, so compute it.
-
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
-diff -purN ltp-testsuite-20101031.orig/testcases/realtime/lib/libstats.c ltp-testsuite-20101031/testcases/realtime/lib/libstats.c
---- ltp-testsuite-20101031.orig/testcases/realtime/lib/libstats.c 2012-10-22 23:19:02.306646174 +0200
-+++ ltp-testsuite-20101031/testcases/realtime/lib/libstats.c 2012-10-22 23:25:41.554847766 +0200
-@@ -46,6 +46,11 @@
- #include <libstats.h>
- #include <librttest.h>
-
-+#ifdef __UCLIBC__
-+/* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */
-+#define exp10(x) (exp((x) * log(10)))
-+#endif /* __UCLIBC__ */
-+
- int save_stats = 0;
-
- /* static helper functions */
--- /dev/null
+[PATCH] events.c: add similar system headers workaround as trace.c
+
+Needed for E.G. powerpc on uClibc.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ sysdeps/linux-gnu/events.c | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+Index: ltrace-0.6.0/sysdeps/linux-gnu/events.c
+===================================================================
+--- ltrace-0.6.0.orig/sysdeps/linux-gnu/events.c
++++ ltrace-0.6.0/sysdeps/linux-gnu/events.c
+@@ -11,6 +11,33 @@
+
+ #include "common.h"
+
++/* If the system headers did not provide the constants, hard-code the normal
++ values. */
++#ifndef PTRACE_EVENT_FORK
++
++#define PTRACE_OLDSETOPTIONS 21
++#define PTRACE_SETOPTIONS 0x4200
++#define PTRACE_GETEVENTMSG 0x4201
++
++/* options set using PTRACE_SETOPTIONS */
++#define PTRACE_O_TRACESYSGOOD 0x00000001
++#define PTRACE_O_TRACEFORK 0x00000002
++#define PTRACE_O_TRACEVFORK 0x00000004
++#define PTRACE_O_TRACECLONE 0x00000008
++#define PTRACE_O_TRACEEXEC 0x00000010
++#define PTRACE_O_TRACEVFORKDONE 0x00000020
++#define PTRACE_O_TRACEEXIT 0x00000040
++
++/* Wait extended result codes for the above trace options. */
++#define PTRACE_EVENT_FORK 1
++#define PTRACE_EVENT_VFORK 2
++#define PTRACE_EVENT_CLONE 3
++#define PTRACE_EVENT_EXEC 4
++#define PTRACE_EVENT_VFORK_DONE 5
++#define PTRACE_EVENT_EXIT 6
++
++#endif /* PTRACE_EVENT_FORK */
++
+ static Event event;
+
+ Event *
--- /dev/null
+From 04377d28135e351c8d096c4392a493e937416815 Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+Date: Thu, 24 Jul 2014 23:15:20 +0200
+Subject: [PATCH] Allow building with uclibc toolchains
+
+Unfortunately, uclicbc doesn't define SHT_ARM_ATTRIBUTES in elf.h
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+---
+ sysdeps/linux-gnu/arm/plt.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sysdeps/linux-gnu/arm/plt.c b/sysdeps/linux-gnu/arm/plt.c
+index 9e9e37f0c5b0..a0a5795eb9cb 100644
+--- a/sysdeps/linux-gnu/arm/plt.c
++++ b/sysdeps/linux-gnu/arm/plt.c
+@@ -28,6 +28,10 @@
+ #include "library.h"
+ #include "ltrace-elf.h"
+
++#ifndef SHT_ARM_ATTRIBUTES
++#define SHT_ARM_ATTRIBUTES 0x70000003
++#endif
++
+ static int
+ get_hardfp(uint64_t abi_vfp_args)
+ {
+--
+1.9.1
+
--- /dev/null
+From c01c6dc017b5ae2b6de7b690725890642b6bf857 Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+Date: Tue, 29 Jul 2014 11:01:31 +0200
+Subject: [PATCH] PPC: fix PPC32 build
+
+Compilation on PPC32 fails because STACK_FRAME_OVERHEAD is never defined
+in arch.h.
+
+Define it to 112 on that platform to restore the same behaviour as
+before commit eea4ad2cce289753aaa35b4e0258a76d8f8f367c.
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+---
+ sysdeps/linux-gnu/ppc/arch.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sysdeps/linux-gnu/ppc/arch.h b/sysdeps/linux-gnu/ppc/arch.h
+index 7918a136b016..d5ad759a755c 100644
+--- a/sysdeps/linux-gnu/ppc/arch.h
++++ b/sysdeps/linux-gnu/ppc/arch.h
+@@ -57,6 +57,7 @@
+ #else
+ #define BREAKPOINT_VALUE { 0x7f, 0xe0, 0x00, 0x08 }
+ #define ARCH_ENDIAN_BIG
++# define STACK_FRAME_OVERHEAD 112
+ # ifndef EF_PPC64_ABI
+ # define EF_PPC64_ABI 3
+ # endif
+--
+1.9.1
+
+++ /dev/null
-[PATCH] events.c: add similar system headers workaround as trace.c
-
-Needed for E.G. powerpc on uClibc.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- sysdeps/linux-gnu/events.c | 27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
-Index: ltrace-0.6.0/sysdeps/linux-gnu/events.c
-===================================================================
---- ltrace-0.6.0.orig/sysdeps/linux-gnu/events.c
-+++ ltrace-0.6.0/sysdeps/linux-gnu/events.c
-@@ -11,6 +11,33 @@
-
- #include "common.h"
-
-+/* If the system headers did not provide the constants, hard-code the normal
-+ values. */
-+#ifndef PTRACE_EVENT_FORK
-+
-+#define PTRACE_OLDSETOPTIONS 21
-+#define PTRACE_SETOPTIONS 0x4200
-+#define PTRACE_GETEVENTMSG 0x4201
-+
-+/* options set using PTRACE_SETOPTIONS */
-+#define PTRACE_O_TRACESYSGOOD 0x00000001
-+#define PTRACE_O_TRACEFORK 0x00000002
-+#define PTRACE_O_TRACEVFORK 0x00000004
-+#define PTRACE_O_TRACECLONE 0x00000008
-+#define PTRACE_O_TRACEEXEC 0x00000010
-+#define PTRACE_O_TRACEVFORKDONE 0x00000020
-+#define PTRACE_O_TRACEEXIT 0x00000040
-+
-+/* Wait extended result codes for the above trace options. */
-+#define PTRACE_EVENT_FORK 1
-+#define PTRACE_EVENT_VFORK 2
-+#define PTRACE_EVENT_CLONE 3
-+#define PTRACE_EVENT_EXEC 4
-+#define PTRACE_EVENT_VFORK_DONE 5
-+#define PTRACE_EVENT_EXIT 6
-+
-+#endif /* PTRACE_EVENT_FORK */
-+
- static Event event;
-
- Event *
+++ /dev/null
-From 04377d28135e351c8d096c4392a493e937416815 Mon Sep 17 00:00:00 2001
-From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
-Date: Thu, 24 Jul 2014 23:15:20 +0200
-Subject: [PATCH] Allow building with uclibc toolchains
-
-Unfortunately, uclicbc doesn't define SHT_ARM_ATTRIBUTES in elf.h
-
-Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
----
- sysdeps/linux-gnu/arm/plt.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/sysdeps/linux-gnu/arm/plt.c b/sysdeps/linux-gnu/arm/plt.c
-index 9e9e37f0c5b0..a0a5795eb9cb 100644
---- a/sysdeps/linux-gnu/arm/plt.c
-+++ b/sysdeps/linux-gnu/arm/plt.c
-@@ -28,6 +28,10 @@
- #include "library.h"
- #include "ltrace-elf.h"
-
-+#ifndef SHT_ARM_ATTRIBUTES
-+#define SHT_ARM_ATTRIBUTES 0x70000003
-+#endif
-+
- static int
- get_hardfp(uint64_t abi_vfp_args)
- {
---
-1.9.1
-
+++ /dev/null
-From c01c6dc017b5ae2b6de7b690725890642b6bf857 Mon Sep 17 00:00:00 2001
-From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
-Date: Tue, 29 Jul 2014 11:01:31 +0200
-Subject: [PATCH] PPC: fix PPC32 build
-
-Compilation on PPC32 fails because STACK_FRAME_OVERHEAD is never defined
-in arch.h.
-
-Define it to 112 on that platform to restore the same behaviour as
-before commit eea4ad2cce289753aaa35b4e0258a76d8f8f367c.
-
-Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
----
- sysdeps/linux-gnu/ppc/arch.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sysdeps/linux-gnu/ppc/arch.h b/sysdeps/linux-gnu/ppc/arch.h
-index 7918a136b016..d5ad759a755c 100644
---- a/sysdeps/linux-gnu/ppc/arch.h
-+++ b/sysdeps/linux-gnu/ppc/arch.h
-@@ -57,6 +57,7 @@
- #else
- #define BREAKPOINT_VALUE { 0x7f, 0xe0, 0x00, 0x08 }
- #define ARCH_ENDIAN_BIG
-+# define STACK_FRAME_OVERHEAD 112
- # ifndef EF_PPC64_ABI
- # define EF_PPC64_ABI 3
- # endif
---
-1.9.1
-
--- /dev/null
+Do not call posix_fallocate() on uClibc
+
+uClibc does not implement posix_fallocate(), and posix_fallocate() is
+mostly only an hint to the kernel that we will need such or such
+amount of space inside a file. So we just don't call posix_fallocate()
+when building against uClibc.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+[Peter: add #include <features.h>
+---
+ formats/ctf/ctf.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: lttng-babeltrace-0.8/formats/ctf/ctf.c
+===================================================================
+--- lttng-babeltrace-0.8.orig/formats/ctf/ctf.c
++++ lttng-babeltrace-0.8/formats/ctf/ctf.c
+@@ -32,6 +32,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <dirent.h>
++#include <features.h>
+ #include <glib.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+@@ -384,9 +385,11 @@
+ }
+ pos->content_size = -1U; /* Unknown at this point */
+ pos->packet_size = WRITE_PACKET_LEN;
++#ifndef __UCLIBC__
+ off = posix_fallocate(pos->fd, pos->mmap_offset,
+ pos->packet_size / CHAR_BIT);
+ assert(off >= 0);
++#endif
+ pos->offset = 0;
+ } else {
+ read_next_packet:
+++ /dev/null
-Do not call posix_fallocate() on uClibc
-
-uClibc does not implement posix_fallocate(), and posix_fallocate() is
-mostly only an hint to the kernel that we will need such or such
-amount of space inside a file. So we just don't call posix_fallocate()
-when building against uClibc.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-[Peter: add #include <features.h>
----
- formats/ctf/ctf.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-Index: lttng-babeltrace-0.8/formats/ctf/ctf.c
-===================================================================
---- lttng-babeltrace-0.8.orig/formats/ctf/ctf.c
-+++ lttng-babeltrace-0.8/formats/ctf/ctf.c
-@@ -32,6 +32,7 @@
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <dirent.h>
-+#include <features.h>
- #include <glib.h>
- #include <unistd.h>
- #include <stdlib.h>
-@@ -384,9 +385,11 @@
- }
- pos->content_size = -1U; /* Unknown at this point */
- pos->packet_size = WRITE_PACKET_LEN;
-+#ifndef __UCLIBC__
- off = posix_fallocate(pos->fd, pos->mmap_offset,
- pos->packet_size / CHAR_BIT);
- assert(off >= 0);
-+#endif
- pos->offset = 0;
- } else {
- read_next_packet:
--- /dev/null
+Do not use a symlink for the binary, simply name if luajit
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -42,8 +42,7 @@
+ INSTALL_MAN= $(INSTALL_SHARE)/man/man1
+ INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
+
+-INSTALL_TNAME= luajit-$(VERSION)
+-INSTALL_TSYMNAME= luajit
++INSTALL_TNAME= luajit
+ INSTALL_ANAME= libluajit-$(ABIVER).a
+ INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER)
+ INSTALL_SOSHORT= libluajit-$(ABIVER).so
+@@ -57,7 +56,6 @@
+ INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
+ INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
+ INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
+-INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
+ INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
+
+ INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
--- /dev/null
+Install includes like lua's ones
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -31,7 +31,7 @@ DPREFIX= $(DESTDIR)$(PREFIX)
+ INSTALL_BIN= $(DPREFIX)/bin
+ INSTALL_LIB= $(DPREFIX)/lib
+ INSTALL_SHARE= $(DPREFIX)/share
+-INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER)
++INSTALL_INC= $(DPREFIX)/include
+
+ INSTALL_LJLIBD= $(INSTALL_SHARE)/luajit-$(VERSION)
+ INSTALL_JITLIB= $(INSTALL_LJLIBD)/jit
--- /dev/null
+fix the following runtime error :
+ luajit: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
+
+by creating two symbolic links:
+ libluajit-5.1.so -> libluajit-5.1.so.2.0.3
+ libluajit-5.1.so.2 -> libluajit-5.1.so.2.0.3
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -56,7 +56,7 @@
+ INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
+ INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
+ INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
+-INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
++INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT).$(MAJVER)
+ INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
+ INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
+ INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
+++ /dev/null
-Do not use a symlink for the binary, simply name if luajit
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -42,8 +42,7 @@
- INSTALL_MAN= $(INSTALL_SHARE)/man/man1
- INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
-
--INSTALL_TNAME= luajit-$(VERSION)
--INSTALL_TSYMNAME= luajit
-+INSTALL_TNAME= luajit
- INSTALL_ANAME= libluajit-$(ABIVER).a
- INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER)
- INSTALL_SOSHORT= libluajit-$(ABIVER).so
-@@ -57,7 +56,6 @@
- INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
- INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
- INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
--INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
- INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
-
- INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
+++ /dev/null
-Install includes like lua's ones
-
-Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -31,7 +31,7 @@ DPREFIX= $(DESTDIR)$(PREFIX)
- INSTALL_BIN= $(DPREFIX)/bin
- INSTALL_LIB= $(DPREFIX)/lib
- INSTALL_SHARE= $(DPREFIX)/share
--INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER)
-+INSTALL_INC= $(DPREFIX)/include
-
- INSTALL_LJLIBD= $(INSTALL_SHARE)/luajit-$(VERSION)
- INSTALL_JITLIB= $(INSTALL_LJLIBD)/jit
+++ /dev/null
-fix the following runtime error :
- luajit: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
-
-by creating two symbolic links:
- libluajit-5.1.so -> libluajit-5.1.so.2.0.3
- libluajit-5.1.so.2 -> libluajit-5.1.so.2.0.3
-
-Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -56,7 +56,7 @@
- INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
- INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
- INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
--INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
-+INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT).$(MAJVER)
- INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
- INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
- INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
--- /dev/null
+fix build with uClibc without IPv6 support
+
+see Pull Request: https://github.com/diegonehab/luasocket/pull/90
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/luasocket-3.0-rc1/src/options.c
+===================================================================
+--- a/luasocket-3.0-rc1/src/options.c
++++ b/luasocket-3.0-rc1/src/options.c
+@@ -110,6 +110,7 @@
+ return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST);
+ }
+
++#ifdef IPV6_UNICAST_HOPS
+ int opt_set_ip6_unicast_hops(lua_State *L, p_socket ps)
+ {
+ return opt_setint(L, ps, IPPROTO_IPV6, IPV6_UNICAST_HOPS);
+@@ -119,7 +120,9 @@
+ {
+ return opt_getint(L, ps, IPPROTO_IPV6, IPV6_UNICAST_HOPS);
+ }
++#endif
+
++#ifdef IPV6_MULTICAST_HOPS
+ int opt_set_ip6_multicast_hops(lua_State *L, p_socket ps)
+ {
+ return opt_setint(L, ps, IPPROTO_IPV6, IPV6_MULTICAST_HOPS);
+@@ -129,6 +132,7 @@
+ {
+ return opt_getint(L, ps, IPPROTO_IPV6, IPV6_MULTICAST_HOPS);
+ }
++#endif
+
+ int opt_set_ip_multicast_loop(lua_State *L, p_socket ps)
+ {
+@@ -140,6 +144,7 @@
+ return opt_getboolean(L, ps, IPPROTO_IP, IP_MULTICAST_LOOP);
+ }
+
++#ifdef IPV6_MULTICAST_LOOP
+ int opt_set_ip6_multicast_loop(lua_State *L, p_socket ps)
+ {
+ return opt_setboolean(L, ps, IPPROTO_IPV6, IPV6_MULTICAST_LOOP);
+@@ -149,6 +154,7 @@
+ {
+ return opt_getboolean(L, ps, IPPROTO_IPV6, IPV6_MULTICAST_LOOP);
+ }
++#endif
+
+ int opt_set_linger(lua_State *L, p_socket ps)
+ {
+@@ -221,16 +227,21 @@
+ return opt_setmembership(L, ps, IPPROTO_IP, IP_DROP_MEMBERSHIP);
+ }
+
++#ifdef IPV6_ADD_MEMBERSHIP
+ int opt_set_ip6_add_membership(lua_State *L, p_socket ps)
+ {
+ return opt_ip6_setmembership(L, ps, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP);
+ }
++#endif
+
++#ifdef IPV6_DROP_MEMBERSHIP
+ int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps)
+ {
+ return opt_ip6_setmembership(L, ps, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP);
+ }
++#endif
+
++#ifdef IPV6_V6ONLY
+ int opt_get_ip6_v6only(lua_State *L, p_socket ps)
+ {
+ return opt_getboolean(L, ps, IPPROTO_IPV6, IPV6_V6ONLY);
+@@ -240,6 +251,7 @@
+ {
+ return opt_setboolean(L, ps, IPPROTO_IPV6, IPV6_V6ONLY);
+ }
++#endif
+
+ /*=========================================================================*\
+ * Auxiliar functions
+Index: b/luasocket-3.0-rc1/src/options.h
+===================================================================
+--- a/luasocket-3.0-rc1/src/options.h
++++ b/luasocket-3.0-rc1/src/options.h
+@@ -32,12 +32,24 @@
+ int opt_set_ip_multicast_loop(lua_State *L, p_socket ps);
+ int opt_set_ip_add_membership(lua_State *L, p_socket ps);
+ int opt_set_ip_drop_membersip(lua_State *L, p_socket ps);
++#ifdef IPV6_UNICAST_HOPS
+ int opt_set_ip6_unicast_hops(lua_State *L, p_socket ps);
++#endif
++#ifdef IPV6_MULTICAST_HOPS
+ int opt_set_ip6_multicast_hops(lua_State *L, p_socket ps);
++#endif
++#ifdef IPV6_MULTICAST_LOOP
+ int opt_set_ip6_multicast_loop(lua_State *L, p_socket ps);
++#endif
++#ifdef IPV6_ADD_MEMBERSHIP
+ int opt_set_ip6_add_membership(lua_State *L, p_socket ps);
++#endif
++#ifdef IPV6_DROP_MEMBERSHIP
+ int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps);
++#endif
++#ifdef IPV6_V6ONLY
+ int opt_set_ip6_v6only(lua_State *L, p_socket ps);
++#endif
+
+ /* supported options for getoption */
+ int opt_get_reuseaddr(lua_State *L, p_socket ps);
+@@ -48,10 +60,18 @@
+ int opt_get_ip_multicast_loop(lua_State *L, p_socket ps);
+ int opt_get_ip_multicast_if(lua_State *L, p_socket ps);
+ int opt_get_error(lua_State *L, p_socket ps);
++#ifdef IPV6_MULTICAST_LOOP
+ int opt_get_ip6_multicast_loop(lua_State *L, p_socket ps);
++#endif
++#ifdef IPV6_MULTICAST_HOPS
+ int opt_get_ip6_multicast_hops(lua_State *L, p_socket ps);
++#endif
++#ifdef IPV6_UNICAST_HOPS
+ int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps);
++#endif
++#ifdef IPV6_V6ONLY
+ int opt_get_ip6_v6only(lua_State *L, p_socket ps);
++#endif
+
+ /* invokes the appropriate option handler */
+ int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps);
+Index: b/luasocket-3.0-rc1/src/tcp.c
+===================================================================
+--- a/luasocket-3.0-rc1/src/tcp.c
++++ b/luasocket-3.0-rc1/src/tcp.c
+@@ -81,7 +81,9 @@
+ {"keepalive", opt_set_keepalive},
+ {"reuseaddr", opt_set_reuseaddr},
+ {"tcp-nodelay", opt_set_tcp_nodelay},
++#ifdef IPV6_V6ONLY
+ {"ipv6-v6only", opt_set_ip6_v6only},
++#endif
+ {"linger", opt_set_linger},
+ {NULL, NULL}
+ };
+@@ -366,11 +368,13 @@
+ auxiliar_setclass(L, "tcp{master}", -1);
+ /* initialize remaining structure fields */
+ socket_setnonblocking(&sock);
++#ifdef IPV6_V6ONLY
+ if (family == PF_INET6) {
+ int yes = 1;
+ setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
+ (void *)&yes, sizeof(yes));
+ }
++#endif
+ tcp->sock = sock;
+ io_init(&tcp->io, (p_send) socket_send, (p_recv) socket_recv,
+ (p_error) socket_ioerror, &tcp->sock);
+Index: b/luasocket-3.0-rc1/src/udp.c
+===================================================================
+--- a/luasocket-3.0-rc1/src/udp.c
++++ b/luasocket-3.0-rc1/src/udp.c
+@@ -78,12 +78,22 @@
+ {"ip-multicast-loop", opt_set_ip_multicast_loop},
+ {"ip-add-membership", opt_set_ip_add_membership},
+ {"ip-drop-membership", opt_set_ip_drop_membersip},
++#ifdef IPV6_UNICAST_HOPS
+ {"ipv6-unicast-hops", opt_set_ip6_unicast_hops},
+ {"ipv6-multicast-hops", opt_set_ip6_unicast_hops},
++#endif
++#ifdef IPV6_MULTICAST_LOOP
+ {"ipv6-multicast-loop", opt_set_ip6_multicast_loop},
++#endif
++#ifdef IPV6_ADD_MEMBERSHIP
+ {"ipv6-add-membership", opt_set_ip6_add_membership},
++#endif
++#ifdef IPV6_DROP_MEMBERSHIP
+ {"ipv6-drop-membership", opt_set_ip6_drop_membersip},
++#endif
++#ifdef IPV6_V6ONLY
+ {"ipv6-v6only", opt_set_ip6_v6only},
++#endif
+ {NULL, NULL}
+ };
+
+@@ -92,10 +102,16 @@
+ {"ip-multicast-if", opt_get_ip_multicast_if},
+ {"ip-multicast-loop", opt_get_ip_multicast_loop},
+ {"error", opt_get_error},
++#ifdef IPV6_UNICAST_HOPS
+ {"ipv6-unicast-hops", opt_get_ip6_unicast_hops},
+ {"ipv6-multicast-hops", opt_get_ip6_unicast_hops},
++#endif
++#ifdef IPV6_MULTICAST_LOOP
+ {"ipv6-multicast-loop", opt_get_ip6_multicast_loop},
++#endif
++#ifdef IPV6_V6ONLY
+ {"ipv6-v6only", opt_get_ip6_v6only},
++#endif
+ {NULL, NULL}
+ };
+
+@@ -416,11 +432,13 @@
+ auxiliar_setclass(L, "udp{unconnected}", -1);
+ /* initialize remaining structure fields */
+ socket_setnonblocking(&sock);
++#ifdef IPV6_V6ONLY
+ if (family == PF_INET6) {
+ int yes = 1;
+ setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
+ (void *)&yes, sizeof(yes));
+ }
++#endif
+ udp->sock = sock;
+ timeout_init(&udp->tm, -1, -1);
+ udp->family = family;
+
+++ /dev/null
-fix build with uClibc without IPv6 support
-
-see Pull Request: https://github.com/diegonehab/luasocket/pull/90
-
-Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
-
-Index: b/luasocket-3.0-rc1/src/options.c
-===================================================================
---- a/luasocket-3.0-rc1/src/options.c
-+++ b/luasocket-3.0-rc1/src/options.c
-@@ -110,6 +110,7 @@
- return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST);
- }
-
-+#ifdef IPV6_UNICAST_HOPS
- int opt_set_ip6_unicast_hops(lua_State *L, p_socket ps)
- {
- return opt_setint(L, ps, IPPROTO_IPV6, IPV6_UNICAST_HOPS);
-@@ -119,7 +120,9 @@
- {
- return opt_getint(L, ps, IPPROTO_IPV6, IPV6_UNICAST_HOPS);
- }
-+#endif
-
-+#ifdef IPV6_MULTICAST_HOPS
- int opt_set_ip6_multicast_hops(lua_State *L, p_socket ps)
- {
- return opt_setint(L, ps, IPPROTO_IPV6, IPV6_MULTICAST_HOPS);
-@@ -129,6 +132,7 @@
- {
- return opt_getint(L, ps, IPPROTO_IPV6, IPV6_MULTICAST_HOPS);
- }
-+#endif
-
- int opt_set_ip_multicast_loop(lua_State *L, p_socket ps)
- {
-@@ -140,6 +144,7 @@
- return opt_getboolean(L, ps, IPPROTO_IP, IP_MULTICAST_LOOP);
- }
-
-+#ifdef IPV6_MULTICAST_LOOP
- int opt_set_ip6_multicast_loop(lua_State *L, p_socket ps)
- {
- return opt_setboolean(L, ps, IPPROTO_IPV6, IPV6_MULTICAST_LOOP);
-@@ -149,6 +154,7 @@
- {
- return opt_getboolean(L, ps, IPPROTO_IPV6, IPV6_MULTICAST_LOOP);
- }
-+#endif
-
- int opt_set_linger(lua_State *L, p_socket ps)
- {
-@@ -221,16 +227,21 @@
- return opt_setmembership(L, ps, IPPROTO_IP, IP_DROP_MEMBERSHIP);
- }
-
-+#ifdef IPV6_ADD_MEMBERSHIP
- int opt_set_ip6_add_membership(lua_State *L, p_socket ps)
- {
- return opt_ip6_setmembership(L, ps, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP);
- }
-+#endif
-
-+#ifdef IPV6_DROP_MEMBERSHIP
- int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps)
- {
- return opt_ip6_setmembership(L, ps, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP);
- }
-+#endif
-
-+#ifdef IPV6_V6ONLY
- int opt_get_ip6_v6only(lua_State *L, p_socket ps)
- {
- return opt_getboolean(L, ps, IPPROTO_IPV6, IPV6_V6ONLY);
-@@ -240,6 +251,7 @@
- {
- return opt_setboolean(L, ps, IPPROTO_IPV6, IPV6_V6ONLY);
- }
-+#endif
-
- /*=========================================================================*\
- * Auxiliar functions
-Index: b/luasocket-3.0-rc1/src/options.h
-===================================================================
---- a/luasocket-3.0-rc1/src/options.h
-+++ b/luasocket-3.0-rc1/src/options.h
-@@ -32,12 +32,24 @@
- int opt_set_ip_multicast_loop(lua_State *L, p_socket ps);
- int opt_set_ip_add_membership(lua_State *L, p_socket ps);
- int opt_set_ip_drop_membersip(lua_State *L, p_socket ps);
-+#ifdef IPV6_UNICAST_HOPS
- int opt_set_ip6_unicast_hops(lua_State *L, p_socket ps);
-+#endif
-+#ifdef IPV6_MULTICAST_HOPS
- int opt_set_ip6_multicast_hops(lua_State *L, p_socket ps);
-+#endif
-+#ifdef IPV6_MULTICAST_LOOP
- int opt_set_ip6_multicast_loop(lua_State *L, p_socket ps);
-+#endif
-+#ifdef IPV6_ADD_MEMBERSHIP
- int opt_set_ip6_add_membership(lua_State *L, p_socket ps);
-+#endif
-+#ifdef IPV6_DROP_MEMBERSHIP
- int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps);
-+#endif
-+#ifdef IPV6_V6ONLY
- int opt_set_ip6_v6only(lua_State *L, p_socket ps);
-+#endif
-
- /* supported options for getoption */
- int opt_get_reuseaddr(lua_State *L, p_socket ps);
-@@ -48,10 +60,18 @@
- int opt_get_ip_multicast_loop(lua_State *L, p_socket ps);
- int opt_get_ip_multicast_if(lua_State *L, p_socket ps);
- int opt_get_error(lua_State *L, p_socket ps);
-+#ifdef IPV6_MULTICAST_LOOP
- int opt_get_ip6_multicast_loop(lua_State *L, p_socket ps);
-+#endif
-+#ifdef IPV6_MULTICAST_HOPS
- int opt_get_ip6_multicast_hops(lua_State *L, p_socket ps);
-+#endif
-+#ifdef IPV6_UNICAST_HOPS
- int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps);
-+#endif
-+#ifdef IPV6_V6ONLY
- int opt_get_ip6_v6only(lua_State *L, p_socket ps);
-+#endif
-
- /* invokes the appropriate option handler */
- int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps);
-Index: b/luasocket-3.0-rc1/src/tcp.c
-===================================================================
---- a/luasocket-3.0-rc1/src/tcp.c
-+++ b/luasocket-3.0-rc1/src/tcp.c
-@@ -81,7 +81,9 @@
- {"keepalive", opt_set_keepalive},
- {"reuseaddr", opt_set_reuseaddr},
- {"tcp-nodelay", opt_set_tcp_nodelay},
-+#ifdef IPV6_V6ONLY
- {"ipv6-v6only", opt_set_ip6_v6only},
-+#endif
- {"linger", opt_set_linger},
- {NULL, NULL}
- };
-@@ -366,11 +368,13 @@
- auxiliar_setclass(L, "tcp{master}", -1);
- /* initialize remaining structure fields */
- socket_setnonblocking(&sock);
-+#ifdef IPV6_V6ONLY
- if (family == PF_INET6) {
- int yes = 1;
- setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
- (void *)&yes, sizeof(yes));
- }
-+#endif
- tcp->sock = sock;
- io_init(&tcp->io, (p_send) socket_send, (p_recv) socket_recv,
- (p_error) socket_ioerror, &tcp->sock);
-Index: b/luasocket-3.0-rc1/src/udp.c
-===================================================================
---- a/luasocket-3.0-rc1/src/udp.c
-+++ b/luasocket-3.0-rc1/src/udp.c
-@@ -78,12 +78,22 @@
- {"ip-multicast-loop", opt_set_ip_multicast_loop},
- {"ip-add-membership", opt_set_ip_add_membership},
- {"ip-drop-membership", opt_set_ip_drop_membersip},
-+#ifdef IPV6_UNICAST_HOPS
- {"ipv6-unicast-hops", opt_set_ip6_unicast_hops},
- {"ipv6-multicast-hops", opt_set_ip6_unicast_hops},
-+#endif
-+#ifdef IPV6_MULTICAST_LOOP
- {"ipv6-multicast-loop", opt_set_ip6_multicast_loop},
-+#endif
-+#ifdef IPV6_ADD_MEMBERSHIP
- {"ipv6-add-membership", opt_set_ip6_add_membership},
-+#endif
-+#ifdef IPV6_DROP_MEMBERSHIP
- {"ipv6-drop-membership", opt_set_ip6_drop_membersip},
-+#endif
-+#ifdef IPV6_V6ONLY
- {"ipv6-v6only", opt_set_ip6_v6only},
-+#endif
- {NULL, NULL}
- };
-
-@@ -92,10 +102,16 @@
- {"ip-multicast-if", opt_get_ip_multicast_if},
- {"ip-multicast-loop", opt_get_ip_multicast_loop},
- {"error", opt_get_error},
-+#ifdef IPV6_UNICAST_HOPS
- {"ipv6-unicast-hops", opt_get_ip6_unicast_hops},
- {"ipv6-multicast-hops", opt_get_ip6_unicast_hops},
-+#endif
-+#ifdef IPV6_MULTICAST_LOOP
- {"ipv6-multicast-loop", opt_get_ip6_multicast_loop},
-+#endif
-+#ifdef IPV6_V6ONLY
- {"ipv6-v6only", opt_get_ip6_v6only},
-+#endif
- {NULL, NULL}
- };
-
-@@ -416,11 +432,13 @@
- auxiliar_setclass(L, "udp{unconnected}", -1);
- /* initialize remaining structure fields */
- socket_setnonblocking(&sock);
-+#ifdef IPV6_V6ONLY
- if (family == PF_INET6) {
- int yes = 1;
- setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
- (void *)&yes, sizeof(yes));
- }
-+#endif
- udp->sock = sock;
- timeout_init(&udp->tm, -1, -1);
- udp->family = family;
-
--- /dev/null
+Don't do -Werror it breaks builds on some scenarios with trivialities.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura lxc-lxc-1.0.4/configure.ac lxc-lxc-1.0.4.orig/configure.ac
+--- lxc-lxc-1.0.4.orig/configure.ac 2014-07-04 10:31:19.821029891 -0300
++++ lxc-lxc-1.0.4/configure.ac 2014-06-13 14:07:45.000000000 -0300
+@@ -560,7 +560,7 @@
+ LXC_CHECK_TLS
+
+ if test "x$GCC" = "xyes"; then
+- CFLAGS="$CFLAGS -Wall -Werror"
++ CFLAGS="$CFLAGS -Wall"
+ fi
+
+ # Files requiring some variable expansion
+++ /dev/null
-Don't do -Werror it breaks builds on some scenarios with trivialities.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura lxc-lxc-1.0.4/configure.ac lxc-lxc-1.0.4.orig/configure.ac
---- lxc-lxc-1.0.4.orig/configure.ac 2014-07-04 10:31:19.821029891 -0300
-+++ lxc-lxc-1.0.4/configure.ac 2014-06-13 14:07:45.000000000 -0300
-@@ -560,7 +560,7 @@
- LXC_CHECK_TLS
-
- if test "x$GCC" = "xyes"; then
-- CFLAGS="$CFLAGS -Wall -Werror"
-+ CFLAGS="$CFLAGS -Wall"
- fi
-
- # Files requiring some variable expansion
--- /dev/null
+From 1b33f6d13e5c25a2500ee312068c08a3d3811a5f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Vincent=20Stehl=C3=A9?= <vincent.stehle@laposte.net>
+Date: Wed, 3 Dec 2014 21:32:02 +0100
+Subject: [PATCH] Remove -static from LDFLAGS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Buildroot does not enable static libraries by default for host builds. Having
+-static hardcoded in the LDFLAGS breaks the build, so remove it.
+
+Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net>
+---
+ src/lzmadec/Makefile.am | 1 -
+ src/lzmadec/Makefile.in | 1 -
+ src/lzmainfo/Makefile.am | 1 -
+ src/lzmainfo/Makefile.in | 1 -
+ 4 files changed, 4 deletions(-)
+
+diff --git a/src/lzmadec/Makefile.am b/src/lzmadec/Makefile.am
+index 7322b2a..13edec8 100644
+--- a/src/lzmadec/Makefile.am
++++ b/src/lzmadec/Makefile.am
+@@ -2,6 +2,5 @@ bin_PROGRAMS = lzmadec
+ lzmadec_SOURCES = lzmadec.c
+ lzmadec_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la
+ AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec
+-AM_LDFLAGS = -static
+
+ dist_man_MANS = lzmadec.1
+diff --git a/src/lzmadec/Makefile.in b/src/lzmadec/Makefile.in
+index 5af9240..4ed1de1 100644
+--- a/src/lzmadec/Makefile.in
++++ b/src/lzmadec/Makefile.in
+@@ -185,7 +185,6 @@ top_srcdir = @top_srcdir@
+ lzmadec_SOURCES = lzmadec.c
+ lzmadec_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la
+ AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec
+-AM_LDFLAGS = -static
+ dist_man_MANS = lzmadec.1
+ all: all-am
+
+diff --git a/src/lzmainfo/Makefile.am b/src/lzmainfo/Makefile.am
+index b5b01ec..e280bff 100644
+--- a/src/lzmainfo/Makefile.am
++++ b/src/lzmainfo/Makefile.am
+@@ -2,6 +2,5 @@ bin_PROGRAMS = lzmainfo
+ lzmainfo_SOURCES = lzmainfo.c
+ lzmainfo_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la
+ AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec
+-AM_LDFLAGS = -static
+
+ dist_man_MANS = lzmainfo.1
+diff --git a/src/lzmainfo/Makefile.in b/src/lzmainfo/Makefile.in
+index 6a2127a..f1f3441 100644
+--- a/src/lzmainfo/Makefile.in
++++ b/src/lzmainfo/Makefile.in
+@@ -185,7 +185,6 @@ top_srcdir = @top_srcdir@
+ lzmainfo_SOURCES = lzmainfo.c
+ lzmainfo_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la
+ AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec
+-AM_LDFLAGS = -static
+ dist_man_MANS = lzmainfo.1
+ all: all-am
+
+--
+2.1.3
+
+++ /dev/null
-From 1b33f6d13e5c25a2500ee312068c08a3d3811a5f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Vincent=20Stehl=C3=A9?= <vincent.stehle@laposte.net>
-Date: Wed, 3 Dec 2014 21:32:02 +0100
-Subject: [PATCH] Remove -static from LDFLAGS
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Buildroot does not enable static libraries by default for host builds. Having
--static hardcoded in the LDFLAGS breaks the build, so remove it.
-
-Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net>
----
- src/lzmadec/Makefile.am | 1 -
- src/lzmadec/Makefile.in | 1 -
- src/lzmainfo/Makefile.am | 1 -
- src/lzmainfo/Makefile.in | 1 -
- 4 files changed, 4 deletions(-)
-
-diff --git a/src/lzmadec/Makefile.am b/src/lzmadec/Makefile.am
-index 7322b2a..13edec8 100644
---- a/src/lzmadec/Makefile.am
-+++ b/src/lzmadec/Makefile.am
-@@ -2,6 +2,5 @@ bin_PROGRAMS = lzmadec
- lzmadec_SOURCES = lzmadec.c
- lzmadec_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la
- AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec
--AM_LDFLAGS = -static
-
- dist_man_MANS = lzmadec.1
-diff --git a/src/lzmadec/Makefile.in b/src/lzmadec/Makefile.in
-index 5af9240..4ed1de1 100644
---- a/src/lzmadec/Makefile.in
-+++ b/src/lzmadec/Makefile.in
-@@ -185,7 +185,6 @@ top_srcdir = @top_srcdir@
- lzmadec_SOURCES = lzmadec.c
- lzmadec_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la
- AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec
--AM_LDFLAGS = -static
- dist_man_MANS = lzmadec.1
- all: all-am
-
-diff --git a/src/lzmainfo/Makefile.am b/src/lzmainfo/Makefile.am
-index b5b01ec..e280bff 100644
---- a/src/lzmainfo/Makefile.am
-+++ b/src/lzmainfo/Makefile.am
-@@ -2,6 +2,5 @@ bin_PROGRAMS = lzmainfo
- lzmainfo_SOURCES = lzmainfo.c
- lzmainfo_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la
- AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec
--AM_LDFLAGS = -static
-
- dist_man_MANS = lzmainfo.1
-diff --git a/src/lzmainfo/Makefile.in b/src/lzmainfo/Makefile.in
-index 6a2127a..f1f3441 100644
---- a/src/lzmainfo/Makefile.in
-+++ b/src/lzmainfo/Makefile.in
-@@ -185,7 +185,6 @@ top_srcdir = @top_srcdir@
- lzmainfo_SOURCES = lzmainfo.c
- lzmainfo_LDADD = @top_builddir@/src/liblzmadec/liblzmadec.la
- AM_CPPFLAGS = -I@top_srcdir@/src/liblzmadec
--AM_LDFLAGS = -static
- dist_man_MANS = lzmainfo.1
- all: all-am
-
---
-2.1.3
-
--- /dev/null
+Switch madplay to the new API. This is done thanks to a patch written
+by Micha Nelissen <micha@neli.hopto.org> and available at
+http://article.gmane.org/gmane.comp.audio.mad.devel/729.
+
+--- madplay-0.15.2b/audio_alsa.c 2008-10-18 15:10:16.000000000 +0200
++++ madplay-0.15.2b/audio_alsa.c.new 2008-10-18 15:03:27.000000000 +0200
+@@ -28,31 +28,30 @@
+
+ #include <errno.h>
+
+-#define ALSA_PCM_OLD_HW_PARAMS_API
+-#define ALSA_PCM_OLD_SW_PARAMS_API
+ #include <alsa/asoundlib.h>
+
+ #include <mad.h>
+
+ #include "audio.h"
+
+-char *buf = NULL;
+-int paused = 0;
++#define BUFFER_TIME_MAX 500000
+
+-int rate = -1;
+-int channels = -1;
+-int bitdepth = -1;
+-int sample_size = -1;
+-
+-int buffer_time = 500000;
+-int period_time = 100000;
+-char *defaultdev = "plughw:0,0";
++unsigned char *buf = NULL;
++int paused = 0;
++
++unsigned int rate = 0;
++unsigned int channels = -1;
++unsigned int bitdepth = -1;
++unsigned int sample_size = -1;
++
++unsigned int buffer_time;
++unsigned int period_time;
++char *defaultdev = "plughw:0,0";
+
+ snd_pcm_hw_params_t *alsa_hwparams;
+ snd_pcm_sw_params_t *alsa_swparams;
+
+-snd_pcm_sframes_t buffer_size;
+-snd_pcm_sframes_t period_size;
++snd_pcm_uframes_t buffer_size;
+
+ snd_pcm_format_t alsa_format = -1;
+ snd_pcm_access_t alsa_access = SND_PCM_ACCESS_MMAP_INTERLEAVED;
+@@ -66,14 +65,20 @@
+ snd_pcm_hw_params_t *params,
+ snd_pcm_access_t access)
+ {
+- int err, dir;
+-
++ int err;
++
+ /* choose all parameters */
+ err = snd_pcm_hw_params_any(handle,params);
+ if (err < 0) {
+ printf("Access type not available for playback: %s\n", snd_strerror(err));
+ return err;
+ }
++ /* set the access type */
++ err = snd_pcm_hw_params_set_access(handle, params, alsa_access);
++ if (err < 0) {
++ printf("Sample format not available for playback: %s\n", snd_strerror(err));
++ return err;
++ }
+ /* set the sample format */
+ err = snd_pcm_hw_params_set_format(handle, params, alsa_format);
+ if (err < 0) {
+@@ -87,29 +92,38 @@
+ return err;
+ }
+ /* set the stream rate */
+- err = snd_pcm_hw_params_set_rate_near(handle, params, rate, 0);
++ err = snd_pcm_hw_params_set_rate(handle, params, rate, 0);
+ if (err < 0) {
+ printf("Rate %iHz not available for playback: %s\n", rate, snd_strerror(err));
+ return err;
+ }
+- if (err != rate) {
+- printf("Rate doesn't match (requested %iHz, get %iHz)\n", rate, err);
+- return -EINVAL;
+- }
++ err = snd_pcm_hw_params_get_buffer_time_max(params, &buffer_time, NULL);
++ if (err < 0) {
++ printf("Unable to retrieve buffer time: %s\n", snd_strerror(err));
++ return err;
++ }
++ if (buffer_time > BUFFER_TIME_MAX)
++ buffer_time = BUFFER_TIME_MAX;
+ /* set buffer time */
+- err = snd_pcm_hw_params_set_buffer_time_near(handle, params, buffer_time, &dir);
++ err = snd_pcm_hw_params_set_buffer_time_near(handle, params, &buffer_time, 0);
+ if (err < 0) {
+ printf("Unable to set buffer time %i for playback: %s\n", buffer_time, snd_strerror(err));
+ return err;
+ }
+- buffer_size = snd_pcm_hw_params_get_buffer_size(params);
++ if (period_time * 4 > buffer_time)
++ period_time = buffer_time / 4;
+ /* set period time */
+- err = snd_pcm_hw_params_set_period_time_near(handle, params, period_time, &dir);
++ err = snd_pcm_hw_params_set_period_time_near(handle, params, &period_time, NULL);
+ if (err < 0) {
+ printf("Unable to set period time %i for playback: %s\n", period_time, snd_strerror(err));
+ return err;
+ }
+- period_size = snd_pcm_hw_params_get_period_size(params, &dir);
++ /* retrieve buffer size */
++ err = snd_pcm_hw_params_get_buffer_size(params, &buffer_size);
++ if (err < 0) {
++ printf("Unable to retrieve buffer size: %s\n", snd_strerror(err));
++ return err;
++ }
+ /* write the parameters to device */
+ err = snd_pcm_hw_params(handle, params);
+ if (err < 0) {
+@@ -123,6 +137,7 @@
+ int set_swparams(snd_pcm_t *handle,
+ snd_pcm_sw_params_t *params)
+ {
++ unsigned int start_threshold;
+ int err;
+
+ /* get current swparams */
+@@ -136,13 +151,7 @@
+ if (err < 0) {
+ printf("Unable to set start threshold mode for playback: %s\n", snd_strerror(err));
+ return err;
+- }
+- /* allow transfer when at least period_size samples can be processed */
+- err = snd_pcm_sw_params_set_avail_min(handle, params, period_size);
+- if (err < 0) {
+- printf("Unable to set avail min for playback: %s\n", snd_strerror(err));
+- return err;
+- }
++ }
+ /* align all transfers to 1 samples */
+ err = snd_pcm_sw_params_set_xfer_align(handle, params, 1);
+ if (err < 0) {
+@@ -190,7 +199,7 @@
+ rate = config->speed;
+
+ if ( bitdepth == 0 )
+- config->precision = bitdepth = 32;
++ config->precision = bitdepth = 16;
+
+ switch (bitdepth)
+ {
+@@ -241,7 +250,7 @@
+ return -1;
+ }
+
+- buf = malloc(buffer_size);
++ buf = malloc(buffer_size * sample_size);
+ if (buf == NULL) {
+ audio_error="unable to allocate output buffer table";
+ return -1;
+@@ -279,7 +288,7 @@
+ int play(struct audio_play *play)
+ {
+ int err, len;
+- char *ptr;
++ unsigned char *ptr;
+
+ ptr = buf;
+ len = play->nsamples;
+
+++ /dev/null
-Switch madplay to the new API. This is done thanks to a patch written
-by Micha Nelissen <micha@neli.hopto.org> and available at
-http://article.gmane.org/gmane.comp.audio.mad.devel/729.
-
---- madplay-0.15.2b/audio_alsa.c 2008-10-18 15:10:16.000000000 +0200
-+++ madplay-0.15.2b/audio_alsa.c.new 2008-10-18 15:03:27.000000000 +0200
-@@ -28,31 +28,30 @@
-
- #include <errno.h>
-
--#define ALSA_PCM_OLD_HW_PARAMS_API
--#define ALSA_PCM_OLD_SW_PARAMS_API
- #include <alsa/asoundlib.h>
-
- #include <mad.h>
-
- #include "audio.h"
-
--char *buf = NULL;
--int paused = 0;
-+#define BUFFER_TIME_MAX 500000
-
--int rate = -1;
--int channels = -1;
--int bitdepth = -1;
--int sample_size = -1;
--
--int buffer_time = 500000;
--int period_time = 100000;
--char *defaultdev = "plughw:0,0";
-+unsigned char *buf = NULL;
-+int paused = 0;
-+
-+unsigned int rate = 0;
-+unsigned int channels = -1;
-+unsigned int bitdepth = -1;
-+unsigned int sample_size = -1;
-+
-+unsigned int buffer_time;
-+unsigned int period_time;
-+char *defaultdev = "plughw:0,0";
-
- snd_pcm_hw_params_t *alsa_hwparams;
- snd_pcm_sw_params_t *alsa_swparams;
-
--snd_pcm_sframes_t buffer_size;
--snd_pcm_sframes_t period_size;
-+snd_pcm_uframes_t buffer_size;
-
- snd_pcm_format_t alsa_format = -1;
- snd_pcm_access_t alsa_access = SND_PCM_ACCESS_MMAP_INTERLEAVED;
-@@ -66,14 +65,20 @@
- snd_pcm_hw_params_t *params,
- snd_pcm_access_t access)
- {
-- int err, dir;
--
-+ int err;
-+
- /* choose all parameters */
- err = snd_pcm_hw_params_any(handle,params);
- if (err < 0) {
- printf("Access type not available for playback: %s\n", snd_strerror(err));
- return err;
- }
-+ /* set the access type */
-+ err = snd_pcm_hw_params_set_access(handle, params, alsa_access);
-+ if (err < 0) {
-+ printf("Sample format not available for playback: %s\n", snd_strerror(err));
-+ return err;
-+ }
- /* set the sample format */
- err = snd_pcm_hw_params_set_format(handle, params, alsa_format);
- if (err < 0) {
-@@ -87,29 +92,38 @@
- return err;
- }
- /* set the stream rate */
-- err = snd_pcm_hw_params_set_rate_near(handle, params, rate, 0);
-+ err = snd_pcm_hw_params_set_rate(handle, params, rate, 0);
- if (err < 0) {
- printf("Rate %iHz not available for playback: %s\n", rate, snd_strerror(err));
- return err;
- }
-- if (err != rate) {
-- printf("Rate doesn't match (requested %iHz, get %iHz)\n", rate, err);
-- return -EINVAL;
-- }
-+ err = snd_pcm_hw_params_get_buffer_time_max(params, &buffer_time, NULL);
-+ if (err < 0) {
-+ printf("Unable to retrieve buffer time: %s\n", snd_strerror(err));
-+ return err;
-+ }
-+ if (buffer_time > BUFFER_TIME_MAX)
-+ buffer_time = BUFFER_TIME_MAX;
- /* set buffer time */
-- err = snd_pcm_hw_params_set_buffer_time_near(handle, params, buffer_time, &dir);
-+ err = snd_pcm_hw_params_set_buffer_time_near(handle, params, &buffer_time, 0);
- if (err < 0) {
- printf("Unable to set buffer time %i for playback: %s\n", buffer_time, snd_strerror(err));
- return err;
- }
-- buffer_size = snd_pcm_hw_params_get_buffer_size(params);
-+ if (period_time * 4 > buffer_time)
-+ period_time = buffer_time / 4;
- /* set period time */
-- err = snd_pcm_hw_params_set_period_time_near(handle, params, period_time, &dir);
-+ err = snd_pcm_hw_params_set_period_time_near(handle, params, &period_time, NULL);
- if (err < 0) {
- printf("Unable to set period time %i for playback: %s\n", period_time, snd_strerror(err));
- return err;
- }
-- period_size = snd_pcm_hw_params_get_period_size(params, &dir);
-+ /* retrieve buffer size */
-+ err = snd_pcm_hw_params_get_buffer_size(params, &buffer_size);
-+ if (err < 0) {
-+ printf("Unable to retrieve buffer size: %s\n", snd_strerror(err));
-+ return err;
-+ }
- /* write the parameters to device */
- err = snd_pcm_hw_params(handle, params);
- if (err < 0) {
-@@ -123,6 +137,7 @@
- int set_swparams(snd_pcm_t *handle,
- snd_pcm_sw_params_t *params)
- {
-+ unsigned int start_threshold;
- int err;
-
- /* get current swparams */
-@@ -136,13 +151,7 @@
- if (err < 0) {
- printf("Unable to set start threshold mode for playback: %s\n", snd_strerror(err));
- return err;
-- }
-- /* allow transfer when at least period_size samples can be processed */
-- err = snd_pcm_sw_params_set_avail_min(handle, params, period_size);
-- if (err < 0) {
-- printf("Unable to set avail min for playback: %s\n", snd_strerror(err));
-- return err;
-- }
-+ }
- /* align all transfers to 1 samples */
- err = snd_pcm_sw_params_set_xfer_align(handle, params, 1);
- if (err < 0) {
-@@ -190,7 +199,7 @@
- rate = config->speed;
-
- if ( bitdepth == 0 )
-- config->precision = bitdepth = 32;
-+ config->precision = bitdepth = 16;
-
- switch (bitdepth)
- {
-@@ -241,7 +250,7 @@
- return -1;
- }
-
-- buf = malloc(buffer_size);
-+ buf = malloc(buffer_size * sample_size);
- if (buf == NULL) {
- audio_error="unable to allocate output buffer table";
- return -1;
-@@ -279,7 +288,7 @@
- int play(struct audio_play *play)
- {
- int err, len;
-- char *ptr;
-+ unsigned char *ptr;
-
- ptr = buf;
- len = play->nsamples;
-
--- /dev/null
+index() is a legacy function, not implemented in some uClibc
+configurations.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ libmb/mbexp.c | 2 +-
+ libmb/mbmenu.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: libmatchbox-1.9/libmb/mbexp.c
+===================================================================
+--- libmatchbox-1.9.orig/libmb/mbexp.c
++++ libmatchbox-1.9/libmb/mbexp.c
+@@ -492,7 +492,7 @@
+
+ /* get the family */
+
+- if (index(spec, ',') != NULL || index(spec, '-') != NULL)
++ if (strchr(spec, ',') != NULL || strchr(spec, '-') != NULL)
+ has_comma_delim = True;
+
+ while (!got_family) {
+Index: libmatchbox-1.9/libmb/mbmenu.c
+===================================================================
+--- libmatchbox-1.9.orig/libmb/mbmenu.c
++++ libmatchbox-1.9/libmb/mbmenu.c
+@@ -433,7 +433,7 @@
+ {
+ s = p;
+ found = NULL;
+- while(index("/\0", *p) == NULL) p++;
++ while(strchr("/\0", *p) == NULL) p++;
+ if (*p != '\0') { *p = '\0'; p++; };
+
+ item = current->items;
--- /dev/null
+Support for libpng 1.5+ shamelessly taken from Gentoo.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+--- a/libmb/mbpixbuf.c
++++ b/libmb/mbpixbuf.c
+@@ -247,7 +247,7 @@
+ return NULL;
+ }
+
+- if ( setjmp( png_ptr->jmpbuf ) ) {
++ if ( setjmp( png_jmpbuf(png_ptr) ) ) {
+ png_destroy_read_struct( &png_ptr, &info_ptr, NULL);
+ fclose(fd);
+ return NULL;
+@@ -269,8 +269,8 @@
+ ( color_type == PNG_COLOR_TYPE_GRAY_ALPHA ))
+ png_set_gray_to_rgb(png_ptr);
+
+- if ( info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA
+- || info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA
++ if ( color_type == PNG_COLOR_TYPE_RGB_ALPHA
++ || color_type == PNG_COLOR_TYPE_GRAY_ALPHA
+ )
+ *has_alpha = 1;
+ else
--- /dev/null
+matchbox-lib: include setjmp.h
+
+Based on this upstream patch:
+
+ http://git.yoctoproject.org/cgit/cgit.cgi/libmatchbox/commit/?id=9315bcce1f01e7d6c00161442d61d3c676794d9d
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+--- libmatchbox-1.9/libmb/mbpixbuf.c.orig 2014-02-21 12:45:46.867035956 +0000
++++ libmatchbox-1.9/libmb/mbpixbuf.c 2014-02-21 12:46:43.482949583 +0000
+@@ -22,6 +22,7 @@
+
+ #include <strings.h>
+ #include "mbpixbuf.h"
++#include <setjmp.h>
+
+ #define BYTE_ORD_24_RGB 0
+ #define BYTE_ORD_24_RBG 1
+++ /dev/null
-index() is a legacy function, not implemented in some uClibc
-configurations.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- libmb/mbexp.c | 2 +-
- libmb/mbmenu.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-Index: libmatchbox-1.9/libmb/mbexp.c
-===================================================================
---- libmatchbox-1.9.orig/libmb/mbexp.c
-+++ libmatchbox-1.9/libmb/mbexp.c
-@@ -492,7 +492,7 @@
-
- /* get the family */
-
-- if (index(spec, ',') != NULL || index(spec, '-') != NULL)
-+ if (strchr(spec, ',') != NULL || strchr(spec, '-') != NULL)
- has_comma_delim = True;
-
- while (!got_family) {
-Index: libmatchbox-1.9/libmb/mbmenu.c
-===================================================================
---- libmatchbox-1.9.orig/libmb/mbmenu.c
-+++ libmatchbox-1.9/libmb/mbmenu.c
-@@ -433,7 +433,7 @@
- {
- s = p;
- found = NULL;
-- while(index("/\0", *p) == NULL) p++;
-+ while(strchr("/\0", *p) == NULL) p++;
- if (*p != '\0') { *p = '\0'; p++; };
-
- item = current->items;
+++ /dev/null
-Support for libpng 1.5+ shamelessly taken from Gentoo.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
---- a/libmb/mbpixbuf.c
-+++ b/libmb/mbpixbuf.c
-@@ -247,7 +247,7 @@
- return NULL;
- }
-
-- if ( setjmp( png_ptr->jmpbuf ) ) {
-+ if ( setjmp( png_jmpbuf(png_ptr) ) ) {
- png_destroy_read_struct( &png_ptr, &info_ptr, NULL);
- fclose(fd);
- return NULL;
-@@ -269,8 +269,8 @@
- ( color_type == PNG_COLOR_TYPE_GRAY_ALPHA ))
- png_set_gray_to_rgb(png_ptr);
-
-- if ( info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA
-- || info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA
-+ if ( color_type == PNG_COLOR_TYPE_RGB_ALPHA
-+ || color_type == PNG_COLOR_TYPE_GRAY_ALPHA
- )
- *has_alpha = 1;
- else
+++ /dev/null
-matchbox-lib: include setjmp.h
-
-Based on this upstream patch:
-
- http://git.yoctoproject.org/cgit/cgit.cgi/libmatchbox/commit/?id=9315bcce1f01e7d6c00161442d61d3c676794d9d
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---- libmatchbox-1.9/libmb/mbpixbuf.c.orig 2014-02-21 12:45:46.867035956 +0000
-+++ libmatchbox-1.9/libmb/mbpixbuf.c 2014-02-21 12:46:43.482949583 +0000
-@@ -22,6 +22,7 @@
-
- #include <strings.h>
- #include "mbpixbuf.h"
-+#include <setjmp.h>
-
- #define BYTE_ORD_24_RGB 0
- #define BYTE_ORD_24_RBG 1
--- /dev/null
+mbmonitor uses TRUE / FALSE without defining them
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ mbmonitor.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: mb-applet-startup-monitor-0.1/mbmonitor.c
+===================================================================
+--- mb-applet-startup-monitor-0.1.orig/mbmonitor.c
++++ mb-applet-startup-monitor-0.1/mbmonitor.c
+@@ -43,6 +43,9 @@
+ #define POLLTIME 10
+ #define HOURGLASS_N_FRAMES 8
+
++#define FALSE 0
++#define TRUE 1
++
+ typedef struct LaunchList LaunchList;
+
+ struct LaunchList
+++ /dev/null
-mbmonitor uses TRUE / FALSE without defining them
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- mbmonitor.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-Index: mb-applet-startup-monitor-0.1/mbmonitor.c
-===================================================================
---- mb-applet-startup-monitor-0.1.orig/mbmonitor.c
-+++ mb-applet-startup-monitor-0.1/mbmonitor.c
-@@ -43,6 +43,9 @@
- #define POLLTIME 10
- #define HOURGLASS_N_FRAMES 8
-
-+#define FALSE 0
-+#define TRUE 1
-+
- typedef struct LaunchList LaunchList;
-
- struct LaunchList
--- /dev/null
+[PATCH] fix mbtheme build issue when png support is disabled
+
+DEFAULTTHEME{,NAME} is not defined when png support is disabled, leading
+to compile errors in mbtheme.c:
+
+mbtheme.c: In function 'show_parse_error':
+mbtheme.c:2422:28: error: 'DEFAULTTHEME' undeclared (first use in this function)
+mbtheme.c:2422:28: note: each undeclared identifier is reported only once for each function it appears in
+mbtheme.c: In function 'mbtheme_init':
+mbtheme.c:2448:30: error: 'DEFAULTTHEME' undeclared (first use in this function)
+mbtheme.c:2470:25: error: 'DEFAULTTHEMENAME' undeclared (first use in this function)
+
+Fix it by unconditionally defining them as the values used are the same
+in png / !png cases anyway.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/structs.h | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+Index: matchbox-window-manager-1.2/src/structs.h
+===================================================================
+--- matchbox-window-manager-1.2.orig/src/structs.h
++++ matchbox-window-manager-1.2/src/structs.h
+@@ -81,8 +81,6 @@
+
+ #define GENERIC_ICON PKGDATADIR "/mbnoapp.xpm"
+
+-#ifdef MB_HAVE_PNG
+-
+ #define DEFAULT_THEME DATADIR "/themes/Default/matchbox/theme.xml"
+
+ #define DEFAULTTHEME DATADIR "/themes/Default/matchbox/theme.xml"
+@@ -91,13 +89,6 @@
+
+ #define DEFAULTTHEMENAME "Default"
+
+-#else
+-
+-#define DEFAULT_THEME DATADIR "/themes/Default/matchbox/theme.xml"
+-#define DEFAULT_THEME_NAME "Default"
+-
+-#endif
+-
+ #define CONFDEFAULTS PKGDATADIR "/defaults"
+
+ /* Simple Macros */
+++ /dev/null
-[PATCH] fix mbtheme build issue when png support is disabled
-
-DEFAULTTHEME{,NAME} is not defined when png support is disabled, leading
-to compile errors in mbtheme.c:
-
-mbtheme.c: In function 'show_parse_error':
-mbtheme.c:2422:28: error: 'DEFAULTTHEME' undeclared (first use in this function)
-mbtheme.c:2422:28: note: each undeclared identifier is reported only once for each function it appears in
-mbtheme.c: In function 'mbtheme_init':
-mbtheme.c:2448:30: error: 'DEFAULTTHEME' undeclared (first use in this function)
-mbtheme.c:2470:25: error: 'DEFAULTTHEMENAME' undeclared (first use in this function)
-
-Fix it by unconditionally defining them as the values used are the same
-in png / !png cases anyway.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/structs.h | 9 ---------
- 1 file changed, 9 deletions(-)
-
-Index: matchbox-window-manager-1.2/src/structs.h
-===================================================================
---- matchbox-window-manager-1.2.orig/src/structs.h
-+++ matchbox-window-manager-1.2/src/structs.h
-@@ -81,8 +81,6 @@
-
- #define GENERIC_ICON PKGDATADIR "/mbnoapp.xpm"
-
--#ifdef MB_HAVE_PNG
--
- #define DEFAULT_THEME DATADIR "/themes/Default/matchbox/theme.xml"
-
- #define DEFAULTTHEME DATADIR "/themes/Default/matchbox/theme.xml"
-@@ -91,13 +89,6 @@
-
- #define DEFAULTTHEMENAME "Default"
-
--#else
--
--#define DEFAULT_THEME DATADIR "/themes/Default/matchbox/theme.xml"
--#define DEFAULT_THEME_NAME "Default"
--
--#endif
--
- #define CONFDEFAULTS PKGDATADIR "/defaults"
-
- /* Simple Macros */
--- /dev/null
+From 3efb40e17ce4f76717ae17a1ce1e1f747ddf59fd Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 22 Dec 2012 22:37:06 +0200
+Subject: [PATCH] cleanup: buffer overflow
+
+---
+ src/extra.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/extra.c b/src/extra.c
+index 3082f82..c7a1ac0 100644
+--- a/src/extra.c
++++ b/src/extra.c
+@@ -241,6 +241,8 @@ int check_file_head(FILE * fstream, char *algorithm, char *mode,
+ if (m_getbit(6, flags) == 1) { /* if the salt bit is set */
+ if (m_getbit(0, sflag) != 0) { /* if the first bit is set */
+ *salt_size = m_setbit(0, sflag, 0);
++ if (*salt_size > sizeof(tmp_buf))
++ err_quit(_("Salt is too long\n"));
+ if (*salt_size > 0) {
+ fread(tmp_buf, 1, *salt_size,
+ fstream);
+--
+1.7.8.6
+
--- /dev/null
+Patch taken from gentoo.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+--- a/src/errors.c
++++ b/src/errors.c
+@@ -25,24 +25,24 @@
+
+ void err_quit(char *errmsg)
+ {
+- fprintf(stderr, errmsg);
++ fprintf(stderr, "%s", errmsg);
+ exit(-1);
+ }
+
+ void err_warn(char *errmsg)
+ {
+ if (quiet <= 1)
+- fprintf(stderr, errmsg);
++ fprintf(stderr, "%s", errmsg);
+ }
+
+ void err_info(char *errmsg)
+ {
+ if (quiet == 0)
+- fprintf(stderr, errmsg);
++ fprintf(stderr, "%s", errmsg);
+ }
+
+ void err_crit(char *errmsg)
+ {
+ if (quiet <= 2)
+- fprintf(stderr, errmsg);
++ fprintf(stderr, "%s", errmsg);
+ }
--- /dev/null
+Fix for CVE-2012-4527.
+Authored by Attila Bogar and Jean-Michel Vourgère <jmv_deb@nirgal.com>
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura mcrypt-2.6.8.orig/src/mcrypt.c mcrypt-2.6.8/src/mcrypt.c
+--- mcrypt-2.6.8.orig/src/mcrypt.c 2013-01-14 19:15:49.465925072 -0300
++++ mcrypt-2.6.8/src/mcrypt.c 2013-01-14 19:28:13.711478000 -0300
+@@ -44,7 +44,9 @@
+ static char rcsid[] =
+ "$Id: mcrypt.c,v 1.2 2007/11/07 17:10:21 nmav Exp $";
+
+-char tmperr[128];
++/* Temporary error message can contain one file name and 1k of text */
++#define ERRWIDTH ((PATH_MAX)+1024)
++char tmperr[ERRWIDTH];
+ unsigned int stream_flag = FALSE;
+ char *keymode = NULL;
+ char *mode = NULL;
+@@ -482,7 +484,7 @@
+ #ifdef HAVE_STAT
+ if (stream_flag == FALSE) {
+ if (is_normal_file(file[i]) == FALSE) {
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("%s: %s is not a regular file. Skipping...\n"),
+ program_name, file[i]);
+@@ -501,7 +503,7 @@
+ dinfile = file[i];
+ if ((isatty(fileno((FILE *) (stdin))) == 1)
+ && (stream_flag == TRUE) && (force == 0)) { /* not a tty */
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("%s: Encrypted data will not be read from a terminal.\n"),
+ program_name);
+@@ -520,7 +522,7 @@
+ einfile = file[i];
+ if ((isatty(fileno((FILE *) (stdout))) == 1)
+ && (stream_flag == TRUE) && (force == 0)) { /* not a tty */
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("%s: Encrypted data will not be written to a terminal.\n"),
+ program_name);
+@@ -544,7 +546,7 @@
+ strcpy(outfile, einfile);
+ /* if file has already the .nc ignore it */
+ if (strstr(outfile, ".nc") != NULL) {
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("%s: file %s has the .nc suffix... skipping...\n"),
+ program_name, outfile);
+@@ -590,10 +592,10 @@
+
+ if (x == 0) {
+ if (stream_flag == FALSE) {
+- sprintf(tmperr, _("File %s was decrypted.\n"), dinfile);
++ snprintf(tmperr, ERRWIDTH, _("File %s was decrypted.\n"), dinfile);
+ err_warn(tmperr);
+ } else {
+- sprintf(tmperr, _("Stdin was decrypted.\n"));
++ snprintf(tmperr, ERRWIDTH, _("Stdin was decrypted.\n"));
+ err_warn(tmperr);
+ }
+ #ifdef HAVE_STAT
+@@ -610,7 +612,7 @@
+
+ } else {
+ if (stream_flag == FALSE) {
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("File %s was NOT decrypted successfully.\n"),
+ dinfile);
+@@ -636,10 +638,10 @@
+
+ if (x == 0) {
+ if (stream_flag == FALSE) {
+- sprintf(tmperr, _("File %s was encrypted.\n"), einfile);
++ snprintf(tmperr, ERRWIDTH, _("File %s was encrypted.\n"), einfile);
+ err_warn(tmperr);
+ } else {
+- sprintf(tmperr, _("Stdin was encrypted.\n"));
++ snprintf(tmperr, ERRWIDTH, _("Stdin was encrypted.\n"));
+ err_warn(tmperr);
+ }
+ #ifdef HAVE_STAT
+@@ -655,7 +657,7 @@
+
+ } else {
+ if (stream_flag == FALSE) {
+- sprintf(tmperr,
++ snprintf(tmperr, ERRWIDTH,
+ _
+ ("File %s was NOT encrypted successfully.\n"),
+ einfile);
--- /dev/null
+Patch out rpath hardcoding since it completely ignores --disable-rpath
+and other configure ways.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura mcrypt-2.6.8.orig/config.rpath mcrypt-2.6.8/config.rpath
+--- mcrypt-2.6.8.orig/config.rpath 2013-01-07 13:05:22.626883480 -0300
++++ mcrypt-2.6.8/config.rpath 2013-01-07 13:12:47.196090608 -0300
+@@ -153,7 +153,7 @@
+ # here allows them to be overridden if necessary.
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
++ hardcode_libdir_flag_spec=
+ case "$host_os" in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+++ /dev/null
-From 3efb40e17ce4f76717ae17a1ce1e1f747ddf59fd Mon Sep 17 00:00:00 2001
-From: Alon Bar-Lev <alon.barlev@gmail.com>
-Date: Sat, 22 Dec 2012 22:37:06 +0200
-Subject: [PATCH] cleanup: buffer overflow
-
----
- src/extra.c | 2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/src/extra.c b/src/extra.c
-index 3082f82..c7a1ac0 100644
---- a/src/extra.c
-+++ b/src/extra.c
-@@ -241,6 +241,8 @@ int check_file_head(FILE * fstream, char *algorithm, char *mode,
- if (m_getbit(6, flags) == 1) { /* if the salt bit is set */
- if (m_getbit(0, sflag) != 0) { /* if the first bit is set */
- *salt_size = m_setbit(0, sflag, 0);
-+ if (*salt_size > sizeof(tmp_buf))
-+ err_quit(_("Salt is too long\n"));
- if (*salt_size > 0) {
- fread(tmp_buf, 1, *salt_size,
- fstream);
---
-1.7.8.6
-
+++ /dev/null
-Patch taken from gentoo.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
---- a/src/errors.c
-+++ b/src/errors.c
-@@ -25,24 +25,24 @@
-
- void err_quit(char *errmsg)
- {
-- fprintf(stderr, errmsg);
-+ fprintf(stderr, "%s", errmsg);
- exit(-1);
- }
-
- void err_warn(char *errmsg)
- {
- if (quiet <= 1)
-- fprintf(stderr, errmsg);
-+ fprintf(stderr, "%s", errmsg);
- }
-
- void err_info(char *errmsg)
- {
- if (quiet == 0)
-- fprintf(stderr, errmsg);
-+ fprintf(stderr, "%s", errmsg);
- }
-
- void err_crit(char *errmsg)
- {
- if (quiet <= 2)
-- fprintf(stderr, errmsg);
-+ fprintf(stderr, "%s", errmsg);
- }
+++ /dev/null
-Fix for CVE-2012-4527.
-Authored by Attila Bogar and Jean-Michel Vourgère <jmv_deb@nirgal.com>
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura mcrypt-2.6.8.orig/src/mcrypt.c mcrypt-2.6.8/src/mcrypt.c
---- mcrypt-2.6.8.orig/src/mcrypt.c 2013-01-14 19:15:49.465925072 -0300
-+++ mcrypt-2.6.8/src/mcrypt.c 2013-01-14 19:28:13.711478000 -0300
-@@ -44,7 +44,9 @@
- static char rcsid[] =
- "$Id: mcrypt.c,v 1.2 2007/11/07 17:10:21 nmav Exp $";
-
--char tmperr[128];
-+/* Temporary error message can contain one file name and 1k of text */
-+#define ERRWIDTH ((PATH_MAX)+1024)
-+char tmperr[ERRWIDTH];
- unsigned int stream_flag = FALSE;
- char *keymode = NULL;
- char *mode = NULL;
-@@ -482,7 +484,7 @@
- #ifdef HAVE_STAT
- if (stream_flag == FALSE) {
- if (is_normal_file(file[i]) == FALSE) {
-- sprintf(tmperr,
-+ snprintf(tmperr, ERRWIDTH,
- _
- ("%s: %s is not a regular file. Skipping...\n"),
- program_name, file[i]);
-@@ -501,7 +503,7 @@
- dinfile = file[i];
- if ((isatty(fileno((FILE *) (stdin))) == 1)
- && (stream_flag == TRUE) && (force == 0)) { /* not a tty */
-- sprintf(tmperr,
-+ snprintf(tmperr, ERRWIDTH,
- _
- ("%s: Encrypted data will not be read from a terminal.\n"),
- program_name);
-@@ -520,7 +522,7 @@
- einfile = file[i];
- if ((isatty(fileno((FILE *) (stdout))) == 1)
- && (stream_flag == TRUE) && (force == 0)) { /* not a tty */
-- sprintf(tmperr,
-+ snprintf(tmperr, ERRWIDTH,
- _
- ("%s: Encrypted data will not be written to a terminal.\n"),
- program_name);
-@@ -544,7 +546,7 @@
- strcpy(outfile, einfile);
- /* if file has already the .nc ignore it */
- if (strstr(outfile, ".nc") != NULL) {
-- sprintf(tmperr,
-+ snprintf(tmperr, ERRWIDTH,
- _
- ("%s: file %s has the .nc suffix... skipping...\n"),
- program_name, outfile);
-@@ -590,10 +592,10 @@
-
- if (x == 0) {
- if (stream_flag == FALSE) {
-- sprintf(tmperr, _("File %s was decrypted.\n"), dinfile);
-+ snprintf(tmperr, ERRWIDTH, _("File %s was decrypted.\n"), dinfile);
- err_warn(tmperr);
- } else {
-- sprintf(tmperr, _("Stdin was decrypted.\n"));
-+ snprintf(tmperr, ERRWIDTH, _("Stdin was decrypted.\n"));
- err_warn(tmperr);
- }
- #ifdef HAVE_STAT
-@@ -610,7 +612,7 @@
-
- } else {
- if (stream_flag == FALSE) {
-- sprintf(tmperr,
-+ snprintf(tmperr, ERRWIDTH,
- _
- ("File %s was NOT decrypted successfully.\n"),
- dinfile);
-@@ -636,10 +638,10 @@
-
- if (x == 0) {
- if (stream_flag == FALSE) {
-- sprintf(tmperr, _("File %s was encrypted.\n"), einfile);
-+ snprintf(tmperr, ERRWIDTH, _("File %s was encrypted.\n"), einfile);
- err_warn(tmperr);
- } else {
-- sprintf(tmperr, _("Stdin was encrypted.\n"));
-+ snprintf(tmperr, ERRWIDTH, _("Stdin was encrypted.\n"));
- err_warn(tmperr);
- }
- #ifdef HAVE_STAT
-@@ -655,7 +657,7 @@
-
- } else {
- if (stream_flag == FALSE) {
-- sprintf(tmperr,
-+ snprintf(tmperr, ERRWIDTH,
- _
- ("File %s was NOT encrypted successfully.\n"),
- einfile);
+++ /dev/null
-Patch out rpath hardcoding since it completely ignores --disable-rpath
-and other configure ways.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura mcrypt-2.6.8.orig/config.rpath mcrypt-2.6.8/config.rpath
---- mcrypt-2.6.8.orig/config.rpath 2013-01-07 13:05:22.626883480 -0300
-+++ mcrypt-2.6.8/config.rpath 2013-01-07 13:12:47.196090608 -0300
-@@ -153,7 +153,7 @@
- # here allows them to be overridden if necessary.
- # Unlike libtool, we use -rpath here, not --rpath, since the documented
- # option of GNU ld is called -rpath, not --rpath.
-- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-+ hardcode_libdir_flag_spec=
- case "$host_os" in
- aix3* | aix4* | aix5*)
- # On AIX/PPC, the GNU linker is very broken
--- /dev/null
+From a1a9243671b1e23123f57e879890325154b8e00d Mon Sep 17 00:00:00 2001
+From: Christophe Vu-Brugier <cvubrugier@lacie.com>
+Date: Wed, 6 Mar 2013 16:03:14 +0100
+Subject: [PATCH] Add install targets for mdadm and mdmon
+
+
+Signed-off-by: Christophe Vu-Brugier <cvubrugier@lacie.com>
+---
+ Makefile | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 315455b..27d8eeb 100644
+--- a/Makefile
++++ b/Makefile
+@@ -231,8 +231,12 @@ $(MON_OBJS) : $(INCL) mdmon.h
+ sha1.o : sha1.c sha1.h md5.h
+ $(CC) $(CFLAGS) -DHAVE_STDINT_H -o sha1.o -c sha1.c
+
+-install : mdadm mdmon install-man install-udev
++install : install-mdadm install-mdmon install-man install-udev
++
++install-mdadm :
+ $(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm
++
++install-mdmon :
+ $(INSTALL) -D $(STRIP) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon
+
+ install-static : mdadm.static install-man
+--
+1.7.10.4
+
--- /dev/null
+[PATCH] mdadm: don't enable largefile support unconditionally on uClibc
+
+uClibc can be compiled without largefile support (and errors out if
+_FILE_OFFSET_BITS is set to 64), so don't define it if that combination
+is detected.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ mdadm.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+Index: mdadm-3.2.6/mdadm.h
+===================================================================
+--- mdadm-3.2.6.orig/mdadm.h
++++ mdadm-3.2.6/mdadm.h
+@@ -23,7 +23,11 @@
+ */
+
+ #define _GNU_SOURCE
++#include <features.h>
++/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
+ #define _FILE_OFFSET_BITS 64
++#endif
+ #include <unistd.h>
+ #if !defined(__dietlibc__) && !defined(__KLIBC__)
+ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
--- /dev/null
+From 9c63360a2db71882cc548305774ce87af5f52b6e Mon Sep 17 00:00:00 2001
+From: Christophe Vu-Brugier <cvubrugier@lacie.com>
+Date: Thu, 7 Mar 2013 10:37:09 +0100
+Subject: [PATCH] uClibc: redefine off64_t as off_t if largefile support is
+ disabled
+
+
+Signed-off-by: Christophe Vu-Brugier <cvubrugier@lacie.com>
+---
+ mdadm.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mdadm.h b/mdadm.h
+index 216c31d..1c72cc4 100644
+--- a/mdadm.h
++++ b/mdadm.h
+@@ -1008,6 +1008,7 @@ struct stat64;
+ # include <features.h>
+ # ifndef __UCLIBC_HAS_LFS__
+ # define lseek64 lseek
++# define off64_t off_t
+ # endif
+ # ifndef __UCLIBC_HAS_FTW__
+ # undef HAVE_FTW
+--
+1.7.10.4
+
+++ /dev/null
-From a1a9243671b1e23123f57e879890325154b8e00d Mon Sep 17 00:00:00 2001
-From: Christophe Vu-Brugier <cvubrugier@lacie.com>
-Date: Wed, 6 Mar 2013 16:03:14 +0100
-Subject: [PATCH] Add install targets for mdadm and mdmon
-
-
-Signed-off-by: Christophe Vu-Brugier <cvubrugier@lacie.com>
----
- Makefile | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 315455b..27d8eeb 100644
---- a/Makefile
-+++ b/Makefile
-@@ -231,8 +231,12 @@ $(MON_OBJS) : $(INCL) mdmon.h
- sha1.o : sha1.c sha1.h md5.h
- $(CC) $(CFLAGS) -DHAVE_STDINT_H -o sha1.o -c sha1.c
-
--install : mdadm mdmon install-man install-udev
-+install : install-mdadm install-mdmon install-man install-udev
-+
-+install-mdadm :
- $(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm
-+
-+install-mdmon :
- $(INSTALL) -D $(STRIP) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon
-
- install-static : mdadm.static install-man
---
-1.7.10.4
-
+++ /dev/null
-[PATCH] mdadm: don't enable largefile support unconditionally on uClibc
-
-uClibc can be compiled without largefile support (and errors out if
-_FILE_OFFSET_BITS is set to 64), so don't define it if that combination
-is detected.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- mdadm.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-Index: mdadm-3.2.6/mdadm.h
-===================================================================
---- mdadm-3.2.6.orig/mdadm.h
-+++ mdadm-3.2.6/mdadm.h
-@@ -23,7 +23,11 @@
- */
-
- #define _GNU_SOURCE
-+#include <features.h>
-+/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
- #define _FILE_OFFSET_BITS 64
-+#endif
- #include <unistd.h>
- #if !defined(__dietlibc__) && !defined(__KLIBC__)
- extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
+++ /dev/null
-From 9c63360a2db71882cc548305774ce87af5f52b6e Mon Sep 17 00:00:00 2001
-From: Christophe Vu-Brugier <cvubrugier@lacie.com>
-Date: Thu, 7 Mar 2013 10:37:09 +0100
-Subject: [PATCH] uClibc: redefine off64_t as off_t if largefile support is
- disabled
-
-
-Signed-off-by: Christophe Vu-Brugier <cvubrugier@lacie.com>
----
- mdadm.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/mdadm.h b/mdadm.h
-index 216c31d..1c72cc4 100644
---- a/mdadm.h
-+++ b/mdadm.h
-@@ -1008,6 +1008,7 @@ struct stat64;
- # include <features.h>
- # ifndef __UCLIBC_HAS_LFS__
- # define lseek64 lseek
-+# define off64_t off_t
- # endif
- # ifndef __UCLIBC_HAS_FTW__
- # undef HAVE_FTW
---
-1.7.10.4
-
--- /dev/null
+From 480b9effa08541b5df369dd6516013282cf28bd8 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Sun, 6 Oct 2013 17:24:04 +0200
+Subject: [PATCH] Add kernel headers for compatibility with old toolchains
+
+The media controller mechanism is relatively new in the Linux kernel,
+and therefore all toolchains don't yet have the necessary
+headers. This patch makes sure that media-ctl provides such headers,
+as was already the case with v4l2-common.h, v4l2-subdev.h and
+videodev2.h.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure.ac | 6 +--
+ src/linux/media.h | 132 ++++++++++++++++++++++++++++++++++++++++++++++
+ src/linux/v4l2-mediabus.h | 119 +++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 252 insertions(+), 5 deletions(-)
+ create mode 100644 src/linux/media.h
+ create mode 100644 src/linux/v4l2-mediabus.h
+
+diff --git a/configure.ac b/configure.ac
+index a749794..56eb71f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -51,11 +51,7 @@ AC_ARG_WITH(kernel-headers,
+ CPPFLAGS="$CPPFLAGS -I$KERNEL_HEADERS_DIR/include"
+
+ # Checks for header files.
+-AC_CHECK_HEADERS([linux/media.h \
+- linux/types.h \
+- linux/v4l2-mediabus.h \
+- linux/v4l2-subdev.h \
+- linux/videodev2.h],
++AC_CHECK_HEADERS([linux/types.h],
+ [],
+ [echo "ERROR: Kernel header file not found or not usable!"; exit 1])
+
+diff --git a/src/linux/media.h b/src/linux/media.h
+new file mode 100644
+index 0000000..410e7cc
+--- /dev/null
++++ b/src/linux/media.h
+@@ -0,0 +1,132 @@
++/*
++ * Multimedia device API
++ *
++ * Copyright (C) 2010 Nokia Corporation
++ *
++ * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
++ * Sakari Ailus <sakari.ailus@iki.fi>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#ifndef __LINUX_MEDIA_H
++#define __LINUX_MEDIA_H
++
++#include <linux/ioctl.h>
++#include <linux/types.h>
++#include <linux/version.h>
++
++#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
++
++struct media_device_info {
++ char driver[16];
++ char model[32];
++ char serial[40];
++ char bus_info[32];
++ __u32 media_version;
++ __u32 hw_revision;
++ __u32 driver_version;
++ __u32 reserved[31];
++};
++
++#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
++
++#define MEDIA_ENT_TYPE_SHIFT 16
++#define MEDIA_ENT_TYPE_MASK 0x00ff0000
++#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
++
++#define MEDIA_ENT_T_DEVNODE (1 << MEDIA_ENT_TYPE_SHIFT)
++#define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1)
++#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
++#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
++#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
++
++#define MEDIA_ENT_T_V4L2_SUBDEV (2 << MEDIA_ENT_TYPE_SHIFT)
++#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR (MEDIA_ENT_T_V4L2_SUBDEV + 1)
++#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH (MEDIA_ENT_T_V4L2_SUBDEV + 2)
++#define MEDIA_ENT_T_V4L2_SUBDEV_LENS (MEDIA_ENT_T_V4L2_SUBDEV + 3)
++
++#define MEDIA_ENT_FL_DEFAULT (1 << 0)
++
++struct media_entity_desc {
++ __u32 id;
++ char name[32];
++ __u32 type;
++ __u32 revision;
++ __u32 flags;
++ __u32 group_id;
++ __u16 pads;
++ __u16 links;
++
++ __u32 reserved[4];
++
++ union {
++ /* Node specifications */
++ struct {
++ __u32 major;
++ __u32 minor;
++ } v4l;
++ struct {
++ __u32 major;
++ __u32 minor;
++ } fb;
++ struct {
++ __u32 card;
++ __u32 device;
++ __u32 subdevice;
++ } alsa;
++ int dvb;
++
++ /* Sub-device specifications */
++ /* Nothing needed yet */
++ __u8 raw[184];
++ };
++};
++
++#define MEDIA_PAD_FL_SINK (1 << 0)
++#define MEDIA_PAD_FL_SOURCE (1 << 1)
++
++struct media_pad_desc {
++ __u32 entity; /* entity ID */
++ __u16 index; /* pad index */
++ __u32 flags; /* pad flags */
++ __u32 reserved[2];
++};
++
++#define MEDIA_LNK_FL_ENABLED (1 << 0)
++#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
++#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
++
++struct media_link_desc {
++ struct media_pad_desc source;
++ struct media_pad_desc sink;
++ __u32 flags;
++ __u32 reserved[2];
++};
++
++struct media_links_enum {
++ __u32 entity;
++ /* Should have enough room for pads elements */
++ struct media_pad_desc *pads;
++ /* Should have enough room for links elements */
++ struct media_link_desc *links;
++ __u32 reserved[4];
++};
++
++#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)
++#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)
++#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
++#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
++
++#endif /* __LINUX_MEDIA_H */
+diff --git a/src/linux/v4l2-mediabus.h b/src/linux/v4l2-mediabus.h
+new file mode 100644
+index 0000000..7d64e0e
+--- /dev/null
++++ b/src/linux/v4l2-mediabus.h
+@@ -0,0 +1,119 @@
++/*
++ * Media Bus API header
++ *
++ * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __LINUX_V4L2_MEDIABUS_H
++#define __LINUX_V4L2_MEDIABUS_H
++
++#include <linux/types.h>
++#include <linux/videodev2.h>
++
++/*
++ * These pixel codes uniquely identify data formats on the media bus. Mostly
++ * they correspond to similarly named V4L2_PIX_FMT_* formats, format 0 is
++ * reserved, V4L2_MBUS_FMT_FIXED shall be used by host-client pairs, where the
++ * data format is fixed. Additionally, "2X8" means that one pixel is transferred
++ * in two 8-bit samples, "BE" or "LE" specify in which order those samples are
++ * transferred over the bus: "LE" means that the least significant bits are
++ * transferred first, "BE" means that the most significant bits are transferred
++ * first, and "PADHI" and "PADLO" define which bits - low or high, in the
++ * incomplete high byte, are filled with padding bits.
++ *
++ * The pixel codes are grouped by type, bus_width, bits per component, samples
++ * per pixel and order of subsamples. Numerical values are sorted using generic
++ * numerical sort order (8 thus comes before 10).
++ *
++ * As their value can't change when a new pixel code is inserted in the
++ * enumeration, the pixel codes are explicitly given a numerical value. The next
++ * free values for each category are listed below, update them when inserting
++ * new pixel codes.
++ */
++enum v4l2_mbus_pixelcode {
++ V4L2_MBUS_FMT_FIXED = 0x0001,
++
++ /* RGB - next is 0x1009 */
++ V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE = 0x1001,
++ V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE = 0x1002,
++ V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 0x1003,
++ V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 0x1004,
++ V4L2_MBUS_FMT_BGR565_2X8_BE = 0x1005,
++ V4L2_MBUS_FMT_BGR565_2X8_LE = 0x1006,
++ V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007,
++ V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008,
++
++ /* YUV (including grey) - next is 0x2014 */
++ V4L2_MBUS_FMT_Y8_1X8 = 0x2001,
++ V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002,
++ V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003,
++ V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004,
++ V4L2_MBUS_FMT_YVYU8_1_5X8 = 0x2005,
++ V4L2_MBUS_FMT_UYVY8_2X8 = 0x2006,
++ V4L2_MBUS_FMT_VYUY8_2X8 = 0x2007,
++ V4L2_MBUS_FMT_YUYV8_2X8 = 0x2008,
++ V4L2_MBUS_FMT_YVYU8_2X8 = 0x2009,
++ V4L2_MBUS_FMT_Y10_1X10 = 0x200a,
++ V4L2_MBUS_FMT_YUYV10_2X10 = 0x200b,
++ V4L2_MBUS_FMT_YVYU10_2X10 = 0x200c,
++ V4L2_MBUS_FMT_Y12_1X12 = 0x2013,
++ V4L2_MBUS_FMT_UYVY8_1X16 = 0x200f,
++ V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010,
++ V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011,
++ V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012,
++ V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d,
++ V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e,
++
++ /* Bayer - next is 0x3015 */
++ V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001,
++ V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013,
++ V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002,
++ V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014,
++ V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b,
++ V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c,
++ V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009,
++ V4L2_MBUS_FMT_SRGGB10_DPCM8_1X8 = 0x300d,
++ V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE = 0x3003,
++ V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE = 0x3004,
++ V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE = 0x3005,
++ V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE = 0x3006,
++ V4L2_MBUS_FMT_SBGGR10_1X10 = 0x3007,
++ V4L2_MBUS_FMT_SGBRG10_1X10 = 0x300e,
++ V4L2_MBUS_FMT_SGRBG10_1X10 = 0x300a,
++ V4L2_MBUS_FMT_SRGGB10_1X10 = 0x300f,
++ V4L2_MBUS_FMT_SBGGR12_1X12 = 0x3008,
++ V4L2_MBUS_FMT_SGBRG12_1X12 = 0x3010,
++ V4L2_MBUS_FMT_SGRBG12_1X12 = 0x3011,
++ V4L2_MBUS_FMT_SRGGB12_1X12 = 0x3012,
++
++ /* JPEG compressed formats - next is 0x4002 */
++ V4L2_MBUS_FMT_JPEG_1X8 = 0x4001,
++
++ /* Vendor specific formats - next is 0x5002 */
++
++ /* S5C73M3 sensor specific interleaved UYVY and JPEG */
++ V4L2_MBUS_FMT_S5C_UYVY_JPEG_1X8 = 0x5001,
++};
++
++/**
++ * struct v4l2_mbus_framefmt - frame format on the media bus
++ * @width: frame width
++ * @height: frame height
++ * @code: data format code (from enum v4l2_mbus_pixelcode)
++ * @field: used interlacing type (from enum v4l2_field)
++ * @colorspace: colorspace of the data (from enum v4l2_colorspace)
++ */
++struct v4l2_mbus_framefmt {
++ __u32 width;
++ __u32 height;
++ __u32 code;
++ __u32 field;
++ __u32 colorspace;
++ __u32 reserved[7];
++};
++
++#endif
+--
+1.8.1.2
+
+++ /dev/null
-From 480b9effa08541b5df369dd6516013282cf28bd8 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sun, 6 Oct 2013 17:24:04 +0200
-Subject: [PATCH] Add kernel headers for compatibility with old toolchains
-
-The media controller mechanism is relatively new in the Linux kernel,
-and therefore all toolchains don't yet have the necessary
-headers. This patch makes sure that media-ctl provides such headers,
-as was already the case with v4l2-common.h, v4l2-subdev.h and
-videodev2.h.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- configure.ac | 6 +--
- src/linux/media.h | 132 ++++++++++++++++++++++++++++++++++++++++++++++
- src/linux/v4l2-mediabus.h | 119 +++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 252 insertions(+), 5 deletions(-)
- create mode 100644 src/linux/media.h
- create mode 100644 src/linux/v4l2-mediabus.h
-
-diff --git a/configure.ac b/configure.ac
-index a749794..56eb71f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -51,11 +51,7 @@ AC_ARG_WITH(kernel-headers,
- CPPFLAGS="$CPPFLAGS -I$KERNEL_HEADERS_DIR/include"
-
- # Checks for header files.
--AC_CHECK_HEADERS([linux/media.h \
-- linux/types.h \
-- linux/v4l2-mediabus.h \
-- linux/v4l2-subdev.h \
-- linux/videodev2.h],
-+AC_CHECK_HEADERS([linux/types.h],
- [],
- [echo "ERROR: Kernel header file not found or not usable!"; exit 1])
-
-diff --git a/src/linux/media.h b/src/linux/media.h
-new file mode 100644
-index 0000000..410e7cc
---- /dev/null
-+++ b/src/linux/media.h
-@@ -0,0 +1,132 @@
-+/*
-+ * Multimedia device API
-+ *
-+ * Copyright (C) 2010 Nokia Corporation
-+ *
-+ * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-+ * Sakari Ailus <sakari.ailus@iki.fi>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ */
-+
-+#ifndef __LINUX_MEDIA_H
-+#define __LINUX_MEDIA_H
-+
-+#include <linux/ioctl.h>
-+#include <linux/types.h>
-+#include <linux/version.h>
-+
-+#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
-+
-+struct media_device_info {
-+ char driver[16];
-+ char model[32];
-+ char serial[40];
-+ char bus_info[32];
-+ __u32 media_version;
-+ __u32 hw_revision;
-+ __u32 driver_version;
-+ __u32 reserved[31];
-+};
-+
-+#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
-+
-+#define MEDIA_ENT_TYPE_SHIFT 16
-+#define MEDIA_ENT_TYPE_MASK 0x00ff0000
-+#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
-+
-+#define MEDIA_ENT_T_DEVNODE (1 << MEDIA_ENT_TYPE_SHIFT)
-+#define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1)
-+#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
-+#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
-+#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
-+
-+#define MEDIA_ENT_T_V4L2_SUBDEV (2 << MEDIA_ENT_TYPE_SHIFT)
-+#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR (MEDIA_ENT_T_V4L2_SUBDEV + 1)
-+#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH (MEDIA_ENT_T_V4L2_SUBDEV + 2)
-+#define MEDIA_ENT_T_V4L2_SUBDEV_LENS (MEDIA_ENT_T_V4L2_SUBDEV + 3)
-+
-+#define MEDIA_ENT_FL_DEFAULT (1 << 0)
-+
-+struct media_entity_desc {
-+ __u32 id;
-+ char name[32];
-+ __u32 type;
-+ __u32 revision;
-+ __u32 flags;
-+ __u32 group_id;
-+ __u16 pads;
-+ __u16 links;
-+
-+ __u32 reserved[4];
-+
-+ union {
-+ /* Node specifications */
-+ struct {
-+ __u32 major;
-+ __u32 minor;
-+ } v4l;
-+ struct {
-+ __u32 major;
-+ __u32 minor;
-+ } fb;
-+ struct {
-+ __u32 card;
-+ __u32 device;
-+ __u32 subdevice;
-+ } alsa;
-+ int dvb;
-+
-+ /* Sub-device specifications */
-+ /* Nothing needed yet */
-+ __u8 raw[184];
-+ };
-+};
-+
-+#define MEDIA_PAD_FL_SINK (1 << 0)
-+#define MEDIA_PAD_FL_SOURCE (1 << 1)
-+
-+struct media_pad_desc {
-+ __u32 entity; /* entity ID */
-+ __u16 index; /* pad index */
-+ __u32 flags; /* pad flags */
-+ __u32 reserved[2];
-+};
-+
-+#define MEDIA_LNK_FL_ENABLED (1 << 0)
-+#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
-+#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
-+
-+struct media_link_desc {
-+ struct media_pad_desc source;
-+ struct media_pad_desc sink;
-+ __u32 flags;
-+ __u32 reserved[2];
-+};
-+
-+struct media_links_enum {
-+ __u32 entity;
-+ /* Should have enough room for pads elements */
-+ struct media_pad_desc *pads;
-+ /* Should have enough room for links elements */
-+ struct media_link_desc *links;
-+ __u32 reserved[4];
-+};
-+
-+#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)
-+#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)
-+#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
-+#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
-+
-+#endif /* __LINUX_MEDIA_H */
-diff --git a/src/linux/v4l2-mediabus.h b/src/linux/v4l2-mediabus.h
-new file mode 100644
-index 0000000..7d64e0e
---- /dev/null
-+++ b/src/linux/v4l2-mediabus.h
-@@ -0,0 +1,119 @@
-+/*
-+ * Media Bus API header
-+ *
-+ * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#ifndef __LINUX_V4L2_MEDIABUS_H
-+#define __LINUX_V4L2_MEDIABUS_H
-+
-+#include <linux/types.h>
-+#include <linux/videodev2.h>
-+
-+/*
-+ * These pixel codes uniquely identify data formats on the media bus. Mostly
-+ * they correspond to similarly named V4L2_PIX_FMT_* formats, format 0 is
-+ * reserved, V4L2_MBUS_FMT_FIXED shall be used by host-client pairs, where the
-+ * data format is fixed. Additionally, "2X8" means that one pixel is transferred
-+ * in two 8-bit samples, "BE" or "LE" specify in which order those samples are
-+ * transferred over the bus: "LE" means that the least significant bits are
-+ * transferred first, "BE" means that the most significant bits are transferred
-+ * first, and "PADHI" and "PADLO" define which bits - low or high, in the
-+ * incomplete high byte, are filled with padding bits.
-+ *
-+ * The pixel codes are grouped by type, bus_width, bits per component, samples
-+ * per pixel and order of subsamples. Numerical values are sorted using generic
-+ * numerical sort order (8 thus comes before 10).
-+ *
-+ * As their value can't change when a new pixel code is inserted in the
-+ * enumeration, the pixel codes are explicitly given a numerical value. The next
-+ * free values for each category are listed below, update them when inserting
-+ * new pixel codes.
-+ */
-+enum v4l2_mbus_pixelcode {
-+ V4L2_MBUS_FMT_FIXED = 0x0001,
-+
-+ /* RGB - next is 0x1009 */
-+ V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE = 0x1001,
-+ V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE = 0x1002,
-+ V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 0x1003,
-+ V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 0x1004,
-+ V4L2_MBUS_FMT_BGR565_2X8_BE = 0x1005,
-+ V4L2_MBUS_FMT_BGR565_2X8_LE = 0x1006,
-+ V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007,
-+ V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008,
-+
-+ /* YUV (including grey) - next is 0x2014 */
-+ V4L2_MBUS_FMT_Y8_1X8 = 0x2001,
-+ V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002,
-+ V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003,
-+ V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004,
-+ V4L2_MBUS_FMT_YVYU8_1_5X8 = 0x2005,
-+ V4L2_MBUS_FMT_UYVY8_2X8 = 0x2006,
-+ V4L2_MBUS_FMT_VYUY8_2X8 = 0x2007,
-+ V4L2_MBUS_FMT_YUYV8_2X8 = 0x2008,
-+ V4L2_MBUS_FMT_YVYU8_2X8 = 0x2009,
-+ V4L2_MBUS_FMT_Y10_1X10 = 0x200a,
-+ V4L2_MBUS_FMT_YUYV10_2X10 = 0x200b,
-+ V4L2_MBUS_FMT_YVYU10_2X10 = 0x200c,
-+ V4L2_MBUS_FMT_Y12_1X12 = 0x2013,
-+ V4L2_MBUS_FMT_UYVY8_1X16 = 0x200f,
-+ V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010,
-+ V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011,
-+ V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012,
-+ V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d,
-+ V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e,
-+
-+ /* Bayer - next is 0x3015 */
-+ V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001,
-+ V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013,
-+ V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002,
-+ V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014,
-+ V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b,
-+ V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c,
-+ V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009,
-+ V4L2_MBUS_FMT_SRGGB10_DPCM8_1X8 = 0x300d,
-+ V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE = 0x3003,
-+ V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE = 0x3004,
-+ V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE = 0x3005,
-+ V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE = 0x3006,
-+ V4L2_MBUS_FMT_SBGGR10_1X10 = 0x3007,
-+ V4L2_MBUS_FMT_SGBRG10_1X10 = 0x300e,
-+ V4L2_MBUS_FMT_SGRBG10_1X10 = 0x300a,
-+ V4L2_MBUS_FMT_SRGGB10_1X10 = 0x300f,
-+ V4L2_MBUS_FMT_SBGGR12_1X12 = 0x3008,
-+ V4L2_MBUS_FMT_SGBRG12_1X12 = 0x3010,
-+ V4L2_MBUS_FMT_SGRBG12_1X12 = 0x3011,
-+ V4L2_MBUS_FMT_SRGGB12_1X12 = 0x3012,
-+
-+ /* JPEG compressed formats - next is 0x4002 */
-+ V4L2_MBUS_FMT_JPEG_1X8 = 0x4001,
-+
-+ /* Vendor specific formats - next is 0x5002 */
-+
-+ /* S5C73M3 sensor specific interleaved UYVY and JPEG */
-+ V4L2_MBUS_FMT_S5C_UYVY_JPEG_1X8 = 0x5001,
-+};
-+
-+/**
-+ * struct v4l2_mbus_framefmt - frame format on the media bus
-+ * @width: frame width
-+ * @height: frame height
-+ * @code: data format code (from enum v4l2_mbus_pixelcode)
-+ * @field: used interlacing type (from enum v4l2_field)
-+ * @colorspace: colorspace of the data (from enum v4l2_colorspace)
-+ */
-+struct v4l2_mbus_framefmt {
-+ __u32 width;
-+ __u32 height;
-+ __u32 code;
-+ __u32 field;
-+ __u32 colorspace;
-+ __u32 reserved[7];
-+};
-+
-+#endif
---
-1.8.1.2
-
--- /dev/null
+Fix linphone compile with newer ffmpeg versions, downloaded from
+https://github.com/dankamongmen/mediastreamer2/commit/4f438eb8e132a3119284be771e0daad143597ebd
+
+Fixes
+http://autobuild.buildroot.net/results/b72/b72b1f6287986af3d686cc3c8b9c1b3fd9419d29/
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+
+From 4f438eb8e132a3119284be771e0daad143597ebd Mon Sep 17 00:00:00 2001
+From: nick black <nick.black@sprezzatech.com>
+Date: Mon, 28 Jan 2013 23:54:17 -0500
+Subject: [PATCH] adapt to new libav API
+
+---
+ src/utils/ffmpeg-priv.h | 1 +
+ src/videofilters/h264dec.c | 6 +++---
+ src/videofilters/jpegwriter.c | 6 +++---
+ src/videofilters/nowebcam.c | 6 +++---
+ src/videofilters/videodec.c | 8 ++++----
+ src/videofilters/videoenc.c | 6 +++---
+ 6 files changed, 17 insertions(+), 16 deletions(-)
+
+diff --git a/src/utils/ffmpeg-priv.h b/src/utils/ffmpeg-priv.h
+index 0eab098..a405c05 100644
+--- a/src/utils/ffmpeg-priv.h
++++ b/src/utils/ffmpeg-priv.h
+@@ -35,6 +35,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ /* new layout */
+ # include <libavcodec/avcodec.h>
+ # include <libavutil/avutil.h>
++# include <libavutil/mem.h>
+ #else
+ /* old layout */
+ # include <ffmpeg/avcodec.h>
+diff --git a/src/videofilters/h264dec.c b/src/videofilters/h264dec.c
+index 5229b5e..7059634 100644
+--- a/src/videofilters/h264dec.c
++++ b/src/videofilters/h264dec.c
+@@ -58,10 +58,10 @@ static void dec_open(DecData *d){
+ int error;
+ codec=avcodec_find_decoder(CODEC_ID_H264);
+ if (codec==NULL) ms_fatal("Could not find H264 decoder in ffmpeg.");
+- avcodec_get_context_defaults(&d->av_context);
+- error=avcodec_open(&d->av_context,codec);
++ avcodec_get_context_defaults3(&d->av_context, codec);
++ error=avcodec_open2(&d->av_context,codec, NULL);
+ if (error!=0){
+- ms_fatal("avcodec_open() failed.");
++ ms_fatal("avcodec_open2() failed.");
+ }
+ }
+
+diff --git a/src/videofilters/jpegwriter.c b/src/videofilters/jpegwriter.c
+index cca79c5..daf3cdb 100644
+--- a/src/videofilters/jpegwriter.c
++++ b/src/videofilters/jpegwriter.c
+@@ -90,7 +90,7 @@ static void jpg_process(MSFilter *f){
+ mblk_t *jpegm;
+ struct SwsContext *sws_ctx;
+
+- AVCodecContext *avctx=avcodec_alloc_context();
++ AVCodecContext *avctx=avcodec_alloc_context3(NULL);
+
+ avctx->width=yuvbuf.w;
+ avctx->height=yuvbuf.h;
+@@ -98,9 +98,9 @@ static void jpg_process(MSFilter *f){
+ avctx->time_base.den =1;
+ avctx->pix_fmt=PIX_FMT_YUVJ420P;
+
+- error=avcodec_open(avctx,s->codec);
++ error=avcodec_open2(avctx,s->codec,NULL);
+ if (error!=0) {
+- ms_error("avcodec_open() failed: %i",error);
++ ms_error("avcodec_open2() failed: %i",error);
+ cleanup(s,NULL);
+ av_free(avctx);
+ return;
+diff --git a/src/videofilters/nowebcam.c b/src/videofilters/nowebcam.c
+index f1c10de..b45f89f 100644
+--- a/src/videofilters/nowebcam.c
++++ b/src/videofilters/nowebcam.c
+@@ -68,9 +68,9 @@ static mblk_t *jpeg2yuv(uint8_t *jpgbuf, int bufsize, MSVideoSize *reqsize){
+ return NULL;
+ }
+
+- avcodec_get_context_defaults(&av_context);
+- if (avcodec_open(&av_context,codec)<0){
+- ms_error("jpeg2yuv: avcodec_open failed");
++ avcodec_get_context_defaults3(&av_context,NULL);
++ if (avcodec_open2(&av_context,codec,NULL)<0){
++ ms_error("jpeg2yuv: avcodec_open2 failed");
+ return NULL;
+ }
+ av_init_packet(&pkt);
+diff --git a/src/videofilters/videodec.c b/src/videofilters/videodec.c
+index 9807214..2f1b452 100644
+--- a/src/videofilters/videodec.c
++++ b/src/videofilters/videodec.c
+@@ -53,7 +53,7 @@ static void dec_init(MSFilter *f, enum CodecID cid){
+ DecState *s=(DecState *)ms_new0(DecState,1);
+ ms_ffmpeg_check_init();
+
+- avcodec_get_context_defaults(&s->av_context);
++ avcodec_get_context_defaults3(&s->av_context,NULL);
+ s->av_codec=NULL;
+ s->codec=cid;
+ s->input=NULL;
+@@ -135,7 +135,7 @@ static void dec_preprocess(MSFilter *f){
+ if (s->av_context.codec==NULL){
+ /* we must know picture size before initializing snow decoder*/
+ if (s->codec!=CODEC_ID_SNOW){
+- error=avcodec_open(&s->av_context, s->av_codec);
++ error=avcodec_open2(&s->av_context, s->av_codec, NULL);
+ if (error!=0) ms_error("avcodec_open() failed: %i",error);
+ if (s->codec==CODEC_ID_MPEG4 && s->dci_size>0){
+ s->av_context.extradata=s->dci;
+@@ -225,8 +225,8 @@ static mblk_t * parse_snow_header(DecState *s,mblk_t *inm){
+ int error;
+ s->av_context.width=h>>16;
+ s->av_context.height=h&0xffff;
+- error=avcodec_open(&s->av_context, s->av_codec);
+- if (error!=0) ms_error("avcodec_open() failed for snow: %i",error);
++ error=avcodec_open2(&s->av_context, s->av_codec, NULL);
++ if (error!=0) ms_error("avcodec_open2() failed for snow: %i",error);
+ else {
+ s->snow_initialized=TRUE;
+ ms_message("Snow decoder initialized,size=%ix%i",
+diff --git a/src/videofilters/videoenc.c b/src/videofilters/videoenc.c
+index da35592..4101772 100644
+--- a/src/videofilters/videoenc.c
++++ b/src/videofilters/videoenc.c
+@@ -242,7 +242,7 @@ static void prepare(EncState *s){
+ AVCodecContext *c=&s->av_context;
+ const int max_br_vbv=128000;
+
+- avcodec_get_context_defaults(c);
++ avcodec_get_context_defaults3(c,NULL);
+ if (s->codec==CODEC_ID_MJPEG)
+ {
+ ms_message("Codec bitrate set to %i",c->bit_rate);
+@@ -348,9 +348,9 @@ static void enc_preprocess(MSFilter *f){
+ ms_error("could not find encoder for codec id %i",s->codec);
+ return;
+ }
+- error=avcodec_open(&s->av_context, s->av_codec);
++ error=avcodec_open2(&s->av_context, s->av_codec, NULL);
+ if (error!=0) {
+- ms_error("avcodec_open() failed: %i",error);
++ ms_error("avcodec_open2() failed: %i",error);
+ return;
+ }
+ video_starter_init(&s->starter);
+--
+2.0.3
+
+++ /dev/null
-Fix linphone compile with newer ffmpeg versions, downloaded from
-https://github.com/dankamongmen/mediastreamer2/commit/4f438eb8e132a3119284be771e0daad143597ebd
-
-Fixes
-http://autobuild.buildroot.net/results/b72/b72b1f6287986af3d686cc3c8b9c1b3fd9419d29/
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-
-From 4f438eb8e132a3119284be771e0daad143597ebd Mon Sep 17 00:00:00 2001
-From: nick black <nick.black@sprezzatech.com>
-Date: Mon, 28 Jan 2013 23:54:17 -0500
-Subject: [PATCH] adapt to new libav API
-
----
- src/utils/ffmpeg-priv.h | 1 +
- src/videofilters/h264dec.c | 6 +++---
- src/videofilters/jpegwriter.c | 6 +++---
- src/videofilters/nowebcam.c | 6 +++---
- src/videofilters/videodec.c | 8 ++++----
- src/videofilters/videoenc.c | 6 +++---
- 6 files changed, 17 insertions(+), 16 deletions(-)
-
-diff --git a/src/utils/ffmpeg-priv.h b/src/utils/ffmpeg-priv.h
-index 0eab098..a405c05 100644
---- a/src/utils/ffmpeg-priv.h
-+++ b/src/utils/ffmpeg-priv.h
-@@ -35,6 +35,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- /* new layout */
- # include <libavcodec/avcodec.h>
- # include <libavutil/avutil.h>
-+# include <libavutil/mem.h>
- #else
- /* old layout */
- # include <ffmpeg/avcodec.h>
-diff --git a/src/videofilters/h264dec.c b/src/videofilters/h264dec.c
-index 5229b5e..7059634 100644
---- a/src/videofilters/h264dec.c
-+++ b/src/videofilters/h264dec.c
-@@ -58,10 +58,10 @@ static void dec_open(DecData *d){
- int error;
- codec=avcodec_find_decoder(CODEC_ID_H264);
- if (codec==NULL) ms_fatal("Could not find H264 decoder in ffmpeg.");
-- avcodec_get_context_defaults(&d->av_context);
-- error=avcodec_open(&d->av_context,codec);
-+ avcodec_get_context_defaults3(&d->av_context, codec);
-+ error=avcodec_open2(&d->av_context,codec, NULL);
- if (error!=0){
-- ms_fatal("avcodec_open() failed.");
-+ ms_fatal("avcodec_open2() failed.");
- }
- }
-
-diff --git a/src/videofilters/jpegwriter.c b/src/videofilters/jpegwriter.c
-index cca79c5..daf3cdb 100644
---- a/src/videofilters/jpegwriter.c
-+++ b/src/videofilters/jpegwriter.c
-@@ -90,7 +90,7 @@ static void jpg_process(MSFilter *f){
- mblk_t *jpegm;
- struct SwsContext *sws_ctx;
-
-- AVCodecContext *avctx=avcodec_alloc_context();
-+ AVCodecContext *avctx=avcodec_alloc_context3(NULL);
-
- avctx->width=yuvbuf.w;
- avctx->height=yuvbuf.h;
-@@ -98,9 +98,9 @@ static void jpg_process(MSFilter *f){
- avctx->time_base.den =1;
- avctx->pix_fmt=PIX_FMT_YUVJ420P;
-
-- error=avcodec_open(avctx,s->codec);
-+ error=avcodec_open2(avctx,s->codec,NULL);
- if (error!=0) {
-- ms_error("avcodec_open() failed: %i",error);
-+ ms_error("avcodec_open2() failed: %i",error);
- cleanup(s,NULL);
- av_free(avctx);
- return;
-diff --git a/src/videofilters/nowebcam.c b/src/videofilters/nowebcam.c
-index f1c10de..b45f89f 100644
---- a/src/videofilters/nowebcam.c
-+++ b/src/videofilters/nowebcam.c
-@@ -68,9 +68,9 @@ static mblk_t *jpeg2yuv(uint8_t *jpgbuf, int bufsize, MSVideoSize *reqsize){
- return NULL;
- }
-
-- avcodec_get_context_defaults(&av_context);
-- if (avcodec_open(&av_context,codec)<0){
-- ms_error("jpeg2yuv: avcodec_open failed");
-+ avcodec_get_context_defaults3(&av_context,NULL);
-+ if (avcodec_open2(&av_context,codec,NULL)<0){
-+ ms_error("jpeg2yuv: avcodec_open2 failed");
- return NULL;
- }
- av_init_packet(&pkt);
-diff --git a/src/videofilters/videodec.c b/src/videofilters/videodec.c
-index 9807214..2f1b452 100644
---- a/src/videofilters/videodec.c
-+++ b/src/videofilters/videodec.c
-@@ -53,7 +53,7 @@ static void dec_init(MSFilter *f, enum CodecID cid){
- DecState *s=(DecState *)ms_new0(DecState,1);
- ms_ffmpeg_check_init();
-
-- avcodec_get_context_defaults(&s->av_context);
-+ avcodec_get_context_defaults3(&s->av_context,NULL);
- s->av_codec=NULL;
- s->codec=cid;
- s->input=NULL;
-@@ -135,7 +135,7 @@ static void dec_preprocess(MSFilter *f){
- if (s->av_context.codec==NULL){
- /* we must know picture size before initializing snow decoder*/
- if (s->codec!=CODEC_ID_SNOW){
-- error=avcodec_open(&s->av_context, s->av_codec);
-+ error=avcodec_open2(&s->av_context, s->av_codec, NULL);
- if (error!=0) ms_error("avcodec_open() failed: %i",error);
- if (s->codec==CODEC_ID_MPEG4 && s->dci_size>0){
- s->av_context.extradata=s->dci;
-@@ -225,8 +225,8 @@ static mblk_t * parse_snow_header(DecState *s,mblk_t *inm){
- int error;
- s->av_context.width=h>>16;
- s->av_context.height=h&0xffff;
-- error=avcodec_open(&s->av_context, s->av_codec);
-- if (error!=0) ms_error("avcodec_open() failed for snow: %i",error);
-+ error=avcodec_open2(&s->av_context, s->av_codec, NULL);
-+ if (error!=0) ms_error("avcodec_open2() failed for snow: %i",error);
- else {
- s->snow_initialized=TRUE;
- ms_message("Snow decoder initialized,size=%ix%i",
-diff --git a/src/videofilters/videoenc.c b/src/videofilters/videoenc.c
-index da35592..4101772 100644
---- a/src/videofilters/videoenc.c
-+++ b/src/videofilters/videoenc.c
-@@ -242,7 +242,7 @@ static void prepare(EncState *s){
- AVCodecContext *c=&s->av_context;
- const int max_br_vbv=128000;
-
-- avcodec_get_context_defaults(c);
-+ avcodec_get_context_defaults3(c,NULL);
- if (s->codec==CODEC_ID_MJPEG)
- {
- ms_message("Codec bitrate set to %i",c->bit_rate);
-@@ -348,9 +348,9 @@ static void enc_preprocess(MSFilter *f){
- ms_error("could not find encoder for codec id %i",s->codec);
- return;
- }
-- error=avcodec_open(&s->av_context, s->av_codec);
-+ error=avcodec_open2(&s->av_context, s->av_codec, NULL);
- if (error!=0) {
-- ms_error("avcodec_open() failed: %i",error);
-+ ms_error("avcodec_open2() failed: %i",error);
- return;
- }
- video_starter_init(&s->starter);
---
-2.0.3
-
--- /dev/null
+Add missing #include for PATH_MAX
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+
+--- memstat-0.8.org/memstat.c 2009-06-08 14:38:05.000000000 +0200
++++ memstat-0.8/memstat.c 2014-09-12 03:55:43.096035374 +0200
+@@ -19,6 +19,7 @@
+ #include <unistd.h>
+ #include <getopt.h>
+ #include <errno.h>
++#include <limits.h>
+
+ /* blacklist devices that just map physical memory */
+ char *blacklist[] = { "/dev/mem",
+++ /dev/null
-Add missing #include for PATH_MAX
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
-
---- memstat-0.8.org/memstat.c 2009-06-08 14:38:05.000000000 +0200
-+++ memstat-0.8/memstat.c 2014-09-12 03:55:43.096035374 +0200
-@@ -19,6 +19,7 @@
- #include <unistd.h>
- #include <getopt.h>
- #include <errno.h>
-+#include <limits.h>
-
- /* blacklist devices that just map physical memory */
- char *blacklist[] = { "/dev/mem",
--- /dev/null
+The a/{b,c} construct doesn't work within make, so let's split the
+creation of the installation directories in two commands.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: memtester-4.2.1/Makefile
+===================================================================
+--- memtester-4.2.1.orig/Makefile
++++ memtester-4.2.1/Makefile
+@@ -25,8 +25,9 @@
+ all: memtester
+
+ install: all
+- mkdir -m 755 -p $(INSTALLPATH)/{bin,man/man8}
++ mkdir -m 755 -p $(INSTALLPATH)/bin
+ install -m 755 memtester $(INSTALLPATH)/bin/
++ mkdir -m 755 -p $(INSTALLPATH)/man/man8
+ gzip -c memtester.8 >memtester.8.gz ; install -m 644 memtester.8.gz $(INSTALLPATH)/man/man8/
+
+ auto-ccld.sh: \
+++ /dev/null
-The a/{b,c} construct doesn't work within make, so let's split the
-creation of the installation directories in two commands.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-Index: memtester-4.2.1/Makefile
-===================================================================
---- memtester-4.2.1.orig/Makefile
-+++ memtester-4.2.1/Makefile
-@@ -25,8 +25,9 @@
- all: memtester
-
- install: all
-- mkdir -m 755 -p $(INSTALLPATH)/{bin,man/man8}
-+ mkdir -m 755 -p $(INSTALLPATH)/bin
- install -m 755 memtester $(INSTALLPATH)/bin/
-+ mkdir -m 755 -p $(INSTALLPATH)/man/man8
- gzip -c memtester.8 >memtester.8.gz ; install -m 644 memtester.8.gz $(INSTALLPATH)/man/man8/
-
- auto-ccld.sh: \
--- /dev/null
+Upstream fix to link metacity itself against libm
+
+The upstream fix is modified to also include the changes on the
+configure script directly, so that autoreconfiguring is not
+needed. Autoreconfiguring cannot be done easily on metacity, due to
+missing AM_GCONF_SOURCE_2 and AM_NLS macros.
+
+http://git.gnome.org/browse/metacity/commit/configure.in?id=9cb0b6ff520ea69bdff6c328a21787202aee1bcc
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+From 9cb0b6ff520ea69bdff6c328a21787202aee1bcc Mon Sep 17 00:00:00 2001
+From: Götz Waschk <waschk@mandriva.org>
+Date: Wed, 22 Oct 2008 12:08:48 +0000
+Subject: add libm reference. Closes #557357.
+
+2008-10-22 Götz Waschk <waschk@mandriva.org>
+
+ * configure.in: add libm reference. Closes #557357.
+
+
+svn path=/trunk/; revision=3984
+---
+(limited to 'configure.in')
+
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -413,7 +413,7 @@
+ AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library])
+ fi
+
+-METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
++METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
+ METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+ METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+ METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+Index: b/configure
+===================================================================
+--- a/configure
++++ b/configure
+@@ -29509,7 +29509,7 @@
+
+ fi
+
+-METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
++METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
+ METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+ METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+ METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
--- /dev/null
+[PATCH] fix build with --disable-gconf
+
+src/core/prefs.c still contain a call to gconf_client_set_bool() when
+built with --disable-gconf, breaking the build.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/core/prefs.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: metacity-2.25.1/src/core/prefs.c
+===================================================================
+--- metacity-2.25.1.orig/src/core/prefs.c
++++ metacity-2.25.1/src/core/prefs.c
+@@ -2949,6 +2949,7 @@
+ void
+ meta_prefs_set_compositing_manager (gboolean whether)
+ {
++#if HAVE_GCONF
+ GError *err = NULL;
+
+ gconf_client_set_bool (default_client,
+@@ -2962,6 +2963,7 @@
+ err->message);
+ g_error_free (err);
+ }
++#endif
+ }
+
+ #ifndef HAVE_GCONF
--- /dev/null
+Upstream patch to fix link against libm
+
+The upstream patch is modified to also include the necessary
+Makefile.in, which avoids the need for autoreconfiguring the
+package. Autoreconfiguring the package unfortunately doesn't work, due
+to AM_GCONF_SOURCE_2 and AM_NLS macros being missing.
+
+http://git.gnome.org/browse/metacity/commit/src/tools/Makefile.am?id=13d0d52eb885598885b6ff4b73c795c8f29c2a6b
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+From 13d0d52eb885598885b6ff4b73c795c8f29c2a6b Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Sun, 02 May 2010 14:50:42 +0000
+Subject: fails to link with pedantic linkers
+
+---
+(limited to 'src/tools/Makefile.am')
+
+Index: b/src/tools/Makefile.am
+===================================================================
+--- a/src/tools/Makefile.am
++++ b/src/tools/Makefile.am
+@@ -26,7 +26,7 @@
+
+ metacity_message_LDADD= @METACITY_MESSAGE_LIBS@
+ metacity_window_demo_LDADD= @METACITY_WINDOW_DEMO_LIBS@
+-metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@
++metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@ -lm
+ metacity_grayscale_LDADD = @METACITY_WINDOW_DEMO_LIBS@
+
+ EXTRA_DIST=$(icon_DATA)
+Index: b/src/tools/Makefile.in
+===================================================================
+--- a/src/tools/Makefile.in
++++ b/src/tools/Makefile.in
+@@ -281,7 +281,7 @@
+
+ metacity_message_LDADD = @METACITY_MESSAGE_LIBS@
+ metacity_window_demo_LDADD = @METACITY_WINDOW_DEMO_LIBS@
+-metacity_mag_LDADD = @METACITY_WINDOW_DEMO_LIBS@
++metacity_mag_LDADD = @METACITY_WINDOW_DEMO_LIBS@ -lm
+ metacity_grayscale_LDADD = @METACITY_WINDOW_DEMO_LIBS@
+ EXTRA_DIST = $(icon_DATA)
+ all: all-am
+++ /dev/null
-Upstream fix to link metacity itself against libm
-
-The upstream fix is modified to also include the changes on the
-configure script directly, so that autoreconfiguring is not
-needed. Autoreconfiguring cannot be done easily on metacity, due to
-missing AM_GCONF_SOURCE_2 and AM_NLS macros.
-
-http://git.gnome.org/browse/metacity/commit/configure.in?id=9cb0b6ff520ea69bdff6c328a21787202aee1bcc
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-From 9cb0b6ff520ea69bdff6c328a21787202aee1bcc Mon Sep 17 00:00:00 2001
-From: Götz Waschk <waschk@mandriva.org>
-Date: Wed, 22 Oct 2008 12:08:48 +0000
-Subject: add libm reference. Closes #557357.
-
-2008-10-22 Götz Waschk <waschk@mandriva.org>
-
- * configure.in: add libm reference. Closes #557357.
-
-
-svn path=/trunk/; revision=3984
----
-(limited to 'configure.in')
-
-Index: b/configure.in
-===================================================================
---- a/configure.in
-+++ b/configure.in
-@@ -413,7 +413,7 @@
- AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library])
- fi
-
--METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
-+METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
- METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
- METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
- METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
-Index: b/configure
-===================================================================
---- a/configure
-+++ b/configure
-@@ -29509,7 +29509,7 @@
-
- fi
-
--METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
-+METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
- METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
- METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
- METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+++ /dev/null
-[PATCH] fix build with --disable-gconf
-
-src/core/prefs.c still contain a call to gconf_client_set_bool() when
-built with --disable-gconf, breaking the build.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/core/prefs.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-Index: metacity-2.25.1/src/core/prefs.c
-===================================================================
---- metacity-2.25.1.orig/src/core/prefs.c
-+++ metacity-2.25.1/src/core/prefs.c
-@@ -2949,6 +2949,7 @@
- void
- meta_prefs_set_compositing_manager (gboolean whether)
- {
-+#if HAVE_GCONF
- GError *err = NULL;
-
- gconf_client_set_bool (default_client,
-@@ -2962,6 +2963,7 @@
- err->message);
- g_error_free (err);
- }
-+#endif
- }
-
- #ifndef HAVE_GCONF
+++ /dev/null
-Upstream patch to fix link against libm
-
-The upstream patch is modified to also include the necessary
-Makefile.in, which avoids the need for autoreconfiguring the
-package. Autoreconfiguring the package unfortunately doesn't work, due
-to AM_GCONF_SOURCE_2 and AM_NLS macros being missing.
-
-http://git.gnome.org/browse/metacity/commit/src/tools/Makefile.am?id=13d0d52eb885598885b6ff4b73c795c8f29c2a6b
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-From 13d0d52eb885598885b6ff4b73c795c8f29c2a6b Mon Sep 17 00:00:00 2001
-From: Matthias Clasen <mclasen@redhat.com>
-Date: Sun, 02 May 2010 14:50:42 +0000
-Subject: fails to link with pedantic linkers
-
----
-(limited to 'src/tools/Makefile.am')
-
-Index: b/src/tools/Makefile.am
-===================================================================
---- a/src/tools/Makefile.am
-+++ b/src/tools/Makefile.am
-@@ -26,7 +26,7 @@
-
- metacity_message_LDADD= @METACITY_MESSAGE_LIBS@
- metacity_window_demo_LDADD= @METACITY_WINDOW_DEMO_LIBS@
--metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@
-+metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@ -lm
- metacity_grayscale_LDADD = @METACITY_WINDOW_DEMO_LIBS@
-
- EXTRA_DIST=$(icon_DATA)
-Index: b/src/tools/Makefile.in
-===================================================================
---- a/src/tools/Makefile.in
-+++ b/src/tools/Makefile.in
-@@ -281,7 +281,7 @@
-
- metacity_message_LDADD = @METACITY_MESSAGE_LIBS@
- metacity_window_demo_LDADD = @METACITY_WINDOW_DEMO_LIBS@
--metacity_mag_LDADD = @METACITY_WINDOW_DEMO_LIBS@
-+metacity_mag_LDADD = @METACITY_WINDOW_DEMO_LIBS@ -lm
- metacity_grayscale_LDADD = @METACITY_WINDOW_DEMO_LIBS@
- EXTRA_DIST = $(icon_DATA)
- all: all-am
--- /dev/null
+Use the strrchr() function instead of the deprecated rindex()
+function.
+
+--- mii-diag-2.11.orig/mii-diag.c.orig 2008-06-25 11:08:52.000000000 +1000
++++ mii-diag-2.11.orig/mii-diag.c 2005-03-27 03:56:33.000000000 +1000
+@@ -174,7 +174,7 @@
+ {
+ int c, errflag = 0;
+ char **spp, *ifname;
+- char *progname = rindex(argv[0], '/') ? rindex(argv[0], '/')+1 : argv[0];
++ char *progname = strrchr(argv[0], '/') ? strrchr(argv[0], '/')+1 : argv[0];
+
+ while ((c = getopt_long(argc, argv, shortopts, longopts, 0)) != EOF)
+ switch (c) {
+@@ -310,7 +310,7 @@
+ str = endstr+1;
+ else {
+ fprintf(stderr, "Invalid driver parameter '%s'.\n", str);
+- str = index(str, ',');
++ str = strchr(str, ',');
+ }
+ } else if (endstr[0] == ',') {
+ data32[i] = newval;
+++ /dev/null
-Use the strrchr() function instead of the deprecated rindex()
-function.
-
---- mii-diag-2.11.orig/mii-diag.c.orig 2008-06-25 11:08:52.000000000 +1000
-+++ mii-diag-2.11.orig/mii-diag.c 2005-03-27 03:56:33.000000000 +1000
-@@ -174,7 +174,7 @@
- {
- int c, errflag = 0;
- char **spp, *ifname;
-- char *progname = rindex(argv[0], '/') ? rindex(argv[0], '/')+1 : argv[0];
-+ char *progname = strrchr(argv[0], '/') ? strrchr(argv[0], '/')+1 : argv[0];
-
- while ((c = getopt_long(argc, argv, shortopts, longopts, 0)) != EOF)
- switch (c) {
-@@ -310,7 +310,7 @@
- str = endstr+1;
- else {
- fprintf(stderr, "Invalid driver parameter '%s'.\n", str);
-- str = index(str, ',');
-+ str = strchr(str, ',');
- }
- } else if (endstr[0] == ',') {
- data32[i] = newval;
--- /dev/null
+mmc-utils: fix mmc.h includes
+
+Some toolchains include asm-generic/int-l64.h from their asm/types.h
+file for certain 64-bit architectures. This causes a conflict between
+types like this one:
+
+asm-generic/int-l64.h:28:25: error: conflicting types for '__s64'
+ typedef __signed__ long __s64;
+ ^
+In file included from mmc.h:17:0,
+ from mmc_cmds.c:30:
+asm-generic/int-ll64.h:29:44: note: previous declaration of '__s64' was
+here
+ __extension__ typedef __signed__ long long __s64;
+
+[Ryan: added include of linux/types.h because mmc/ioctl.h does not
+ include it in kernel version before 3.4]
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com>
+---
+ mmc.h | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+diff --git a/mmc.h b/mmc.h
+index 9871d62..2d54ec5 100644
+--- a/mmc.h
++++ b/mmc.h
+@@ -14,9 +14,12 @@
+ * Boston, MA 021110-1307, USA.
+ */
+
+-#include <asm-generic/int-ll64.h>
++#include <linux/types.h>
+ #include <linux/mmc/ioctl.h>
+ #include <stdio.h>
++#ifndef _ASM_GENERIC_INT_L64_H
++#include <asm-generic/int-ll64.h>
++#endif
+
+ #define CHECK(expr, msg, err_stmt) { if (expr) { fprintf(stderr, msg); err_stmt; } }
+
+++ /dev/null
-mmc-utils: fix mmc.h includes
-
-Some toolchains include asm-generic/int-l64.h from their asm/types.h
-file for certain 64-bit architectures. This causes a conflict between
-types like this one:
-
-asm-generic/int-l64.h:28:25: error: conflicting types for '__s64'
- typedef __signed__ long __s64;
- ^
-In file included from mmc.h:17:0,
- from mmc_cmds.c:30:
-asm-generic/int-ll64.h:29:44: note: previous declaration of '__s64' was
-here
- __extension__ typedef __signed__ long long __s64;
-
-[Ryan: added include of linux/types.h because mmc/ioctl.h does not
- include it in kernel version before 3.4]
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com>
----
- mmc.h | 4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-diff --git a/mmc.h b/mmc.h
-index 9871d62..2d54ec5 100644
---- a/mmc.h
-+++ b/mmc.h
-@@ -14,9 +14,12 @@
- * Boston, MA 021110-1307, USA.
- */
-
--#include <asm-generic/int-ll64.h>
-+#include <linux/types.h>
- #include <linux/mmc/ioctl.h>
- #include <stdio.h>
-+#ifndef _ASM_GENERIC_INT_L64_H
-+#include <asm-generic/int-ll64.h>
-+#endif
-
- #define CHECK(expr, msg, err_stmt) { if (expr) { fprintf(stderr, msg); err_stmt; } }
-
--- /dev/null
+From d30cf797af4828e49fd3c0f25841e669dec05ed5 Mon Sep 17 00:00:00 2001
+From: Lionel Orry <lionel.orry@gmail.com>
+Date: Wed, 27 Mar 2013 14:02:00 +0100
+Subject: [PATCH 3/4] use CC variable to compile procer.
+
+This fixes procer tool cross-compilation issues.
+
+Signed-off-by: Lionel Orry <lionel.orry@gmail.com>
+---
+ tools/procer/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/procer/Makefile b/tools/procer/Makefile
+index d0d7de0..bb9aa31 100644
+--- a/tools/procer/Makefile
++++ b/tools/procer/Makefile
+@@ -8,7 +8,7 @@ all: procer
+
+
+ procer: ../../build/libm2.a ${OBJECTS}
+- gcc $(OPTFLAGS) $(OPTLIBS) -o $@ ${OBJECTS} ../../build/libm2.a ${LIBS}
++ $(CC) $(OPTFLAGS) $(OPTLIBS) -o $@ ${OBJECTS} ../../build/libm2.a ${LIBS}
+
+ clean:
+ rm -f *.o procer
+--
+1.8.1.4
+
--- /dev/null
+From 3cbef2195533f357c8a80c2840108662461273b7 Mon Sep 17 00:00:00 2001
+From: Lionel Orry <lionel.orry@gmail.com>
+Date: Wed, 27 Mar 2013 14:48:19 +0100
+Subject: [PATCH 4/4] Do not run tests.
+
+This patch is specific to cross-compiled environments and avoids running
+the tests on the host. It is not meant to be applied upstream.
+
+Signed-off-by: Lionel Orry <lionel.orry@gmail.com>
+---
+ Makefile | 2 +-
+ tools/m2sh/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 7dc4089..ca72630 100644
+--- a/Makefile
++++ b/Makefile
+@@ -16,7 +16,7 @@ TEST_SRC=$(wildcard tests/*_tests.c)
+ TESTS=$(patsubst %.c,%,${TEST_SRC})
+ MAKEOPTS=OPTFLAGS="${NOEXTCFLAGS} ${OPTFLAGS}" OPTLIBS="${OPTLIBS}" LIBS="${LIBS}" DESTDIR="${DESTDIR}" PREFIX="${PREFIX}"
+
+-all: bin/mongrel2 tests m2sh procer
++all: bin/mongrel2 m2sh procer filters config_modules
+
+ dev: CFLAGS=-g -Wall -Isrc -Wall -Wextra $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
+ dev: all
+diff --git a/tools/m2sh/Makefile b/tools/m2sh/Makefile
+index b50d8a0..334e4da 100644
+--- a/tools/m2sh/Makefile
++++ b/tools/m2sh/Makefile
+@@ -9,7 +9,7 @@ TESTS=$(patsubst %.c,%,${TEST_SRC})
+ LIB_SRC=$(filter-out src/m2sh.c,${SOURCES})
+ LIB_OBJ=$(filter-out src/m2sh.o,${OBJECTS})
+
+-all: ../lemon/lemon tests build/m2sh
++all: ../lemon/lemon build/m2sh
+
+ dev: CFLAGS=-g -Wall -Wextra -Isrc -I../../src $(OPTFLAGS)
+ dev: all
+--
+1.8.1.4
+
--- /dev/null
+From 298356c44a7df2b34c4e307c531d2010e2cb4b79 Mon Sep 17 00:00:00 2001
+From: Lionel Orry <lionel.orry@gmail.com>
+Date: Wed, 27 Mar 2013 15:56:56 +0100
+Subject: [PATCH 1/1] Fix Makefiles for cross-compilation
+
+The CFLAGS handling in mongrel2 is really messy and it is hard to make
+it behave correctly with cross-compiling environments. This patch
+restricts the Makefiles syntax to GNU Make, but help cross-compiling.
+
+This is not meant to be applied upstream.
+
+Signed-off-by: Lionel Orry <lionel.orry@gmail.com>
+---
+ Makefile | 2 +-
+ tools/config_modules/Makefile | 2 +-
+ tools/filters/Makefile | 2 +-
+ tools/m2sh/Makefile | 2 +-
+ tools/procer/Makefile | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 6dce4a6..d48e05e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,4 +1,4 @@
+-CFLAGS=-g -O2 -Wall -Wextra -Isrc -Isrc/polarssl/include -pthread -rdynamic -DNDEBUG $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
++override CFLAGS += -g -O2 -Wall -Wextra -Isrc -Isrc/polarssl/include -pthread -rdynamic -DNDEBUG $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
+ LIBS=-lzmq -ldl -lsqlite3 $(OPTLIBS)
+ PREFIX?=/usr/local
+
+diff --git a/tools/config_modules/Makefile b/tools/config_modules/Makefile
+index 398490c..53f2255 100644
+--- a/tools/config_modules/Makefile
++++ b/tools/config_modules/Makefile
+@@ -1,5 +1,5 @@
+ PREFIX?=/usr/local
+-CFLAGS=-I../../src -I../../src/polarssl/include $(OPTFLAGS) -fPIC -shared -nostartfiles -L../../build
++override CFLAGS += -I../../src -I../../src/polarssl/include $(OPTFLAGS) -fPIC -shared -nostartfiles -L../../build
+ LDFLAGS=$(OPTLIBS)
+
+ MONGO_SRC = mongo-c-driver/src/bson.c \
+diff --git a/tools/filters/Makefile b/tools/filters/Makefile
+index f9f4556..6077b79 100644
+--- a/tools/filters/Makefile
++++ b/tools/filters/Makefile
+@@ -1,5 +1,5 @@
+ PREFIX?=/usr/local
+-CFLAGS=-I../../src -I../../src/polarssl/include $(OPTFLAGS) -g -fPIC -shared -nostartfiles -L../../build
++ override CFLAGS += -I../../src -I../../src/polarssl/include $(OPTFLAGS) -g -fPIC -shared -nostartfiles -L../../build
+ LDFLAGS=$(OPTLIBS)
+
+ all: null.so
+diff --git a/tools/m2sh/Makefile b/tools/m2sh/Makefile
+index b50d8a0..ba378c5 100644
+--- a/tools/m2sh/Makefile
++++ b/tools/m2sh/Makefile
+@@ -1,4 +1,4 @@
+-CFLAGS=-DNDEBUG -DNO_LINENOS -pthread -g -I../../src -Isrc -Wall $(OPTFLAGS)
++override CFLAGS += -DNDEBUG -DNO_LINENOS -pthread -g -I../../src -Isrc -Wall $(OPTFLAGS)
+ LIBS=-lzmq -lsqlite3 ../../build/libm2.a $(OPTLIBS)
+
+ PREFIX?=/usr/local
+diff --git a/tools/procer/Makefile b/tools/procer/Makefile
+index d0d7de0..629b2e9 100644
+--- a/tools/procer/Makefile
++++ b/tools/procer/Makefile
+@@ -1,4 +1,4 @@
+-CFLAGS=-DNDEBUG -pthread -g -I../../src -Wall $(OPTFLAGS)
++override CFLAGS += -DNDEBUG -pthread -g -I../../src -Wall $(OPTFLAGS)
+ PREFIX?=/usr/local
+ LIBS?=-lzmq
+ SOURCES=$(wildcard *.c)
+--
+1.8.1.4
+
+++ /dev/null
-From d30cf797af4828e49fd3c0f25841e669dec05ed5 Mon Sep 17 00:00:00 2001
-From: Lionel Orry <lionel.orry@gmail.com>
-Date: Wed, 27 Mar 2013 14:02:00 +0100
-Subject: [PATCH 3/4] use CC variable to compile procer.
-
-This fixes procer tool cross-compilation issues.
-
-Signed-off-by: Lionel Orry <lionel.orry@gmail.com>
----
- tools/procer/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/procer/Makefile b/tools/procer/Makefile
-index d0d7de0..bb9aa31 100644
---- a/tools/procer/Makefile
-+++ b/tools/procer/Makefile
-@@ -8,7 +8,7 @@ all: procer
-
-
- procer: ../../build/libm2.a ${OBJECTS}
-- gcc $(OPTFLAGS) $(OPTLIBS) -o $@ ${OBJECTS} ../../build/libm2.a ${LIBS}
-+ $(CC) $(OPTFLAGS) $(OPTLIBS) -o $@ ${OBJECTS} ../../build/libm2.a ${LIBS}
-
- clean:
- rm -f *.o procer
---
-1.8.1.4
-
+++ /dev/null
-From 3cbef2195533f357c8a80c2840108662461273b7 Mon Sep 17 00:00:00 2001
-From: Lionel Orry <lionel.orry@gmail.com>
-Date: Wed, 27 Mar 2013 14:48:19 +0100
-Subject: [PATCH 4/4] Do not run tests.
-
-This patch is specific to cross-compiled environments and avoids running
-the tests on the host. It is not meant to be applied upstream.
-
-Signed-off-by: Lionel Orry <lionel.orry@gmail.com>
----
- Makefile | 2 +-
- tools/m2sh/Makefile | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 7dc4089..ca72630 100644
---- a/Makefile
-+++ b/Makefile
-@@ -16,7 +16,7 @@ TEST_SRC=$(wildcard tests/*_tests.c)
- TESTS=$(patsubst %.c,%,${TEST_SRC})
- MAKEOPTS=OPTFLAGS="${NOEXTCFLAGS} ${OPTFLAGS}" OPTLIBS="${OPTLIBS}" LIBS="${LIBS}" DESTDIR="${DESTDIR}" PREFIX="${PREFIX}"
-
--all: bin/mongrel2 tests m2sh procer
-+all: bin/mongrel2 m2sh procer filters config_modules
-
- dev: CFLAGS=-g -Wall -Isrc -Wall -Wextra $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
- dev: all
-diff --git a/tools/m2sh/Makefile b/tools/m2sh/Makefile
-index b50d8a0..334e4da 100644
---- a/tools/m2sh/Makefile
-+++ b/tools/m2sh/Makefile
-@@ -9,7 +9,7 @@ TESTS=$(patsubst %.c,%,${TEST_SRC})
- LIB_SRC=$(filter-out src/m2sh.c,${SOURCES})
- LIB_OBJ=$(filter-out src/m2sh.o,${OBJECTS})
-
--all: ../lemon/lemon tests build/m2sh
-+all: ../lemon/lemon build/m2sh
-
- dev: CFLAGS=-g -Wall -Wextra -Isrc -I../../src $(OPTFLAGS)
- dev: all
---
-1.8.1.4
-
+++ /dev/null
-From 298356c44a7df2b34c4e307c531d2010e2cb4b79 Mon Sep 17 00:00:00 2001
-From: Lionel Orry <lionel.orry@gmail.com>
-Date: Wed, 27 Mar 2013 15:56:56 +0100
-Subject: [PATCH 1/1] Fix Makefiles for cross-compilation
-
-The CFLAGS handling in mongrel2 is really messy and it is hard to make
-it behave correctly with cross-compiling environments. This patch
-restricts the Makefiles syntax to GNU Make, but help cross-compiling.
-
-This is not meant to be applied upstream.
-
-Signed-off-by: Lionel Orry <lionel.orry@gmail.com>
----
- Makefile | 2 +-
- tools/config_modules/Makefile | 2 +-
- tools/filters/Makefile | 2 +-
- tools/m2sh/Makefile | 2 +-
- tools/procer/Makefile | 2 +-
- 5 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 6dce4a6..d48e05e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,4 +1,4 @@
--CFLAGS=-g -O2 -Wall -Wextra -Isrc -Isrc/polarssl/include -pthread -rdynamic -DNDEBUG $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
-+override CFLAGS += -g -O2 -Wall -Wextra -Isrc -Isrc/polarssl/include -pthread -rdynamic -DNDEBUG $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
- LIBS=-lzmq -ldl -lsqlite3 $(OPTLIBS)
- PREFIX?=/usr/local
-
-diff --git a/tools/config_modules/Makefile b/tools/config_modules/Makefile
-index 398490c..53f2255 100644
---- a/tools/config_modules/Makefile
-+++ b/tools/config_modules/Makefile
-@@ -1,5 +1,5 @@
- PREFIX?=/usr/local
--CFLAGS=-I../../src -I../../src/polarssl/include $(OPTFLAGS) -fPIC -shared -nostartfiles -L../../build
-+override CFLAGS += -I../../src -I../../src/polarssl/include $(OPTFLAGS) -fPIC -shared -nostartfiles -L../../build
- LDFLAGS=$(OPTLIBS)
-
- MONGO_SRC = mongo-c-driver/src/bson.c \
-diff --git a/tools/filters/Makefile b/tools/filters/Makefile
-index f9f4556..6077b79 100644
---- a/tools/filters/Makefile
-+++ b/tools/filters/Makefile
-@@ -1,5 +1,5 @@
- PREFIX?=/usr/local
--CFLAGS=-I../../src -I../../src/polarssl/include $(OPTFLAGS) -g -fPIC -shared -nostartfiles -L../../build
-+ override CFLAGS += -I../../src -I../../src/polarssl/include $(OPTFLAGS) -g -fPIC -shared -nostartfiles -L../../build
- LDFLAGS=$(OPTLIBS)
-
- all: null.so
-diff --git a/tools/m2sh/Makefile b/tools/m2sh/Makefile
-index b50d8a0..ba378c5 100644
---- a/tools/m2sh/Makefile
-+++ b/tools/m2sh/Makefile
-@@ -1,4 +1,4 @@
--CFLAGS=-DNDEBUG -DNO_LINENOS -pthread -g -I../../src -Isrc -Wall $(OPTFLAGS)
-+override CFLAGS += -DNDEBUG -DNO_LINENOS -pthread -g -I../../src -Isrc -Wall $(OPTFLAGS)
- LIBS=-lzmq -lsqlite3 ../../build/libm2.a $(OPTLIBS)
-
- PREFIX?=/usr/local
-diff --git a/tools/procer/Makefile b/tools/procer/Makefile
-index d0d7de0..629b2e9 100644
---- a/tools/procer/Makefile
-+++ b/tools/procer/Makefile
-@@ -1,4 +1,4 @@
--CFLAGS=-DNDEBUG -pthread -g -I../../src -Wall $(OPTFLAGS)
-+override CFLAGS += -DNDEBUG -pthread -g -I../../src -Wall $(OPTFLAGS)
- PREFIX?=/usr/local
- LIBS?=-lzmq
- SOURCES=$(wildcard *.c)
---
-1.8.1.4
-
--- /dev/null
+Do not force building a statically-linked binary
+
+Statically-linked binary do not work well with glibc, because it
+still dlopen()s the NSS libraries.
+
+Reported-by: Peter Kümmel <syntheticpp@gmx.net>
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN monit-5.7.orig/Makefile.am monit-5.7/Makefile.am
+--- monit-5.7.orig/Makefile.am 2014-02-20 09:00:42.000000000 +0100
++++ monit-5.7/Makefile.am 2014-09-05 12:49:43.711104001 +0200
+@@ -85,7 +85,7 @@
+ src/process/sysdep_@ARCH@.c
+
+ monit_LDADD = libmonit/libmonit.la
+-monit_LDFLAGS = -static $(EXTLDFLAGS)
++monit_LDFLAGS = $(EXTLDFLAGS)
+
+ man_MANS = monit.1
+
+++ /dev/null
-Do not force building a statically-linked binary
-
-Statically-linked binary do not work well with glibc, because it
-still dlopen()s the NSS libraries.
-
-Reported-by: Peter Kümmel <syntheticpp@gmx.net>
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN monit-5.7.orig/Makefile.am monit-5.7/Makefile.am
---- monit-5.7.orig/Makefile.am 2014-02-20 09:00:42.000000000 +0100
-+++ monit-5.7/Makefile.am 2014-09-05 12:49:43.711104001 +0200
-@@ -85,7 +85,7 @@
- src/process/sysdep_@ARCH@.c
-
- monit_LDADD = libmonit/libmonit.la
--monit_LDFLAGS = -static $(EXTLDFLAGS)
-+monit_LDFLAGS = $(EXTLDFLAGS)
-
- man_MANS = monit.1
-
--- /dev/null
+Disable backtrace on not supported uclibc.
+
+Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
+
+diff -purN mono-native-3.8.0.orig/libgc/include/gc.h mono-native-3.8.0/libgc/include/gc.h
+--- mono-native-3.8.0.orig/libgc/include/gc.h 2014-10-07 15:00:21.259466731 +0200
++++ mono-native-3.8.0/libgc/include/gc.h 2014-10-07 15:05:25.560975681 +0200
+@@ -500,7 +500,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_of
+ #ifdef __linux__
+ # include <features.h>
+ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
+- && !defined(__ia64__)
++ && !defined(__ia64__) && !defined(__UCLIBC__)
+ # ifndef GC_HAVE_BUILTIN_BACKTRACE
+ # define GC_HAVE_BUILTIN_BACKTRACE
+ # endif
--- /dev/null
+Adjust libc.so path depending on C library being used
+
+By default, on Linux systems, Mono assumes that the C library is
+libc.so.6. While this is true for glibc, it is not true for uClibc and
+Musl based systems. This patch adds support for such systems.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -2973,6 +2973,12 @@
+ SQLITE="libsqlite.so"
+ SQLITE3="libsqlite3.so"
+ ;;
++ *-*-*uclibc*)
++ LIBC="libc.so.0"
++ ;;
++ *-*-*musl*)
++ LIBC="libc.so"
++ ;;
+ *-*-*linux*)
+ AC_PATH_X
+ dlsearch_path=`(libtool --config ; echo eval echo \\$sys_lib_dlsearch_path_spec) | sh`
+++ /dev/null
-Disable backtrace on not supported uclibc.
-
-Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
-
-diff -purN mono-native-3.8.0.orig/libgc/include/gc.h mono-native-3.8.0/libgc/include/gc.h
---- mono-native-3.8.0.orig/libgc/include/gc.h 2014-10-07 15:00:21.259466731 +0200
-+++ mono-native-3.8.0/libgc/include/gc.h 2014-10-07 15:05:25.560975681 +0200
-@@ -500,7 +500,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_of
- #ifdef __linux__
- # include <features.h>
- # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
-- && !defined(__ia64__)
-+ && !defined(__ia64__) && !defined(__UCLIBC__)
- # ifndef GC_HAVE_BUILTIN_BACKTRACE
- # define GC_HAVE_BUILTIN_BACKTRACE
- # endif
+++ /dev/null
-Adjust libc.so path depending on C library being used
-
-By default, on Linux systems, Mono assumes that the C library is
-libc.so.6. While this is true for glibc, it is not true for uClibc and
-Musl based systems. This patch adds support for such systems.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -2973,6 +2973,12 @@
- SQLITE="libsqlite.so"
- SQLITE3="libsqlite3.so"
- ;;
-+ *-*-*uclibc*)
-+ LIBC="libc.so.0"
-+ ;;
-+ *-*-*musl*)
-+ LIBC="libc.so"
-+ ;;
- *-*-*linux*)
- AC_PATH_X
- dlsearch_path=`(libtool --config ; echo eval echo \\$sys_lib_dlsearch_path_spec) | sh`
--- /dev/null
+Disable stripping on installation
+
+Using the -s option of install does not work, as it uses the host
+strip instead of the cross strip. So, get rid of it, and let Buildroot
+handle the stripping.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: mplayer-32710/configure
+===================================================================
+--- mplayer-32710.orig/configure
++++ mplayer-32710/configure
+@@ -2519,7 +2519,7 @@
+
+
+ # Checking for CFLAGS
+-_install_strip="-s"
++_install_strip=
+ if test "$_profile" != "" || test "$_debug" != "" ; then
+ CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
+ WARNFLAGS="-W -Wall"
--- /dev/null
+[PATCH] mplayer: fix --cc= parsing if the value contains equal signs (=)
+
+E.G. if -cc="$CROSS-gcc --sysroot=<SYSROOT>" is passed.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: mplayer-32710/configure
+===================================================================
+--- mplayer-32710.orig/configure
++++ mplayer-32710/configure
+@@ -870,7 +870,7 @@
+ _target=$(echo $ac_option | cut -d '=' -f 2)
+ ;;
+ --cc=*)
+- _cc=$(echo $ac_option | cut -d '=' -f 2)
++ _cc=$(echo $ac_option | cut -d '=' -f 2-)
+ ;;
+ --host-cc=*)
+ _host_cc=$(echo $ac_option | cut -d '=' -f 2)
--- /dev/null
+From d3195ea13f4a9aae546ff996e53681349a1a3cdb Mon Sep 17 00:00:00 2001
+From: sherpya <sherpya@netfarm.it>
+Date: Fri, 14 Jun 2013 05:25:38 +0200
+Subject: [PATCH 25/27] mpdemux: live555 async interface
+
+From: https://raw.github.com/sherpya/mplayer-be/master/patches/mp/0025-mpdemux-live555-async-interface.patch
+
+Adjust live555 interface code for modern versions of live555.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ libmpdemux/demux_rtp.cpp | 51 ++++++++++++++++++++++++++++++++----------------
+ 2 files changed, 35 insertions(+), 22 deletions(-)
+
+diff --git a/libmpdemux/demux_rtp.cpp b/libmpdemux/demux_rtp.cpp
+index ad7a7f1..05d06e0 100644
+--- a/libmpdemux/demux_rtp.cpp
++++ b/libmpdemux/demux_rtp.cpp
+@@ -19,8 +19,6 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+-#define RTSPCLIENT_SYNCHRONOUS_INTERFACE 1
+-
+ extern "C" {
+ // on MinGW, we must include windows.h before the things it conflicts
+ #ifdef __MINGW32__ // with. they are each protected from
+@@ -94,15 +92,6 @@ struct RTPState {
+
+ extern "C" char* network_username;
+ extern "C" char* network_password;
+-static char* openURL_rtsp(RTSPClient* client, char const* url) {
+- // If we were given a user name (and optional password), then use them:
+- if (network_username != NULL) {
+- char const* password = network_password == NULL ? "" : network_password;
+- return client->describeWithPassword(url, network_username, password);
+- } else {
+- return client->describeURL(url);
+- }
+-}
+
+ static char* openURL_sip(SIPClient* client, char const* url) {
+ // If we were given a user name (and optional password), then use them:
+@@ -118,6 +107,19 @@ static char* openURL_sip(SIPClient* client, char const* url) {
+ extern AVCodecContext *avcctx;
+ #endif
+
++static char fWatchVariableForSyncInterface;
++static char* fResultString;
++static int fResultCode;
++
++static void responseHandlerForSyncInterface(RTSPClient* rtspClient, int responseCode, char* responseString) {
++ // Set result values:
++ fResultCode = responseCode;
++ fResultString = responseString;
++
++ // Signal a break from the event loop (thereby returning from the blocking command):
++ fWatchVariableForSyncInterface = ~0;
++}
++
+ extern "C" int audio_id, video_id, dvdsub_id;
+ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
+ Boolean success = False;
+@@ -146,13 +148,19 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
+ rtsp_transport_http = demuxer->stream->streaming_ctrl->url->port;
+ rtsp_transport_tcp = 1;
+ }
+- rtspClient = RTSPClient::createNew(*env, verbose, "MPlayer", rtsp_transport_http);
++ rtspClient = RTSPClient::createNew(*env, url, verbose, "MPlayer", rtsp_transport_http);
+ if (rtspClient == NULL) {
+ fprintf(stderr, "Failed to create RTSP client: %s\n",
+ env->getResultMsg());
+ break;
+ }
+- sdpDescription = openURL_rtsp(rtspClient, url);
++ fWatchVariableForSyncInterface = 0;
++ rtspClient->sendDescribeCommand(responseHandlerForSyncInterface);
++ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
++ if (fResultCode == 0)
++ sdpDescription = fResultString;
++ else
++ delete[] fResultString;
+ } else { // SIP
+ unsigned char desiredAudioType = 0; // PCMU (use 3 for GSM)
+ sipClient = SIPClient::createNew(*env, desiredAudioType, NULL,
+@@ -236,8 +244,12 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
+
+ if (rtspClient != NULL) {
+ // Issue a RTSP "SETUP" command on the chosen subsession:
+- if (!rtspClient->setupMediaSubsession(*subsession, False,
+- rtsp_transport_tcp)) break;
++ fWatchVariableForSyncInterface = 0;
++ rtspClient->sendSetupCommand(*subsession, responseHandlerForSyncInterface, False, rtsp_transport_tcp);
++ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
++ delete[] fResultString;
++ if (fResultCode != 0) break;
++
+ if (!strcmp(subsession->mediumName(), "audio"))
+ audiofound = 1;
+ if (!strcmp(subsession->mediumName(), "video"))
+@@ -248,7 +260,11 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
+
+ if (rtspClient != NULL) {
+ // Issue a RTSP aggregate "PLAY" command on the whole session:
+- if (!rtspClient->playMediaSession(*mediaSession)) break;
++ fWatchVariableForSyncInterface = 0;
++ rtspClient->sendPlayCommand(*mediaSession, responseHandlerForSyncInterface);
++ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
++ delete[] fResultString;
++ if (fResultCode != 0) break;
+ } else if (sipClient != NULL) {
+ sipClient->sendACK(); // to start the stream flowing
+ }
+@@ -637,7 +653,8 @@ static void teardownRTSPorSIPSession(RTPState* rtpState) {
+ MediaSession* mediaSession = rtpState->mediaSession;
+ if (mediaSession == NULL) return;
+ if (rtpState->rtspClient != NULL) {
+- rtpState->rtspClient->teardownMediaSession(*mediaSession);
++ fWatchVariableForSyncInterface = 0;
++ rtpState->rtspClient->sendTeardownCommand(*mediaSession, NULL);
+ } else if (rtpState->sipClient != NULL) {
+ rtpState->sipClient->sendBYE();
+ }
+--
+1.8.5.2
+
--- /dev/null
+--- mplayer-1.1/configure 2013-12-03 00:32:10.815571460 -0800
++++ mplayer-1.1-arc/configure 2013-11-29 00:34:29.238297709 -0800
+@@ -2492,6 +2492,10 @@
+ generic)
+ arch='generic'
+ ;;
++ arc)
++ arch='arc'
++ iproc='arc'
++ ;;
+
+ *)
+ echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
+++ /dev/null
-Disable stripping on installation
-
-Using the -s option of install does not work, as it uses the host
-strip instead of the cross strip. So, get rid of it, and let Buildroot
-handle the stripping.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: mplayer-32710/configure
-===================================================================
---- mplayer-32710.orig/configure
-+++ mplayer-32710/configure
-@@ -2519,7 +2519,7 @@
-
-
- # Checking for CFLAGS
--_install_strip="-s"
-+_install_strip=
- if test "$_profile" != "" || test "$_debug" != "" ; then
- CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
- WARNFLAGS="-W -Wall"
+++ /dev/null
-[PATCH] mplayer: fix --cc= parsing if the value contains equal signs (=)
-
-E.G. if -cc="$CROSS-gcc --sysroot=<SYSROOT>" is passed.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: mplayer-32710/configure
-===================================================================
---- mplayer-32710.orig/configure
-+++ mplayer-32710/configure
-@@ -870,7 +870,7 @@
- _target=$(echo $ac_option | cut -d '=' -f 2)
- ;;
- --cc=*)
-- _cc=$(echo $ac_option | cut -d '=' -f 2)
-+ _cc=$(echo $ac_option | cut -d '=' -f 2-)
- ;;
- --host-cc=*)
- _host_cc=$(echo $ac_option | cut -d '=' -f 2)
+++ /dev/null
-From d3195ea13f4a9aae546ff996e53681349a1a3cdb Mon Sep 17 00:00:00 2001
-From: sherpya <sherpya@netfarm.it>
-Date: Fri, 14 Jun 2013 05:25:38 +0200
-Subject: [PATCH 25/27] mpdemux: live555 async interface
-
-From: https://raw.github.com/sherpya/mplayer-be/master/patches/mp/0025-mpdemux-live555-async-interface.patch
-
-Adjust live555 interface code for modern versions of live555.
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- libmpdemux/demux_rtp.cpp | 51 ++++++++++++++++++++++++++++++++----------------
- 2 files changed, 35 insertions(+), 22 deletions(-)
-
-diff --git a/libmpdemux/demux_rtp.cpp b/libmpdemux/demux_rtp.cpp
-index ad7a7f1..05d06e0 100644
---- a/libmpdemux/demux_rtp.cpp
-+++ b/libmpdemux/demux_rtp.cpp
-@@ -19,8 +19,6 @@
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
--#define RTSPCLIENT_SYNCHRONOUS_INTERFACE 1
--
- extern "C" {
- // on MinGW, we must include windows.h before the things it conflicts
- #ifdef __MINGW32__ // with. they are each protected from
-@@ -94,15 +92,6 @@ struct RTPState {
-
- extern "C" char* network_username;
- extern "C" char* network_password;
--static char* openURL_rtsp(RTSPClient* client, char const* url) {
-- // If we were given a user name (and optional password), then use them:
-- if (network_username != NULL) {
-- char const* password = network_password == NULL ? "" : network_password;
-- return client->describeWithPassword(url, network_username, password);
-- } else {
-- return client->describeURL(url);
-- }
--}
-
- static char* openURL_sip(SIPClient* client, char const* url) {
- // If we were given a user name (and optional password), then use them:
-@@ -118,6 +107,19 @@ static char* openURL_sip(SIPClient* client, char const* url) {
- extern AVCodecContext *avcctx;
- #endif
-
-+static char fWatchVariableForSyncInterface;
-+static char* fResultString;
-+static int fResultCode;
-+
-+static void responseHandlerForSyncInterface(RTSPClient* rtspClient, int responseCode, char* responseString) {
-+ // Set result values:
-+ fResultCode = responseCode;
-+ fResultString = responseString;
-+
-+ // Signal a break from the event loop (thereby returning from the blocking command):
-+ fWatchVariableForSyncInterface = ~0;
-+}
-+
- extern "C" int audio_id, video_id, dvdsub_id;
- extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
- Boolean success = False;
-@@ -146,13 +148,19 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
- rtsp_transport_http = demuxer->stream->streaming_ctrl->url->port;
- rtsp_transport_tcp = 1;
- }
-- rtspClient = RTSPClient::createNew(*env, verbose, "MPlayer", rtsp_transport_http);
-+ rtspClient = RTSPClient::createNew(*env, url, verbose, "MPlayer", rtsp_transport_http);
- if (rtspClient == NULL) {
- fprintf(stderr, "Failed to create RTSP client: %s\n",
- env->getResultMsg());
- break;
- }
-- sdpDescription = openURL_rtsp(rtspClient, url);
-+ fWatchVariableForSyncInterface = 0;
-+ rtspClient->sendDescribeCommand(responseHandlerForSyncInterface);
-+ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
-+ if (fResultCode == 0)
-+ sdpDescription = fResultString;
-+ else
-+ delete[] fResultString;
- } else { // SIP
- unsigned char desiredAudioType = 0; // PCMU (use 3 for GSM)
- sipClient = SIPClient::createNew(*env, desiredAudioType, NULL,
-@@ -236,8 +244,12 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
-
- if (rtspClient != NULL) {
- // Issue a RTSP "SETUP" command on the chosen subsession:
-- if (!rtspClient->setupMediaSubsession(*subsession, False,
-- rtsp_transport_tcp)) break;
-+ fWatchVariableForSyncInterface = 0;
-+ rtspClient->sendSetupCommand(*subsession, responseHandlerForSyncInterface, False, rtsp_transport_tcp);
-+ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
-+ delete[] fResultString;
-+ if (fResultCode != 0) break;
-+
- if (!strcmp(subsession->mediumName(), "audio"))
- audiofound = 1;
- if (!strcmp(subsession->mediumName(), "video"))
-@@ -248,7 +260,11 @@ extern "C" demuxer_t* demux_open_rtp(demuxer_t* demuxer) {
-
- if (rtspClient != NULL) {
- // Issue a RTSP aggregate "PLAY" command on the whole session:
-- if (!rtspClient->playMediaSession(*mediaSession)) break;
-+ fWatchVariableForSyncInterface = 0;
-+ rtspClient->sendPlayCommand(*mediaSession, responseHandlerForSyncInterface);
-+ env->taskScheduler().doEventLoop(&fWatchVariableForSyncInterface);
-+ delete[] fResultString;
-+ if (fResultCode != 0) break;
- } else if (sipClient != NULL) {
- sipClient->sendACK(); // to start the stream flowing
- }
-@@ -637,7 +653,8 @@ static void teardownRTSPorSIPSession(RTPState* rtpState) {
- MediaSession* mediaSession = rtpState->mediaSession;
- if (mediaSession == NULL) return;
- if (rtpState->rtspClient != NULL) {
-- rtpState->rtspClient->teardownMediaSession(*mediaSession);
-+ fWatchVariableForSyncInterface = 0;
-+ rtpState->rtspClient->sendTeardownCommand(*mediaSession, NULL);
- } else if (rtpState->sipClient != NULL) {
- rtpState->sipClient->sendBYE();
- }
---
-1.8.5.2
-
+++ /dev/null
---- mplayer-1.1/configure 2013-12-03 00:32:10.815571460 -0800
-+++ mplayer-1.1-arc/configure 2013-11-29 00:34:29.238297709 -0800
-@@ -2492,6 +2492,10 @@
- generic)
- arch='generic'
- ;;
-+ arc)
-+ arch='arc'
-+ iproc='arc'
-+ ;;
-
- *)
- echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
--- /dev/null
+From aebb2831c13ffc6f1df79e638b99e78c52aed4ce Mon Sep 17 00:00:00 2001
+Message-Id: <aebb2831c13ffc6f1df79e638b99e78c52aed4ce.1397593673.git.baruch@tkos.co.il>
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Sun, 13 Apr 2014 15:26:46 +0300
+Subject: [PATCH] Fix rpmatch() call under uClibc
+
+Combine the following two patches. The first is upstream (commit 50c9e11f7e),
+the second has been posted upstream at
+http://patchwork.ozlabs.org/patch/339365/.
+
+include/common.h: fix build against current uClibc
+
+Commit dbe0fd17f2 (mtd-utils: new prompt() helper for talking to the user)
+introduced a rpmatch() call. However, uClibc versions older than (not yet
+released) 0.9.34 don't have rpmatch() implementation. Add one.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+Acked-by: Mike Frysinger <vapier@gentoo.org>
+
+include/common.h: fix build against recent 0.9.33 uClibc
+
+An implementation of rpmatch() was backported to the 0.9.33 branch of uClibc.
+So the uClibc version check introduced in commit 50c9e11f7e (include/common.h:
+fix build against current uClibc) is not enough. Rename the local rpmatch()
+implementation to avoid collision.
+
+Cc: Mike Frysinger <vapier@gentoo.org>
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+ include/common.h | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/include/common.h b/include/common.h
+index 4ffccea17213..838dc757bdf1 100644
+--- a/include/common.h
++++ b/include/common.h
+@@ -102,6 +102,20 @@ extern "C" {
+ fprintf(stderr, "%s: warning!: " fmt "\n", PROGRAM_NAME, ##__VA_ARGS__); \
+ } while(0)
+
++#if defined(__UCLIBC__)
++/* uClibc versions before 0.9.34 don't have rpmatch() */
++#if __UCLIBC_MAJOR__ == 0 && \
++ (__UCLIBC_MINOR__ < 9 || \
++ (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 34))
++#define rpmatch __rpmatch
++static inline int __rpmatch(const char *resp)
++{
++ return (resp[0] == 'y' || resp[0] == 'Y') ? 1 :
++ (resp[0] == 'n' || resp[0] == 'N') ? 0 : -1;
++}
++#endif
++#endif
++
+ /**
+ * prompt the user for confirmation
+ */
+--
+1.9.1
+
+++ /dev/null
-From aebb2831c13ffc6f1df79e638b99e78c52aed4ce Mon Sep 17 00:00:00 2001
-Message-Id: <aebb2831c13ffc6f1df79e638b99e78c52aed4ce.1397593673.git.baruch@tkos.co.il>
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Sun, 13 Apr 2014 15:26:46 +0300
-Subject: [PATCH] Fix rpmatch() call under uClibc
-
-Combine the following two patches. The first is upstream (commit 50c9e11f7e),
-the second has been posted upstream at
-http://patchwork.ozlabs.org/patch/339365/.
-
-include/common.h: fix build against current uClibc
-
-Commit dbe0fd17f2 (mtd-utils: new prompt() helper for talking to the user)
-introduced a rpmatch() call. However, uClibc versions older than (not yet
-released) 0.9.34 don't have rpmatch() implementation. Add one.
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-Acked-by: Mike Frysinger <vapier@gentoo.org>
-
-include/common.h: fix build against recent 0.9.33 uClibc
-
-An implementation of rpmatch() was backported to the 0.9.33 branch of uClibc.
-So the uClibc version check introduced in commit 50c9e11f7e (include/common.h:
-fix build against current uClibc) is not enough. Rename the local rpmatch()
-implementation to avoid collision.
-
-Cc: Mike Frysinger <vapier@gentoo.org>
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- include/common.h | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/include/common.h b/include/common.h
-index 4ffccea17213..838dc757bdf1 100644
---- a/include/common.h
-+++ b/include/common.h
-@@ -102,6 +102,20 @@ extern "C" {
- fprintf(stderr, "%s: warning!: " fmt "\n", PROGRAM_NAME, ##__VA_ARGS__); \
- } while(0)
-
-+#if defined(__UCLIBC__)
-+/* uClibc versions before 0.9.34 don't have rpmatch() */
-+#if __UCLIBC_MAJOR__ == 0 && \
-+ (__UCLIBC_MINOR__ < 9 || \
-+ (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 34))
-+#define rpmatch __rpmatch
-+static inline int __rpmatch(const char *resp)
-+{
-+ return (resp[0] == 'y' || resp[0] == 'Y') ? 1 :
-+ (resp[0] == 'n' || resp[0] == 'N') ? 0 : -1;
-+}
-+#endif
-+#endif
-+
- /**
- * prompt the user for confirmation
- */
---
-1.9.1
-
--- /dev/null
+Fixup installation of shared mpcdec library.
+Based on gentoo patch.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+
+diff -Nura musepack_src_r475.orig/libmpcdec/CMakeLists.txt musepack_src_r475/libmpcdec/CMakeLists.txt
+--- musepack_src_r475.orig/libmpcdec/CMakeLists.txt 2010-08-21 12:55:01.000000000 -0300
++++ musepack_src_r475/libmpcdec/CMakeLists.txt 2011-08-17 15:53:06.126873408 -0300
+@@ -1,7 +1,12 @@
+ include_directories(${libmpc_SOURCE_DIR}/include)
+ if(SHARED)
+- add_library(mpcdec SHARED huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32)
++ add_library(mpcdec_shared SHARED huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32)
++ set_target_properties(mpcdec_shared PROPERTIES OUTPUT_NAME mpcdec CLEAN_DIRECT_OUTPUT 1 VERSION 7.0.1 SOVERSION 7)
++ target_link_libraries(mpcdec_shared m)
++ install(TARGETS mpcdec_shared LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
+ else(SHARED)
+ add_library(mpcdec_static STATIC huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32)
++ set_target_properties(mpcdec_static PROPERTIES OUTPUT_NAME mpcdec CLEAN_DIRECT_OUTPUT 1)
++ target_link_libraries(mpcdec_static m)
++ install(TARGETS mpcdec_static LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
+ endif(SHARED)
+-
--- /dev/null
+From d2f01ba6fa2a065156fad686d1849309c661e527 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 31 Aug 2014 12:07:31 +0200
+Subject: [PATCH 2/2] cmake: use the standard CMake flag to drive the shared
+ object build
+
+If BUILD_SHARED_LIBS is set and SHARED undefined, then drive SHARED with
+the BUILD_SHARED_LIBS value.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ CMakeLists.txt | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b13f78c..db75510 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,11 +7,16 @@ project(libmpc C)
+ set(CMAKE_VERBOSE_MAKEFILE false)
+ TEST_BIG_ENDIAN(MPC_ENDIANNESS)
+
+-if(WIN32)
+- option(SHARED "Use shared libmpcdec" OFF)
+-else(WIN32)
+- option(SHARED "Use shared libmpcdec" ON)
+-endif(WIN32)
++# Use the standard CMake flag to drive the shared object build.
++if(DEFINED BUILD_SHARED_LIBS AND NOT DEFINED SHARED)
++ set(SHARED ${BUILD_SHARED_LIBS})
++else()
++ if(WIN32)
++ option(SHARED "Use shared libmpcdec" OFF)
++ else(WIN32)
++ option(SHARED "Use shared libmpcdec" ON)
++ endif(WIN32)
++endif()
+
+ add_definitions(-DFAST_MATH -DCVD_FASTLOG)
+
+--
+2.1.0
+
+++ /dev/null
-Fixup installation of shared mpcdec library.
-Based on gentoo patch.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
-
-diff -Nura musepack_src_r475.orig/libmpcdec/CMakeLists.txt musepack_src_r475/libmpcdec/CMakeLists.txt
---- musepack_src_r475.orig/libmpcdec/CMakeLists.txt 2010-08-21 12:55:01.000000000 -0300
-+++ musepack_src_r475/libmpcdec/CMakeLists.txt 2011-08-17 15:53:06.126873408 -0300
-@@ -1,7 +1,12 @@
- include_directories(${libmpc_SOURCE_DIR}/include)
- if(SHARED)
-- add_library(mpcdec SHARED huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32)
-+ add_library(mpcdec_shared SHARED huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32)
-+ set_target_properties(mpcdec_shared PROPERTIES OUTPUT_NAME mpcdec CLEAN_DIRECT_OUTPUT 1 VERSION 7.0.1 SOVERSION 7)
-+ target_link_libraries(mpcdec_shared m)
-+ install(TARGETS mpcdec_shared LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
- else(SHARED)
- add_library(mpcdec_static STATIC huffman mpc_decoder mpc_reader streaminfo mpc_bits_reader mpc_demux requant synth_filter ${libmpc_SOURCE_DIR}/common/crc32)
-+ set_target_properties(mpcdec_static PROPERTIES OUTPUT_NAME mpcdec CLEAN_DIRECT_OUTPUT 1)
-+ target_link_libraries(mpcdec_static m)
-+ install(TARGETS mpcdec_static LIBRARY DESTINATION "lib${LIB_SUFFIX}" ARCHIVE DESTINATION "lib${LIB_SUFFIX}")
- endif(SHARED)
--
+++ /dev/null
-From d2f01ba6fa2a065156fad686d1849309c661e527 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sun, 31 Aug 2014 12:07:31 +0200
-Subject: [PATCH 2/2] cmake: use the standard CMake flag to drive the shared
- object build
-
-If BUILD_SHARED_LIBS is set and SHARED undefined, then drive SHARED with
-the BUILD_SHARED_LIBS value.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- CMakeLists.txt | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b13f78c..db75510 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -7,11 +7,16 @@ project(libmpc C)
- set(CMAKE_VERBOSE_MAKEFILE false)
- TEST_BIG_ENDIAN(MPC_ENDIANNESS)
-
--if(WIN32)
-- option(SHARED "Use shared libmpcdec" OFF)
--else(WIN32)
-- option(SHARED "Use shared libmpcdec" ON)
--endif(WIN32)
-+# Use the standard CMake flag to drive the shared object build.
-+if(DEFINED BUILD_SHARED_LIBS AND NOT DEFINED SHARED)
-+ set(SHARED ${BUILD_SHARED_LIBS})
-+else()
-+ if(WIN32)
-+ option(SHARED "Use shared libmpcdec" OFF)
-+ else(WIN32)
-+ option(SHARED "Use shared libmpcdec" ON)
-+ endif(WIN32)
-+endif()
-
- add_definitions(-DFAST_MATH -DCVD_FASTLOG)
-
---
-2.1.0
-
--- /dev/null
+Disable the documentation build
+
+The documentation tool is compiled for the target, but executed on the
+host. We don't bother fixing this, as we don't care of the
+documentation in Buildroot.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: mutt-1.5.17+20080114/Makefile.am
+===================================================================
+--- mutt-1.5.17+20080114.orig/Makefile.am 2010-05-15 18:15:08.000000000 +0200
++++ mutt-1.5.17+20080114/Makefile.am 2010-05-15 18:15:17.000000000 +0200
+@@ -9,7 +9,7 @@
+ IMAP_INCLUDES = -I$(top_srcdir)/imap
+ endif
+
+-SUBDIRS = m4 po intl doc contrib $(IMAP_SUBDIR)
++SUBDIRS = m4 po intl contrib $(IMAP_SUBDIR)
+
+ bin_SCRIPTS = muttbug flea @SMIMEAUX_TARGET@
+
+++ /dev/null
-Disable the documentation build
-
-The documentation tool is compiled for the target, but executed on the
-host. We don't bother fixing this, as we don't care of the
-documentation in Buildroot.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: mutt-1.5.17+20080114/Makefile.am
-===================================================================
---- mutt-1.5.17+20080114.orig/Makefile.am 2010-05-15 18:15:08.000000000 +0200
-+++ mutt-1.5.17+20080114/Makefile.am 2010-05-15 18:15:17.000000000 +0200
-@@ -9,7 +9,7 @@
- IMAP_INCLUDES = -I$(top_srcdir)/imap
- endif
-
--SUBDIRS = m4 po intl doc contrib $(IMAP_SUBDIR)
-+SUBDIRS = m4 po intl contrib $(IMAP_SUBDIR)
-
- bin_SCRIPTS = muttbug flea @SMIMEAUX_TARGET@
-
--- /dev/null
+From: Baruch Siach <baruch@tkos.co.il>
+Subject: [PATCH] mxml: workaround for cross build
+
+The added patch is a workaround for cross build as follows:
+
+ * disable run of a test binary at build time
+ * disable generation of documentation using the mxmldoc binary
+ * remove now non-existent entries from the install target
+ * disable strip when running install
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+diff -Nuar mxml-2.7-orig/Makefile.in mxml-2.7/Makefile.in
+--- mxml-2.7-orig/Makefile.in 2011-04-13 18:43:32.000000000 +0300
++++ mxml-2.7/Makefile.in 2012-05-16 07:21:42.677220980 +0300
+@@ -57,7 +57,7 @@
+ # Install commands...
+ #
+
+-INSTALL_BIN = $(LIBTOOL) $(INSTALL) -m 755 -s
++INSTALL_BIN = $(LIBTOOL) $(INSTALL) -m 755
+ INSTALL_DATA = $(INSTALL) -m 644
+ INSTALL_DIR = $(INSTALL) -d
+ INSTALL_LIB = $(LIBTOOL) $(INSTALL) -m 755
+@@ -88,7 +88,7 @@
+ mxml-index.o mxml-node.o mxml-search.o mxml-set.o
+ LIBOBJS = $(PUBLIBOBJS) mxml-private.o mxml-string.o
+ OBJS = mxmldoc.o testmxml.o $(LIBOBJS)
+-TARGETS = $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man
++TARGETS = $(LIBMXML) libmxml.a
+
+
+ #
+@@ -140,9 +140,6 @@
+ #
+
+ install: $(TARGETS) install-$(LIBMXML) install-libmxml.a
+- echo Installing mxmldoc in $(BUILDROOT)$(bindir)...
+- $(INSTALL_DIR) $(BUILDROOT)$(bindir)
+- $(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir)
+ echo Installing documentation in $(BUILDROOT)$(docdir)...
+ $(INSTALL_DIR) $(BUILDROOT)$(docdir)
+ for file in $(DOCFILES); do \
+@@ -154,11 +151,6 @@
+ echo Installing pkgconfig files in $(BUILDROOT)$(libdir)/pkgconfig...
+ $(INSTALL_DIR) $(BUILDROOT)$(libdir)/pkgconfig
+ $(INSTALL_DATA) mxml.pc $(BUILDROOT)$(libdir)/pkgconfig
+- echo Installing man pages in $(BUILDROOT)$(mandir)...
+- $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man1
+- $(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.1
+- $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3
+- $(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.3
+
+ install-libmxml.a:
+ echo Installing libmxml.a to $(BUILDROOT)$(libdir)...
+++ /dev/null
-From: Baruch Siach <baruch@tkos.co.il>
-Subject: [PATCH] mxml: workaround for cross build
-
-The added patch is a workaround for cross build as follows:
-
- * disable run of a test binary at build time
- * disable generation of documentation using the mxmldoc binary
- * remove now non-existent entries from the install target
- * disable strip when running install
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
-diff -Nuar mxml-2.7-orig/Makefile.in mxml-2.7/Makefile.in
---- mxml-2.7-orig/Makefile.in 2011-04-13 18:43:32.000000000 +0300
-+++ mxml-2.7/Makefile.in 2012-05-16 07:21:42.677220980 +0300
-@@ -57,7 +57,7 @@
- # Install commands...
- #
-
--INSTALL_BIN = $(LIBTOOL) $(INSTALL) -m 755 -s
-+INSTALL_BIN = $(LIBTOOL) $(INSTALL) -m 755
- INSTALL_DATA = $(INSTALL) -m 644
- INSTALL_DIR = $(INSTALL) -d
- INSTALL_LIB = $(LIBTOOL) $(INSTALL) -m 755
-@@ -88,7 +88,7 @@
- mxml-index.o mxml-node.o mxml-search.o mxml-set.o
- LIBOBJS = $(PUBLIBOBJS) mxml-private.o mxml-string.o
- OBJS = mxmldoc.o testmxml.o $(LIBOBJS)
--TARGETS = $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man
-+TARGETS = $(LIBMXML) libmxml.a
-
-
- #
-@@ -140,9 +140,6 @@
- #
-
- install: $(TARGETS) install-$(LIBMXML) install-libmxml.a
-- echo Installing mxmldoc in $(BUILDROOT)$(bindir)...
-- $(INSTALL_DIR) $(BUILDROOT)$(bindir)
-- $(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir)
- echo Installing documentation in $(BUILDROOT)$(docdir)...
- $(INSTALL_DIR) $(BUILDROOT)$(docdir)
- for file in $(DOCFILES); do \
-@@ -154,11 +151,6 @@
- echo Installing pkgconfig files in $(BUILDROOT)$(libdir)/pkgconfig...
- $(INSTALL_DIR) $(BUILDROOT)$(libdir)/pkgconfig
- $(INSTALL_DATA) mxml.pc $(BUILDROOT)$(libdir)/pkgconfig
-- echo Installing man pages in $(BUILDROOT)$(mandir)...
-- $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man1
-- $(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.1
-- $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3
-- $(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.3
-
- install-libmxml.a:
- echo Installing libmxml.a to $(BUILDROOT)$(libdir)...
--- /dev/null
+Change handling of PKG_CONFIG_LIBDIR
+
+When PKG_CONFIG_LIBDIR was unset in the environment, the configure
+script was deducing the PKG_CONFIG_LIBDIR from the location of the
+pkg-config binary, which doesn't make a lot of sense, and isn't done
+by other autotools based packages.
+
+Also, the configure script was checking that the directory really
+exists. This forced to create the directory *and* provide an absolute
+path in PKG_CONFIG_LIBDIR, which didn't play well with the fact that
+at installation time, PKG_CONFIG_LIBDIR is suffixed to DESTDIR, which
+means that we got two times the staging directory location.
+
+This patch fixes both of those issues. Also, since ncurses uses a fork
+of autoconf 2.13, we can't simply use _AUTORECONF=YES, so we also fix
+the configure script in this patch.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure
+===================================================================
+--- a/configure
++++ b/configure
+@@ -3623,27 +3623,20 @@
+
+ # Leave this as something that can be overridden in the environment.
+ if test -z "$PKG_CONFIG_LIBDIR" ; then
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig
++ PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig"
+ fi
++
+ PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
+- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
+
+-# Check whether --enable-pc-files or --disable-pc-files was given.
+-if test "${enable_pc_files+set}" = set; then
+- enableval="$enable_pc_files"
+- enable_pc_files=$enableval
+-else
+- enable_pc_files=no
+-fi;
+- echo "$as_me:3638: result: $enable_pc_files" >&5
+-echo "${ECHO_T}$enable_pc_files" >&6
++ # Check whether --enable-pc-files or --disable-pc-files was given.
++ if test "${enable_pc_files+set}" = set; then
++ enableval="$enable_pc_files"
++ enable_pc_files=$enableval
+ else
+- echo "$as_me:3641: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- { echo "$as_me:3643: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
+-echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;}
+- enable_pc_files=no
+- fi
++ enable_pc_files=no
++ fi;
++ echo "$as_me:3638: result: $enable_pc_files" >&5
++ echo "${ECHO_T}$enable_pc_files" >&6
+ fi
+
+ echo "$as_me:3649: checking if we should assume mixed-case filenames" >&5
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -174,20 +174,14 @@
+
+ # Leave this as something that can be overridden in the environment.
+ if test -z "$PKG_CONFIG_LIBDIR" ; then
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig
++ PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig"
+ fi
+ PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
+- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
+- AC_ARG_ENABLE(pc-files,
++ AC_ARG_ENABLE(pc-files,
+ [ --enable-pc-files generate and install .pc files for pkg-config],
+ [enable_pc_files=$enableval],
+ [enable_pc_files=no])
+- AC_MSG_RESULT($enable_pc_files)
+- else
+- AC_MSG_RESULT(no)
+- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR)
+- enable_pc_files=no
+- fi
++ AC_MSG_RESULT($enable_pc_files)
+ fi
+ AC_SUBST(PKG_CONFIG_LIBDIR)
+
+++ /dev/null
-Change handling of PKG_CONFIG_LIBDIR
-
-When PKG_CONFIG_LIBDIR was unset in the environment, the configure
-script was deducing the PKG_CONFIG_LIBDIR from the location of the
-pkg-config binary, which doesn't make a lot of sense, and isn't done
-by other autotools based packages.
-
-Also, the configure script was checking that the directory really
-exists. This forced to create the directory *and* provide an absolute
-path in PKG_CONFIG_LIBDIR, which didn't play well with the fact that
-at installation time, PKG_CONFIG_LIBDIR is suffixed to DESTDIR, which
-means that we got two times the staging directory location.
-
-This patch fixes both of those issues. Also, since ncurses uses a fork
-of autoconf 2.13, we can't simply use _AUTORECONF=YES, so we also fix
-the configure script in this patch.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure
-===================================================================
---- a/configure
-+++ b/configure
-@@ -3623,27 +3623,20 @@
-
- # Leave this as something that can be overridden in the environment.
- if test -z "$PKG_CONFIG_LIBDIR" ; then
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig
-+ PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig"
- fi
-+
- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
-- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
-
--# Check whether --enable-pc-files or --disable-pc-files was given.
--if test "${enable_pc_files+set}" = set; then
-- enableval="$enable_pc_files"
-- enable_pc_files=$enableval
--else
-- enable_pc_files=no
--fi;
-- echo "$as_me:3638: result: $enable_pc_files" >&5
--echo "${ECHO_T}$enable_pc_files" >&6
-+ # Check whether --enable-pc-files or --disable-pc-files was given.
-+ if test "${enable_pc_files+set}" = set; then
-+ enableval="$enable_pc_files"
-+ enable_pc_files=$enableval
- else
-- echo "$as_me:3641: result: no" >&5
--echo "${ECHO_T}no" >&6
-- { echo "$as_me:3643: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
--echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;}
-- enable_pc_files=no
-- fi
-+ enable_pc_files=no
-+ fi;
-+ echo "$as_me:3638: result: $enable_pc_files" >&5
-+ echo "${ECHO_T}$enable_pc_files" >&6
- fi
-
- echo "$as_me:3649: checking if we should assume mixed-case filenames" >&5
-Index: b/configure.in
-===================================================================
---- a/configure.in
-+++ b/configure.in
-@@ -174,20 +174,14 @@
-
- # Leave this as something that can be overridden in the environment.
- if test -z "$PKG_CONFIG_LIBDIR" ; then
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig
-+ PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig"
- fi
- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
-- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
-- AC_ARG_ENABLE(pc-files,
-+ AC_ARG_ENABLE(pc-files,
- [ --enable-pc-files generate and install .pc files for pkg-config],
- [enable_pc_files=$enableval],
- [enable_pc_files=no])
-- AC_MSG_RESULT($enable_pc_files)
-- else
-- AC_MSG_RESULT(no)
-- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR)
-- enable_pc_files=no
-- fi
-+ AC_MSG_RESULT($enable_pc_files)
- fi
- AC_SUBST(PKG_CONFIG_LIBDIR)
-
--- /dev/null
+From 00995e0b8a66fbd0eabd206188120bfc1ecdac59 Mon Sep 17 00:00:00 2001
+Message-Id: <00995e0b8a66fbd0eabd206188120bfc1ecdac59.1398245232.git.baruch@tkos.co.il>
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Wed, 23 Apr 2014 12:21:37 +0300
+Subject: [PATCH] CMakeLists: don't hard code thumb code generation
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2c7f8d62a42b..cec614fba041 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -77,7 +77,7 @@ if(ANDROID_PLATFORM)
+ add_subdirectory(android/NE10Demo/jni)
+ endif()
+ elseif(GNULINUX_PLATFORM)
+- set(CMAKE_C_FLAGS "-O2 -mthumb-interwork -mthumb -march=armv7-a -mfpu=vfp3")
++ set(CMAKE_C_FLAGS "-O2 -mthumb-interwork -march=armv7-a -mfpu=vfp3")
+ set(CMAKE_ASM_FLAGS "-mthumb-interwork -mthumb -march=armv7-a -mfpu=neon")
+ elseif(IOS_PLATFORM)
+ #set minimal target ios version.If not provided this option, Xcode
+--
+1.9.2
+
+++ /dev/null
-From 00995e0b8a66fbd0eabd206188120bfc1ecdac59 Mon Sep 17 00:00:00 2001
-Message-Id: <00995e0b8a66fbd0eabd206188120bfc1ecdac59.1398245232.git.baruch@tkos.co.il>
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Wed, 23 Apr 2014 12:21:37 +0300
-Subject: [PATCH] CMakeLists: don't hard code thumb code generation
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2c7f8d62a42b..cec614fba041 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -77,7 +77,7 @@ if(ANDROID_PLATFORM)
- add_subdirectory(android/NE10Demo/jni)
- endif()
- elseif(GNULINUX_PLATFORM)
-- set(CMAKE_C_FLAGS "-O2 -mthumb-interwork -mthumb -march=armv7-a -mfpu=vfp3")
-+ set(CMAKE_C_FLAGS "-O2 -mthumb-interwork -march=armv7-a -mfpu=vfp3")
- set(CMAKE_ASM_FLAGS "-mthumb-interwork -mthumb -march=armv7-a -mfpu=neon")
- elseif(IOS_PLATFORM)
- #set minimal target ios version.If not provided this option, Xcode
---
-1.9.2
-
--- /dev/null
+# Fix the endian-specific bit-counting code so that it works.
+# SF:1068324 "netcat_flag_count() fix"
+# http://sourceforge.net/tracker/?func=detail&aid=1205729&group_id=52204&atid=466046
+# SF:1205729 "doen't work on arm linux platform":
+# http://sourceforge.net/tracker/?func=detail&aid=1068324&group_id=52204&atid=466046
+
+Index: netcat-0.7.1/src/flagset.c
+===================================================================
+--- netcat-0.7.1.orig/src/flagset.c 2010-07-19 13:51:46.000000000 +0100
++++ netcat-0.7.1/src/flagset.c 2010-07-19 13:52:27.000000000 +0100
+@@ -134,7 +134,7 @@
+
+ int netcat_flag_count(void)
+ {
+- register char c;
++ register unsigned char c;
+ register int i;
+ int ret = 0;
+
+@@ -154,8 +154,8 @@
+ Assumed that the bit number 1 is the sign, and that we will shift the
+ bit 1 (or the bit that takes its place later) until the the most right,
+ WHY it has to keep the wrong sign? */
+- ret -= (c >> 7);
+- c <<= 1;
++ ret += c&1;
++ c>>=1;
+ }
+ }
+
+++ /dev/null
-# Fix the endian-specific bit-counting code so that it works.
-# SF:1068324 "netcat_flag_count() fix"
-# http://sourceforge.net/tracker/?func=detail&aid=1205729&group_id=52204&atid=466046
-# SF:1205729 "doen't work on arm linux platform":
-# http://sourceforge.net/tracker/?func=detail&aid=1068324&group_id=52204&atid=466046
-
-Index: netcat-0.7.1/src/flagset.c
-===================================================================
---- netcat-0.7.1.orig/src/flagset.c 2010-07-19 13:51:46.000000000 +0100
-+++ netcat-0.7.1/src/flagset.c 2010-07-19 13:52:27.000000000 +0100
-@@ -134,7 +134,7 @@
-
- int netcat_flag_count(void)
- {
-- register char c;
-+ register unsigned char c;
- register int i;
- int ret = 0;
-
-@@ -154,8 +154,8 @@
- Assumed that the bit number 1 is the sign, and that we will shift the
- bit 1 (or the bit that takes its place later) until the the most right,
- WHY it has to keep the wrong sign? */
-- ret -= (c >> 7);
-- c <<= 1;
-+ ret += c&1;
-+ c>>=1;
- }
- }
-
--- /dev/null
+Preserve the cflags settings, because buildroot clobbers them.
+
+--- a/Makefile 2010-10-05 00:06:38.000000000 -0700
++++ b/Makefile 2010-10-05 00:15:27.000000000 -0700
+@@ -11,11 +11,14 @@ mandir ?= $(prefix)/usr/share/man
+
+ install_opts :=
+
+-CFLAGS += -Wall -std=gnu99 -DNP_ETC_DIR='"$(etcdir)"' \
++NETPLUG_CFLAGS += -Wall -std=gnu99 -DNP_ETC_DIR='"$(etcdir)"' \
+ -DNP_SCRIPT_DIR='"$(scriptdir)"' -ggdb3 -O3 -DNP_VERSION='"$(version)"'
+
++%.o: %.c
++ $(CC) $(NETPLUG_CFLAGS) $(CFLAGS) -c -o $@ $<
++
+ netplugd: config.o netlink.o lib.o if_info.o main.o
+- $(CC) $(LDFLAGS) -o $@ $^
++ $(CC) $(LDFLAGS) -o $@ $(NETPLUG_CFLAGS) $^
+
+ install:
+ install -d $(install_opts) -m 755 \
+++ /dev/null
-Preserve the cflags settings, because buildroot clobbers them.
-
---- a/Makefile 2010-10-05 00:06:38.000000000 -0700
-+++ b/Makefile 2010-10-05 00:15:27.000000000 -0700
-@@ -11,11 +11,14 @@ mandir ?= $(prefix)/usr/share/man
-
- install_opts :=
-
--CFLAGS += -Wall -std=gnu99 -DNP_ETC_DIR='"$(etcdir)"' \
-+NETPLUG_CFLAGS += -Wall -std=gnu99 -DNP_ETC_DIR='"$(etcdir)"' \
- -DNP_SCRIPT_DIR='"$(scriptdir)"' -ggdb3 -O3 -DNP_VERSION='"$(version)"'
-
-+%.o: %.c
-+ $(CC) $(NETPLUG_CFLAGS) $(CFLAGS) -c -o $@ $<
-+
- netplugd: config.o netlink.o lib.o if_info.o main.o
-- $(CC) $(LDFLAGS) -o $@ $^
-+ $(CC) $(LDFLAGS) -o $@ $(NETPLUG_CFLAGS) $^
-
- install:
- install -d $(install_opts) -m 755 \
--- /dev/null
+From b8241447e2a910dde57bf5a44a4464d80c87ebca Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <peter@korsgaard.com>
+Date: Mon, 11 Aug 2014 09:37:05 +0200
+Subject: [PATCH] NetworkManagerUtils: fix build with toolchains not exporting
+ CLOCK_BOOTTIME
+
+E.G. uClibc 0.9.33 and earlier.
+
+Submitted upstream: https://bugzilla.gnome.org/show_bug.cgi?id=734599
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ src/NetworkManagerUtils.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
+index aa689ce..fc85b00 100644
+--- a/src/NetworkManagerUtils.c
++++ b/src/NetworkManagerUtils.c
+@@ -45,6 +45,15 @@
+ #include "nm-posix-signals.h"
+
+ /*
++ * Some toolchains (E.G. uClibc 0.9.33 and earlier) don't export
++ * CLOCK_BOOTTIME even though the kernel supports it, so provide a
++ * local definition
++ */
++#ifndef CLOCK_BOOTTIME
++#define CLOCK_BOOTTIME 7
++#endif
++
++/*
+ * nm_ethernet_address_is_valid
+ *
+ * Compares an Ethernet address against known invalid addresses.
+--
+2.0.0
+
+++ /dev/null
-From b8241447e2a910dde57bf5a44a4464d80c87ebca Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <peter@korsgaard.com>
-Date: Mon, 11 Aug 2014 09:37:05 +0200
-Subject: [PATCH] NetworkManagerUtils: fix build with toolchains not exporting
- CLOCK_BOOTTIME
-
-E.G. uClibc 0.9.33 and earlier.
-
-Submitted upstream: https://bugzilla.gnome.org/show_bug.cgi?id=734599
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- src/NetworkManagerUtils.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
-index aa689ce..fc85b00 100644
---- a/src/NetworkManagerUtils.c
-+++ b/src/NetworkManagerUtils.c
-@@ -45,6 +45,15 @@
- #include "nm-posix-signals.h"
-
- /*
-+ * Some toolchains (E.G. uClibc 0.9.33 and earlier) don't export
-+ * CLOCK_BOOTTIME even though the kernel supports it, so provide a
-+ * local definition
-+ */
-+#ifndef CLOCK_BOOTTIME
-+#define CLOCK_BOOTTIME 7
-+#endif
-+
-+/*
- * nm_ethernet_address_is_valid
- *
- * Compares an Ethernet address against known invalid addresses.
---
-2.0.0
-
--- /dev/null
+From da1a0c186232d1bca9c723bd47d11a6e3807ae29 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Tue, 10 Sep 2013 16:16:48 -0300
+Subject: [PATCH] configure: uclinux is also linux
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9679112..9a34bdc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -15,7 +15,7 @@ AC_PROG_INSTALL
+ AC_PROG_LN_S
+
+ case "$host" in
+-*-*-linux*) ;;
++*-*-linux* | *-*-uclinux*) ;;
+ *) AC_MSG_ERROR([Linux only, dude!]);;
+ esac
+
+--
+1.8.1.5
+
+++ /dev/null
-From da1a0c186232d1bca9c723bd47d11a6e3807ae29 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 16:16:48 -0300
-Subject: [PATCH] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9679112..9a34bdc 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -15,7 +15,7 @@ AC_PROG_INSTALL
- AC_PROG_LN_S
-
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-1.8.1.5
-
--- /dev/null
+ngrep: don't include regex objects since we're using pcre
+
+Signed-off-by: Wade Berrier <wberrier@gmail.com>
+
+--- ngrep-1.45/Makefile.in.orig 2006-11-28 06:35:37.000000000 -0700
++++ ngrep-1.45/Makefile.in 2011-06-29 14:05:27.000000000 -0600
+@@ -32,13 +32,13 @@
+
+ INSTALL = ./install-sh
+
+-REGEX_DIR=@REGEX_DIR@
+-REGEX_OBJS=@REGEX_OBJS@
++REGEX_DIR=
++REGEX_OBJS=
+
+
+ all: $(TARGET)
+
+-$(TARGET): $(REGEX_OBJS) $(OBJS)
++$(TARGET): $(OBJS)
+ $(CC) $(CFLAGS) $(LDFLAGS) $(STRIPFLAG) -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LIBS)
+
+ debug: $(REGEX_OBJS) $(OBJS)
--- /dev/null
+ngrep: don't use versioned header
+
+Signed-off-by: Wade Berrier <wberrier@gmail.com>
+
+diff -ur ngrep-1.45/ngrep.c ngrep-1.45.mod/ngrep.c
+--- ngrep-1.45/ngrep.c Tue Nov 28 15:38:43 2006
++++ ngrep-1.45.mod/ngrep.c Sat May 19 10:21:27 2007
+@@ -92,7 +92,7 @@
+ #endif
+
+ #if USE_PCRE
+-#include "pcre-5.0/pcre.h"
++#include "pcre.h"
+ #else
+ #include "regex-0.12/regex.h"
+ #endif
--- /dev/null
+ngrep: fix static link with pcre
+
+Libraries must be placed after object files.
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 2ae4506..761d7d9 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -11,7 +11,7 @@ CFLAGS=@CFLAGS@ -D@OS@ @DEFS@ @EXTRA_DEFINES@
+ INCLUDES=-I@srcdir@ @PCAP_INCLUDE@ @EXTRA_INCLUDES@
+
+ LDFLAGS=@LDFLAGS@ @PCAP_LINK@
+-LIBS=-lpcap @EXTRA_LIBS@
++LIBS=@LIBS@ @EXTRA_LIBS@
+
+ STRIPFLAG=@STRIPFLAG@
+
+--
+1.8.1.4
+
+++ /dev/null
-ngrep: don't include regex objects since we're using pcre
-
-Signed-off-by: Wade Berrier <wberrier@gmail.com>
-
---- ngrep-1.45/Makefile.in.orig 2006-11-28 06:35:37.000000000 -0700
-+++ ngrep-1.45/Makefile.in 2011-06-29 14:05:27.000000000 -0600
-@@ -32,13 +32,13 @@
-
- INSTALL = ./install-sh
-
--REGEX_DIR=@REGEX_DIR@
--REGEX_OBJS=@REGEX_OBJS@
-+REGEX_DIR=
-+REGEX_OBJS=
-
-
- all: $(TARGET)
-
--$(TARGET): $(REGEX_OBJS) $(OBJS)
-+$(TARGET): $(OBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) $(STRIPFLAG) -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LIBS)
-
- debug: $(REGEX_OBJS) $(OBJS)
+++ /dev/null
-ngrep: don't use versioned header
-
-Signed-off-by: Wade Berrier <wberrier@gmail.com>
-
-diff -ur ngrep-1.45/ngrep.c ngrep-1.45.mod/ngrep.c
---- ngrep-1.45/ngrep.c Tue Nov 28 15:38:43 2006
-+++ ngrep-1.45.mod/ngrep.c Sat May 19 10:21:27 2007
-@@ -92,7 +92,7 @@
- #endif
-
- #if USE_PCRE
--#include "pcre-5.0/pcre.h"
-+#include "pcre.h"
- #else
- #include "regex-0.12/regex.h"
- #endif
+++ /dev/null
-ngrep: fix static link with pcre
-
-Libraries must be placed after object files.
-
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 2ae4506..761d7d9 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -11,7 +11,7 @@ CFLAGS=@CFLAGS@ -D@OS@ @DEFS@ @EXTRA_DEFINES@
- INCLUDES=-I@srcdir@ @PCAP_INCLUDE@ @EXTRA_INCLUDES@
-
- LDFLAGS=@LDFLAGS@ @PCAP_LINK@
--LIBS=-lpcap @EXTRA_LIBS@
-+LIBS=@LIBS@ @EXTRA_LIBS@
-
- STRIPFLAG=@STRIPFLAG@
-
---
-1.8.1.4
-
--- /dev/null
+Remove dependency on Python bz2 module
+
+The Python bz2 module is only needed in certain cases, so only import
+it when needed. In the normal nodejs build, this allows to remove the
+dependency on this module.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Index: b/deps/v8/tools/js2c.py
+===================================================================
+--- a/deps/v8/tools/js2c.py
++++ b/deps/v8/tools/js2c.py
+@@ -33,7 +33,6 @@
+
+ import os, re, sys, string
+ import jsmin
+-import bz2
+
+
+ def ToCAsciiArray(lines):
+@@ -344,6 +343,7 @@
+ else:
+ raw_sources_declaration = RAW_SOURCES_COMPRESSION_DECLARATION
+ if env['COMPRESSION'] == 'bz2':
++ import bz2
+ all_sources = bz2.compress("".join(all_sources))
+ total_length = len(all_sources)
+ sources_data = ToCArray(all_sources)
--- /dev/null
+From 00d809e9305241f8636a2d75e22c493293e6971a Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 20 Apr 2014 15:03:01 +0200
+Subject: [PATCH] gyp: force link command to use CXX
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ tools/gyp/pylib/gyp/generator/make.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generator/make.py
+index 0de510e..54e4c96 100644
+--- a/tools/gyp/pylib/gyp/generator/make.py
++++ b/tools/gyp/pylib/gyp/generator/make.py
+@@ -134,7 +134,7 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
+ # special "figure out circular dependencies" flags around the entire
+ # input list during linking.
+ quiet_cmd_link = LINK($(TOOLSET)) $@
+-cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS)
++cmd_link = $(CXX.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS)
+
+ # We support two kinds of shared objects (.so):
+ # 1) shared_library, which is just bundling together many dependent libraries
+--
+1.9.2
+
--- /dev/null
+Use a python variable instead of hardcoding Python
+
+The nodejs build system uses python in a number of locations. However,
+there are some locations where it hardcodes 'python' as the Python
+interpreter. However, this causes problems when we need to use python2
+instead of just python.
+
+This patch fixes that by using the python variable already in place in
+the nodejs build system.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/deps/v8/tools/gyp/v8.gyp
+===================================================================
+--- a/deps/v8/tools/gyp/v8.gyp
++++ b/deps/v8/tools/gyp/v8.gyp
+@@ -792,7 +792,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
+ ],
+ 'action': [
+- 'python',
++ '<(python)',
+ '../../tools/js2c.py',
+ '<@(_outputs)',
+ 'CORE',
+@@ -810,7 +810,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
+ ],
+ 'action': [
+- 'python',
++ '<(python)',
+ '../../tools/js2c.py',
+ '<@(_outputs)',
+ 'EXPERIMENTAL',
+@@ -840,7 +840,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
+ ],
+ 'action': [
+- 'python',
++ '<(python)',
+ '../../tools/gen-postmortem-metadata.py',
+ '<@(_outputs)',
+ '<@(heapobject_files)'
--- /dev/null
+From d9acdddb42aef48a9504368019beb1ad91c9a0c4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <jkrause@posteo.de>
+Date: Mon, 17 Nov 2014 12:34:05 +0100
+Subject: [PATCH 1/1] src/node.cc: fix build error without OpenSSL support
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Krause <jkrause@posteo.de>
+---
+ src/node.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/node.cc b/src/node.cc
+index 18c743f..cb77f08 100644
+--- a/src/node.cc
++++ b/src/node.cc
+@@ -82,7 +82,6 @@ typedef int mode_t;
+ #include "node_script.h"
+ #include "v8_typed_array.h"
+
+-#include "node_crypto.h"
+ #include "util.h"
+
+ using namespace v8;
+@@ -2544,8 +2543,10 @@ static void PrintHelp() {
+ " --trace-deprecation show stack traces on deprecations\n"
+ " --v8-options print v8 command line options\n"
+ " --max-stack-size=val set max v8 stack size (bytes)\n"
++#if HAVE_OPENSSL
+ " --enable-ssl2 enable ssl2\n"
+ " --enable-ssl3 enable ssl3\n"
++#endif
+ "\n"
+ "Environment variables:\n"
+ #ifdef _WIN32
+@@ -2579,12 +2580,14 @@ static void ParseArgs(int argc, char **argv) {
+ p = 1 + strchr(arg, '=');
+ max_stack_size = atoi(p);
+ argv[i] = const_cast<char*>("");
++#if HAVE_OPENSSL
+ } else if (strcmp(arg, "--enable-ssl2") == 0) {
+ SSL2_ENABLE = true;
+ argv[i] = const_cast<char*>("");
+ } else if (strcmp(arg, "--enable-ssl3") == 0) {
+ SSL3_ENABLE = true;
+ argv[i] = const_cast<char*>("");
++#endif
+ } else if (strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) {
+ PrintHelp();
+ exit(0);
+--
+2.1.3
+
+++ /dev/null
-Remove dependency on Python bz2 module
-
-The Python bz2 module is only needed in certain cases, so only import
-it when needed. In the normal nodejs build, this allows to remove the
-dependency on this module.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Index: b/deps/v8/tools/js2c.py
-===================================================================
---- a/deps/v8/tools/js2c.py
-+++ b/deps/v8/tools/js2c.py
-@@ -33,7 +33,6 @@
-
- import os, re, sys, string
- import jsmin
--import bz2
-
-
- def ToCAsciiArray(lines):
-@@ -344,6 +343,7 @@
- else:
- raw_sources_declaration = RAW_SOURCES_COMPRESSION_DECLARATION
- if env['COMPRESSION'] == 'bz2':
-+ import bz2
- all_sources = bz2.compress("".join(all_sources))
- total_length = len(all_sources)
- sources_data = ToCArray(all_sources)
+++ /dev/null
-From 00d809e9305241f8636a2d75e22c493293e6971a Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sun, 20 Apr 2014 15:03:01 +0200
-Subject: [PATCH] gyp: force link command to use CXX
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- tools/gyp/pylib/gyp/generator/make.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generator/make.py
-index 0de510e..54e4c96 100644
---- a/tools/gyp/pylib/gyp/generator/make.py
-+++ b/tools/gyp/pylib/gyp/generator/make.py
-@@ -134,7 +134,7 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
- # special "figure out circular dependencies" flags around the entire
- # input list during linking.
- quiet_cmd_link = LINK($(TOOLSET)) $@
--cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS)
-+cmd_link = $(CXX.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS)
-
- # We support two kinds of shared objects (.so):
- # 1) shared_library, which is just bundling together many dependent libraries
---
-1.9.2
-
+++ /dev/null
-Use a python variable instead of hardcoding Python
-
-The nodejs build system uses python in a number of locations. However,
-there are some locations where it hardcodes 'python' as the Python
-interpreter. However, this causes problems when we need to use python2
-instead of just python.
-
-This patch fixes that by using the python variable already in place in
-the nodejs build system.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/deps/v8/tools/gyp/v8.gyp
-===================================================================
---- a/deps/v8/tools/gyp/v8.gyp
-+++ b/deps/v8/tools/gyp/v8.gyp
-@@ -792,7 +792,7 @@
- '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
- ],
- 'action': [
-- 'python',
-+ '<(python)',
- '../../tools/js2c.py',
- '<@(_outputs)',
- 'CORE',
-@@ -810,7 +810,7 @@
- '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
- ],
- 'action': [
-- 'python',
-+ '<(python)',
- '../../tools/js2c.py',
- '<@(_outputs)',
- 'EXPERIMENTAL',
-@@ -840,7 +840,7 @@
- '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
- ],
- 'action': [
-- 'python',
-+ '<(python)',
- '../../tools/gen-postmortem-metadata.py',
- '<@(_outputs)',
- '<@(heapobject_files)'
+++ /dev/null
-From d9acdddb42aef48a9504368019beb1ad91c9a0c4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Krause?= <jkrause@posteo.de>
-Date: Mon, 17 Nov 2014 12:34:05 +0100
-Subject: [PATCH 1/1] src/node.cc: fix build error without OpenSSL support
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Krause <jkrause@posteo.de>
----
- src/node.cc | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/src/node.cc b/src/node.cc
-index 18c743f..cb77f08 100644
---- a/src/node.cc
-+++ b/src/node.cc
-@@ -82,7 +82,6 @@ typedef int mode_t;
- #include "node_script.h"
- #include "v8_typed_array.h"
-
--#include "node_crypto.h"
- #include "util.h"
-
- using namespace v8;
-@@ -2544,8 +2543,10 @@ static void PrintHelp() {
- " --trace-deprecation show stack traces on deprecations\n"
- " --v8-options print v8 command line options\n"
- " --max-stack-size=val set max v8 stack size (bytes)\n"
-+#if HAVE_OPENSSL
- " --enable-ssl2 enable ssl2\n"
- " --enable-ssl3 enable ssl3\n"
-+#endif
- "\n"
- "Environment variables:\n"
- #ifdef _WIN32
-@@ -2579,12 +2580,14 @@ static void ParseArgs(int argc, char **argv) {
- p = 1 + strchr(arg, '=');
- max_stack_size = atoi(p);
- argv[i] = const_cast<char*>("");
-+#if HAVE_OPENSSL
- } else if (strcmp(arg, "--enable-ssl2") == 0) {
- SSL2_ENABLE = true;
- argv[i] = const_cast<char*>("");
- } else if (strcmp(arg, "--enable-ssl3") == 0) {
- SSL3_ENABLE = true;
- argv[i] = const_cast<char*>("");
-+#endif
- } else if (strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) {
- PrintHelp();
- exit(0);
---
-2.1.3
-
--- /dev/null
+configure: fix calls to {gdlib,net-snmp}-config
+
+nut directly calls to {gdlib,net-snmp}-config. In Buildroot,
+those are not in the PATH, and nut would catch those of the
+system (if they are installed), or miss them entirely.
+
+Fix that by using environment variables that will tell where
+to look for them.
+
+Note: libusb also uses libusb-config, but only as a fallback
+if pkg-config fails. Since we ensure that pkg-config exists,
+and libusb is properly installed before we build nut, there
+is no need to fix the libusb-config calls, since they won't
+be called at all.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN nut-2.6.5.orig/m4/nut_check_libgd.m4 nut-2.6.5/m4/nut_check_libgd.m4
+--- nut-2.6.5.orig/m4/nut_check_libgd.m4 2012-07-31 19:38:56.000000000 +0200
++++ nut-2.6.5/m4/nut_check_libgd.m4 2013-11-01 16:24:02.626549810 +0100
+@@ -20,7 +20,7 @@
+ LIBS="-lgd -lpng -lz -ljpeg -lfreetype -lm -lXpm -lX11"
+
+ AC_MSG_CHECKING(for gd version via gdlib-config)
+- GD_VERSION=`gdlib-config --version 2>/dev/null`
++ GD_VERSION=`${GDLIB_CONFIG} --version 2>/dev/null`
+ if test "$?" != "0" -o -z "${GD_VERSION}"; then
+ GD_VERSION="none"
+ fi
+@@ -34,9 +34,9 @@
+ AC_MSG_WARN([[If gd detection fails, upgrade gd or use --with-gd-includes and --with-gd-libs]])
+ ;;
+ *)
+- CFLAGS="`gdlib-config --includes 2>/dev/null`"
+- LDFLAGS="`gdlib-config --ldflags 2>/dev/null`"
+- LIBS="`gdlib-config --libs 2>/dev/null`"
++ CFLAGS="`${GDLIB_CONFIG} --includes 2>/dev/null`"
++ LDFLAGS="`${GDLIB_CONFIG} --ldflags 2>/dev/null`"
++ LIBS="`${GDLIB_CONFIG} --libs 2>/dev/null`"
+ ;;
+ esac
+
+diff -durN nut-2.6.5.orig/m4/nut_check_libnetsnmp.m4 nut-2.6.5/m4/nut_check_libnetsnmp.m4
+--- nut-2.6.5.orig/m4/nut_check_libnetsnmp.m4 2012-07-31 19:38:56.000000000 +0200
++++ nut-2.6.5/m4/nut_check_libnetsnmp.m4 2013-11-01 16:30:07.398282923 +0100
+@@ -15,7 +15,7 @@
+
+ dnl See which version of the Net-SNMP library (if any) is installed
+ AC_MSG_CHECKING(for Net-SNMP version via net-snmp-config)
+- SNMP_VERSION=`net-snmp-config --version 2>/dev/null`
++ SNMP_VERSION=`${NET_SNMP_CONFIG} --version 2>/dev/null`
+ if test "$?" != "0" -o -z "${SNMP_VERSION}"; then
+ SNMP_VERSION="none"
+ fi
+@@ -33,7 +33,7 @@
+ CFLAGS="${withval}"
+ ;;
+ esac
+- ], [CFLAGS="`net-snmp-config --base-cflags 2>/dev/null`"])
++ ], [CFLAGS="`${NET_SNMP_CONFIG} --base-cflags 2>/dev/null`"])
+ AC_MSG_RESULT([${CFLAGS}])
+
+ AC_MSG_CHECKING(for Net-SNMP libs)
+@@ -48,7 +48,7 @@
+ LIBS="${withval}"
+ ;;
+ esac
+- ], [LIBS="`net-snmp-config --libs 2>/dev/null`"])
++ ], [LIBS="`${NET_SNMP_CONFIG} --libs 2>/dev/null`"])
+ AC_MSG_RESULT([${LIBS}])
+
+ dnl Check if the Net-SNMP library is usable
--- /dev/null
+conf: fix parallel install
+
+Do not reference the upsmon.conf.sample twice, otherwise install, with
+a high number of make jobs, may fail, like so:
+ http://autobuild.buildroot.net/results/256/2567e13cd5bc702bc3a38a1d6fc8e34022cc7db5/build-end.log
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Upstream status:
+ https://github.com/networkupstools/nut/pull/147
+
+diff -durB nut-2.7.2.orig/conf/Makefile.am nut-2.7.2/conf/Makefile.am
+--- nut-2.7.2.orig/conf/Makefile.am 2014-02-14 09:56:53.000000000 +0100
++++ nut-2.7.2/conf/Makefile.am 2014-08-17 11:33:46.804439240 +0200
+@@ -2,7 +2,7 @@
+
+ INSTALL_0600 = $(INSTALL) -m 0600
+
+-SECFILES = upsmon.conf.sample upsd.conf.sample upsd.users.sample
++SECFILES = upsd.conf.sample upsd.users.sample
+ PUBFILES = nut.conf.sample ups.conf.sample
+ CGIPUB = hosts.conf.sample upsset.conf.sample upsstats.html.sample \
+ upsstats-single.html.sample
+++ /dev/null
-configure: fix calls to {gdlib,net-snmp}-config
-
-nut directly calls to {gdlib,net-snmp}-config. In Buildroot,
-those are not in the PATH, and nut would catch those of the
-system (if they are installed), or miss them entirely.
-
-Fix that by using environment variables that will tell where
-to look for them.
-
-Note: libusb also uses libusb-config, but only as a fallback
-if pkg-config fails. Since we ensure that pkg-config exists,
-and libusb is properly installed before we build nut, there
-is no need to fix the libusb-config calls, since they won't
-be called at all.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN nut-2.6.5.orig/m4/nut_check_libgd.m4 nut-2.6.5/m4/nut_check_libgd.m4
---- nut-2.6.5.orig/m4/nut_check_libgd.m4 2012-07-31 19:38:56.000000000 +0200
-+++ nut-2.6.5/m4/nut_check_libgd.m4 2013-11-01 16:24:02.626549810 +0100
-@@ -20,7 +20,7 @@
- LIBS="-lgd -lpng -lz -ljpeg -lfreetype -lm -lXpm -lX11"
-
- AC_MSG_CHECKING(for gd version via gdlib-config)
-- GD_VERSION=`gdlib-config --version 2>/dev/null`
-+ GD_VERSION=`${GDLIB_CONFIG} --version 2>/dev/null`
- if test "$?" != "0" -o -z "${GD_VERSION}"; then
- GD_VERSION="none"
- fi
-@@ -34,9 +34,9 @@
- AC_MSG_WARN([[If gd detection fails, upgrade gd or use --with-gd-includes and --with-gd-libs]])
- ;;
- *)
-- CFLAGS="`gdlib-config --includes 2>/dev/null`"
-- LDFLAGS="`gdlib-config --ldflags 2>/dev/null`"
-- LIBS="`gdlib-config --libs 2>/dev/null`"
-+ CFLAGS="`${GDLIB_CONFIG} --includes 2>/dev/null`"
-+ LDFLAGS="`${GDLIB_CONFIG} --ldflags 2>/dev/null`"
-+ LIBS="`${GDLIB_CONFIG} --libs 2>/dev/null`"
- ;;
- esac
-
-diff -durN nut-2.6.5.orig/m4/nut_check_libnetsnmp.m4 nut-2.6.5/m4/nut_check_libnetsnmp.m4
---- nut-2.6.5.orig/m4/nut_check_libnetsnmp.m4 2012-07-31 19:38:56.000000000 +0200
-+++ nut-2.6.5/m4/nut_check_libnetsnmp.m4 2013-11-01 16:30:07.398282923 +0100
-@@ -15,7 +15,7 @@
-
- dnl See which version of the Net-SNMP library (if any) is installed
- AC_MSG_CHECKING(for Net-SNMP version via net-snmp-config)
-- SNMP_VERSION=`net-snmp-config --version 2>/dev/null`
-+ SNMP_VERSION=`${NET_SNMP_CONFIG} --version 2>/dev/null`
- if test "$?" != "0" -o -z "${SNMP_VERSION}"; then
- SNMP_VERSION="none"
- fi
-@@ -33,7 +33,7 @@
- CFLAGS="${withval}"
- ;;
- esac
-- ], [CFLAGS="`net-snmp-config --base-cflags 2>/dev/null`"])
-+ ], [CFLAGS="`${NET_SNMP_CONFIG} --base-cflags 2>/dev/null`"])
- AC_MSG_RESULT([${CFLAGS}])
-
- AC_MSG_CHECKING(for Net-SNMP libs)
-@@ -48,7 +48,7 @@
- LIBS="${withval}"
- ;;
- esac
-- ], [LIBS="`net-snmp-config --libs 2>/dev/null`"])
-+ ], [LIBS="`${NET_SNMP_CONFIG} --libs 2>/dev/null`"])
- AC_MSG_RESULT([${LIBS}])
-
- dnl Check if the Net-SNMP library is usable
+++ /dev/null
-conf: fix parallel install
-
-Do not reference the upsmon.conf.sample twice, otherwise install, with
-a high number of make jobs, may fail, like so:
- http://autobuild.buildroot.net/results/256/2567e13cd5bc702bc3a38a1d6fc8e34022cc7db5/build-end.log
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
----
-Upstream status:
- https://github.com/networkupstools/nut/pull/147
-
-diff -durB nut-2.7.2.orig/conf/Makefile.am nut-2.7.2/conf/Makefile.am
---- nut-2.7.2.orig/conf/Makefile.am 2014-02-14 09:56:53.000000000 +0100
-+++ nut-2.7.2/conf/Makefile.am 2014-08-17 11:33:46.804439240 +0200
-@@ -2,7 +2,7 @@
-
- INSTALL_0600 = $(INSTALL) -m 0600
-
--SECFILES = upsmon.conf.sample upsd.conf.sample upsd.users.sample
-+SECFILES = upsd.conf.sample upsd.users.sample
- PUBFILES = nut.conf.sample ups.conf.sample
- CGIPUB = hosts.conf.sample upsset.conf.sample upsstats.html.sample \
- upsstats-single.html.sample
--- /dev/null
+[PATCH] Replace susv3 legacy function with modern equivalents
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ nuttcp-6.1.2.c | 90 ++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 45 insertions(+), 45 deletions(-)
+
+Index: nuttcp-6.1.2/nuttcp-6.1.2.c
+===================================================================
+--- nuttcp-6.1.2.orig/nuttcp-6.1.2.c
++++ nuttcp-6.1.2/nuttcp-6.1.2.c
+@@ -1925,11 +1925,11 @@
+ if (udp && !haverateopt)
+ rate = DEFAULT_UDP_RATE;
+
+- bzero((char *)&frominet, sizeof(frominet));
+- bzero((char *)&clientaddr, sizeof(clientaddr));
++ memset((char *)&frominet, 0, sizeof(frominet));
++ memset((char *)&clientaddr, 0, sizeof(clientaddr));
+
+ #ifdef AF_INET6
+- bzero((char *)&clientaddr6, sizeof(clientaddr6));
++ memset((char *)&clientaddr6, 0, sizeof(clientaddr6));
+ clientscope6 = 0;
+ #endif
+
+@@ -1985,7 +1985,7 @@
+ }
+
+ while (stream_idx <= nstream) {
+- bzero(&hints, sizeof(hints));
++ memset(&hints, 0, sizeof(hints));
+ res[stream_idx] = NULL;
+ if (explicitaf) hints.ai_family = af;
+ if ((cp2 = strchr(cp1, '/'))) {
+@@ -3013,12 +3013,12 @@
+ if ((stream_idx > 0) && skip_data)
+ break;
+
+- bzero((char *)&sinme[stream_idx], sizeof(sinme[stream_idx]));
+- bzero((char *)&sinhim[stream_idx], sizeof(sinhim[stream_idx]));
++ memset((char *)&sinme[stream_idx], 0, sizeof(sinme[stream_idx]));
++ memset((char *)&sinhim[stream_idx], 0, sizeof(sinhim[stream_idx]));
+
+ #ifdef AF_INET6
+- bzero((char *)&sinme6[stream_idx], sizeof(sinme6[stream_idx]));
+- bzero((char *)&sinhim6[stream_idx], sizeof(sinhim6[stream_idx]));
++ memset((char *)&sinme6[stream_idx], 0, sizeof(sinme6[stream_idx]));
++ memset((char *)&sinhim6[stream_idx], 0, sizeof(sinhim6[stream_idx]));
+ #endif
+
+ if (((trans && !reverse) && (stream_idx > 0)) ||
+@@ -3028,15 +3028,15 @@
+ if (client) {
+ if (af == AF_INET) {
+ sinhim[stream_idx].sin_family = af;
+- bcopy((char *)&(((struct sockaddr_in *)res[stream_idx]->ai_addr)->sin_addr),
+- (char *)&sinhim[stream_idx].sin_addr.s_addr,
++ memcpy((char *)&sinhim[stream_idx].sin_addr.s_addr,
++ (char *)&(((struct sockaddr_in *)res[stream_idx]->ai_addr)->sin_addr),
+ sizeof(sinhim[stream_idx].sin_addr.s_addr));
+ }
+ #ifdef AF_INET6
+ else if (af == AF_INET6) {
+ sinhim6[stream_idx].sin6_family = af;
+- bcopy((char *)&(((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_addr),
+- (char *)&sinhim6[stream_idx].sin6_addr.s6_addr,
++ memcpy((char *)&sinhim6[stream_idx].sin6_addr.s6_addr,
++ (char *)&(((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_addr),
+ sizeof(sinhim6[stream_idx].sin6_addr.s6_addr));
+ sinhim6[stream_idx].sin6_scope_id = ((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_scope_id;
+ }
+@@ -3113,8 +3113,8 @@
+ * to the multicast group
+ */
+ if (af == AF_INET) {
+- bcopy((char *)&sinhim[1].sin_addr.s_addr,
+- (char *)&save_sinhim.sin_addr.s_addr,
++ memcpy((char *)&save_sinhim.sin_addr.s_addr,
++ (char *)&sinhim[1].sin_addr.s_addr,
+ sizeof(struct in_addr));
+ if (!client && (irvers >= 50505)) {
+ struct sockaddr_in peer;
+@@ -3124,8 +3124,8 @@
+ &peerlen) < 0) {
+ err("getpeername");
+ }
+- bcopy((char *)&peer.sin_addr.s_addr,
+- (char *)&sinhim[1].sin_addr.s_addr,
++ memcpy((char *)&sinhim[1].sin_addr.s_addr,
++ (char *)&peer.sin_addr.s_addr,
+ sizeof(struct in_addr));
+ }
+ else {
+@@ -3136,8 +3136,8 @@
+ &melen) < 0) {
+ err("getsockname");
+ }
+- bcopy((char *)&me.sin_addr.s_addr,
+- (char *)&sinhim[1].sin_addr.s_addr,
++ memcpy((char *)&sinhim[1].sin_addr.s_addr,
++ (char *)&me.sin_addr.s_addr,
+ sizeof(struct in_addr));
+ }
+ sinhim[1].sin_addr.s_addr &=
+@@ -4197,13 +4197,13 @@
+ &melen) < 0) {
+ err("getsockname");
+ }
+- bcopy((char *)&me.sin_addr.s_addr,
+- (char *)&mc_group.imr_multiaddr.s_addr,
++ memcpy((char *)&mc_group.imr_multiaddr.s_addr,
++ (char *)&me.sin_addr.s_addr,
+ sizeof(struct in_addr));
+ }
+ else {
+- bcopy((char *)&peer.sin_addr.s_addr,
+- (char *)&mc_group.imr_multiaddr.s_addr,
++ memcpy((char *)&mc_group.imr_multiaddr.s_addr,
++ (char *)&peer.sin_addr.s_addr,
+ sizeof(struct in_addr));
+ }
+ mc_group.imr_multiaddr.s_addr &= htonl(0xFFFFFF);
+@@ -4330,12 +4330,12 @@
+ if(udp) {
+ strcpy(buf, "BOD0");
+ if (multicast) {
+- bcopy((char *)&sinhim[1].sin_addr.s_addr,
+- (char *)&save_mc.sin_addr.s_addr,
+- sizeof(struct in_addr));
+- bcopy((char *)&save_sinhim.sin_addr.s_addr,
++ memcpy((char *)&save_mc.sin_addr.s_addr,
+ (char *)&sinhim[1].sin_addr.s_addr,
+ sizeof(struct in_addr));
++ memcpy((char *)&sinhim[1].sin_addr.s_addr,
++ (char *)&save_sinhim.sin_addr.s_addr,
++ sizeof(struct in_addr));
+ }
+ (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr start */
+ if (two_bod) {
+@@ -4344,8 +4344,8 @@
+ (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr start */
+ }
+ if (multicast) {
+- bcopy((char *)&save_mc.sin_addr.s_addr,
+- (char *)&sinhim[1].sin_addr.s_addr,
++ memcpy((char *)&sinhim[1].sin_addr.s_addr,
++ (char *)&save_mc.sin_addr.s_addr,
+ sizeof(struct in_addr));
+ }
+ if (timeout)
+@@ -4361,7 +4361,7 @@
+ fflush(stdout);
+ }
+ if (udplossinfo)
+- bcopy(&nbytes, buf + 24, 8);
++ memcpy(buf + 24, &nbytes, 8);
+ if (!udp && interval && !(format & NORETRANS) &&
+ ((retransinfo == 1) ||
+ ((retransinfo >= 2) &&
+@@ -4372,13 +4372,13 @@
+ tmp = 0x5254524Eu; /* "RTRN" */
+ else
+ tmp = 0x48525452u; /* "HRTR" */
+- bcopy(&nretrans, buf + 24, 4);
+- bcopy(&tmp, buf + 28, 4);
++ memcpy(buf + 24, &nretrans, 4);
++ memcpy(buf + 28, &tmp, 4);
+ }
+ else {
+ send_retrans = 0;
+ if (!udp)
+- bzero(buf + 24, 8);
++ memset(buf + 24, 0, 8);
+ }
+ if (nbuf == INT_MAX)
+ nbuf = ULLONG_MAX;
+@@ -4423,12 +4423,12 @@
+ nbytes += buflen;
+ cnt = 0;
+ if (udplossinfo)
+- bcopy(&nbytes, buf + 24, 8);
++ memcpy(buf + 24, &nbytes, 8);
+ if (send_retrans) {
+ nretrans = get_retrans(
+ fd[stream_idx + 1]);
+ nretrans -= iretrans;
+- bcopy(&nretrans, buf + 24, 4);
++ memcpy(buf + 24, &nretrans, 4);
+ }
+ stream_idx++;
+ stream_idx = stream_idx % nstream;
+@@ -4523,8 +4523,8 @@
+ nbytes += cnt;
+ if(udp) {
+ if (multicast)
+- bcopy((char *)&save_sinhim.sin_addr.s_addr,
+- (char *)&sinhim[1].sin_addr.s_addr,
++ memcpy((char *)&sinhim[1].sin_addr.s_addr,
++ (char *)&save_sinhim.sin_addr.s_addr,
+ sizeof(struct in_addr));
+ strcpy(buf, "EOD0");
+ (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr end */
+@@ -4532,7 +4532,7 @@
+ } else {
+ first_read = 1;
+ need_swap = 0;
+- bzero(buf + 24, 8);
++ memset(buf + 24, 0, 8);
+ if (udp) {
+ ntbytesc = 0;
+ got_eod0 = 0;
+@@ -4584,7 +4584,7 @@
+ * goes off right here */
+ if (udplossinfo) {
+ if (first_read) {
+- bcopy(buf + 24, &ntbytesc,
++ memcpy(&ntbytesc, buf + 24,
+ 8);
+ first_read = 0;
+ if (ntbytesc > 0x100000000ull)
+@@ -4598,7 +4598,7 @@
+ }
+ }
+ if (!need_swap)
+- bcopy(buf + 24, &ntbytesc,
++ memcpy(&ntbytesc, buf + 24,
+ 8);
+ else {
+ cp1 = (char *)&ntbytesc;
+@@ -4627,8 +4627,8 @@
+ uint32_t tmp;
+
+ first_read = 0;
+- bcopy(buf + 24, &nretrans, 4);
+- bcopy(buf + 28, &tmp, 4);
++ memcpy(&nretrans, buf + 24, 4);
++ memcpy(&tmp, buf + 28, 4);
+ if (tmp == 0x5254524Eu) {
+ /* "RTRN" */
+ retransinfo = 1;
+@@ -4661,7 +4661,7 @@
+ }
+ if (read_retrans) {
+ if (!need_swap)
+- bcopy(buf + 24, &nretrans,
++ memcpy(&nretrans, buf + 24,
+ 4);
+ else {
+ cp1 = (char *)&nretrans;
+@@ -5327,10 +5327,10 @@
+ itimer.it_interval.tv_usec = 0;
+ setitimer(ITIMER_REAL, &itimer, 0);
+ signal(SIGALRM, SIG_DFL);
+- bzero((char *)&frominet, sizeof(frominet));
+- bzero((char *)&clientaddr, sizeof(clientaddr));
++ memset((char *)&frominet, 0, sizeof(frominet));
++ memset((char *)&clientaddr, 0, sizeof(clientaddr));
+ #ifdef AF_INET6
+- bzero((char *)&clientaddr6, sizeof(clientaddr));
++ memset((char *)&clientaddr6, 0, sizeof(clientaddr));
+ clientscope6 = 0;
+ #endif
+ cput = 0.000001;
+++ /dev/null
-[PATCH] Replace susv3 legacy function with modern equivalents
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- nuttcp-6.1.2.c | 90 ++++++++++++++++++++++++++++-----------------------------
- 1 file changed, 45 insertions(+), 45 deletions(-)
-
-Index: nuttcp-6.1.2/nuttcp-6.1.2.c
-===================================================================
---- nuttcp-6.1.2.orig/nuttcp-6.1.2.c
-+++ nuttcp-6.1.2/nuttcp-6.1.2.c
-@@ -1925,11 +1925,11 @@
- if (udp && !haverateopt)
- rate = DEFAULT_UDP_RATE;
-
-- bzero((char *)&frominet, sizeof(frominet));
-- bzero((char *)&clientaddr, sizeof(clientaddr));
-+ memset((char *)&frominet, 0, sizeof(frominet));
-+ memset((char *)&clientaddr, 0, sizeof(clientaddr));
-
- #ifdef AF_INET6
-- bzero((char *)&clientaddr6, sizeof(clientaddr6));
-+ memset((char *)&clientaddr6, 0, sizeof(clientaddr6));
- clientscope6 = 0;
- #endif
-
-@@ -1985,7 +1985,7 @@
- }
-
- while (stream_idx <= nstream) {
-- bzero(&hints, sizeof(hints));
-+ memset(&hints, 0, sizeof(hints));
- res[stream_idx] = NULL;
- if (explicitaf) hints.ai_family = af;
- if ((cp2 = strchr(cp1, '/'))) {
-@@ -3013,12 +3013,12 @@
- if ((stream_idx > 0) && skip_data)
- break;
-
-- bzero((char *)&sinme[stream_idx], sizeof(sinme[stream_idx]));
-- bzero((char *)&sinhim[stream_idx], sizeof(sinhim[stream_idx]));
-+ memset((char *)&sinme[stream_idx], 0, sizeof(sinme[stream_idx]));
-+ memset((char *)&sinhim[stream_idx], 0, sizeof(sinhim[stream_idx]));
-
- #ifdef AF_INET6
-- bzero((char *)&sinme6[stream_idx], sizeof(sinme6[stream_idx]));
-- bzero((char *)&sinhim6[stream_idx], sizeof(sinhim6[stream_idx]));
-+ memset((char *)&sinme6[stream_idx], 0, sizeof(sinme6[stream_idx]));
-+ memset((char *)&sinhim6[stream_idx], 0, sizeof(sinhim6[stream_idx]));
- #endif
-
- if (((trans && !reverse) && (stream_idx > 0)) ||
-@@ -3028,15 +3028,15 @@
- if (client) {
- if (af == AF_INET) {
- sinhim[stream_idx].sin_family = af;
-- bcopy((char *)&(((struct sockaddr_in *)res[stream_idx]->ai_addr)->sin_addr),
-- (char *)&sinhim[stream_idx].sin_addr.s_addr,
-+ memcpy((char *)&sinhim[stream_idx].sin_addr.s_addr,
-+ (char *)&(((struct sockaddr_in *)res[stream_idx]->ai_addr)->sin_addr),
- sizeof(sinhim[stream_idx].sin_addr.s_addr));
- }
- #ifdef AF_INET6
- else if (af == AF_INET6) {
- sinhim6[stream_idx].sin6_family = af;
-- bcopy((char *)&(((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_addr),
-- (char *)&sinhim6[stream_idx].sin6_addr.s6_addr,
-+ memcpy((char *)&sinhim6[stream_idx].sin6_addr.s6_addr,
-+ (char *)&(((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_addr),
- sizeof(sinhim6[stream_idx].sin6_addr.s6_addr));
- sinhim6[stream_idx].sin6_scope_id = ((struct sockaddr_in6 *)res[stream_idx]->ai_addr)->sin6_scope_id;
- }
-@@ -3113,8 +3113,8 @@
- * to the multicast group
- */
- if (af == AF_INET) {
-- bcopy((char *)&sinhim[1].sin_addr.s_addr,
-- (char *)&save_sinhim.sin_addr.s_addr,
-+ memcpy((char *)&save_sinhim.sin_addr.s_addr,
-+ (char *)&sinhim[1].sin_addr.s_addr,
- sizeof(struct in_addr));
- if (!client && (irvers >= 50505)) {
- struct sockaddr_in peer;
-@@ -3124,8 +3124,8 @@
- &peerlen) < 0) {
- err("getpeername");
- }
-- bcopy((char *)&peer.sin_addr.s_addr,
-- (char *)&sinhim[1].sin_addr.s_addr,
-+ memcpy((char *)&sinhim[1].sin_addr.s_addr,
-+ (char *)&peer.sin_addr.s_addr,
- sizeof(struct in_addr));
- }
- else {
-@@ -3136,8 +3136,8 @@
- &melen) < 0) {
- err("getsockname");
- }
-- bcopy((char *)&me.sin_addr.s_addr,
-- (char *)&sinhim[1].sin_addr.s_addr,
-+ memcpy((char *)&sinhim[1].sin_addr.s_addr,
-+ (char *)&me.sin_addr.s_addr,
- sizeof(struct in_addr));
- }
- sinhim[1].sin_addr.s_addr &=
-@@ -4197,13 +4197,13 @@
- &melen) < 0) {
- err("getsockname");
- }
-- bcopy((char *)&me.sin_addr.s_addr,
-- (char *)&mc_group.imr_multiaddr.s_addr,
-+ memcpy((char *)&mc_group.imr_multiaddr.s_addr,
-+ (char *)&me.sin_addr.s_addr,
- sizeof(struct in_addr));
- }
- else {
-- bcopy((char *)&peer.sin_addr.s_addr,
-- (char *)&mc_group.imr_multiaddr.s_addr,
-+ memcpy((char *)&mc_group.imr_multiaddr.s_addr,
-+ (char *)&peer.sin_addr.s_addr,
- sizeof(struct in_addr));
- }
- mc_group.imr_multiaddr.s_addr &= htonl(0xFFFFFF);
-@@ -4330,12 +4330,12 @@
- if(udp) {
- strcpy(buf, "BOD0");
- if (multicast) {
-- bcopy((char *)&sinhim[1].sin_addr.s_addr,
-- (char *)&save_mc.sin_addr.s_addr,
-- sizeof(struct in_addr));
-- bcopy((char *)&save_sinhim.sin_addr.s_addr,
-+ memcpy((char *)&save_mc.sin_addr.s_addr,
- (char *)&sinhim[1].sin_addr.s_addr,
- sizeof(struct in_addr));
-+ memcpy((char *)&sinhim[1].sin_addr.s_addr,
-+ (char *)&save_sinhim.sin_addr.s_addr,
-+ sizeof(struct in_addr));
- }
- (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr start */
- if (two_bod) {
-@@ -4344,8 +4344,8 @@
- (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr start */
- }
- if (multicast) {
-- bcopy((char *)&save_mc.sin_addr.s_addr,
-- (char *)&sinhim[1].sin_addr.s_addr,
-+ memcpy((char *)&sinhim[1].sin_addr.s_addr,
-+ (char *)&save_mc.sin_addr.s_addr,
- sizeof(struct in_addr));
- }
- if (timeout)
-@@ -4361,7 +4361,7 @@
- fflush(stdout);
- }
- if (udplossinfo)
-- bcopy(&nbytes, buf + 24, 8);
-+ memcpy(buf + 24, &nbytes, 8);
- if (!udp && interval && !(format & NORETRANS) &&
- ((retransinfo == 1) ||
- ((retransinfo >= 2) &&
-@@ -4372,13 +4372,13 @@
- tmp = 0x5254524Eu; /* "RTRN" */
- else
- tmp = 0x48525452u; /* "HRTR" */
-- bcopy(&nretrans, buf + 24, 4);
-- bcopy(&tmp, buf + 28, 4);
-+ memcpy(buf + 24, &nretrans, 4);
-+ memcpy(buf + 28, &tmp, 4);
- }
- else {
- send_retrans = 0;
- if (!udp)
-- bzero(buf + 24, 8);
-+ memset(buf + 24, 0, 8);
- }
- if (nbuf == INT_MAX)
- nbuf = ULLONG_MAX;
-@@ -4423,12 +4423,12 @@
- nbytes += buflen;
- cnt = 0;
- if (udplossinfo)
-- bcopy(&nbytes, buf + 24, 8);
-+ memcpy(buf + 24, &nbytes, 8);
- if (send_retrans) {
- nretrans = get_retrans(
- fd[stream_idx + 1]);
- nretrans -= iretrans;
-- bcopy(&nretrans, buf + 24, 4);
-+ memcpy(buf + 24, &nretrans, 4);
- }
- stream_idx++;
- stream_idx = stream_idx % nstream;
-@@ -4523,8 +4523,8 @@
- nbytes += cnt;
- if(udp) {
- if (multicast)
-- bcopy((char *)&save_sinhim.sin_addr.s_addr,
-- (char *)&sinhim[1].sin_addr.s_addr,
-+ memcpy((char *)&sinhim[1].sin_addr.s_addr,
-+ (char *)&save_sinhim.sin_addr.s_addr,
- sizeof(struct in_addr));
- strcpy(buf, "EOD0");
- (void)Nwrite( fd[stream_idx + 1], buf, 4 ); /* rcvr end */
-@@ -4532,7 +4532,7 @@
- } else {
- first_read = 1;
- need_swap = 0;
-- bzero(buf + 24, 8);
-+ memset(buf + 24, 0, 8);
- if (udp) {
- ntbytesc = 0;
- got_eod0 = 0;
-@@ -4584,7 +4584,7 @@
- * goes off right here */
- if (udplossinfo) {
- if (first_read) {
-- bcopy(buf + 24, &ntbytesc,
-+ memcpy(&ntbytesc, buf + 24,
- 8);
- first_read = 0;
- if (ntbytesc > 0x100000000ull)
-@@ -4598,7 +4598,7 @@
- }
- }
- if (!need_swap)
-- bcopy(buf + 24, &ntbytesc,
-+ memcpy(&ntbytesc, buf + 24,
- 8);
- else {
- cp1 = (char *)&ntbytesc;
-@@ -4627,8 +4627,8 @@
- uint32_t tmp;
-
- first_read = 0;
-- bcopy(buf + 24, &nretrans, 4);
-- bcopy(buf + 28, &tmp, 4);
-+ memcpy(&nretrans, buf + 24, 4);
-+ memcpy(&tmp, buf + 28, 4);
- if (tmp == 0x5254524Eu) {
- /* "RTRN" */
- retransinfo = 1;
-@@ -4661,7 +4661,7 @@
- }
- if (read_retrans) {
- if (!need_swap)
-- bcopy(buf + 24, &nretrans,
-+ memcpy(&nretrans, buf + 24,
- 4);
- else {
- cp1 = (char *)&nretrans;
-@@ -5327,10 +5327,10 @@
- itimer.it_interval.tv_usec = 0;
- setitimer(ITIMER_REAL, &itimer, 0);
- signal(SIGALRM, SIG_DFL);
-- bzero((char *)&frominet, sizeof(frominet));
-- bzero((char *)&clientaddr, sizeof(clientaddr));
-+ memset((char *)&frominet, 0, sizeof(frominet));
-+ memset((char *)&clientaddr, 0, sizeof(clientaddr));
- #ifdef AF_INET6
-- bzero((char *)&clientaddr6, sizeof(clientaddr));
-+ memset((char *)&clientaddr6, 0, sizeof(clientaddr));
- clientscope6 = 0;
- #endif
- cput = 0.000001;
--- /dev/null
+Remove the OCF linux kernel extension instead opting to build ocf-linux
+modules out of tree.
+This is easier for users since no kernel config tweaking is required.
+On the downside the OCF drivers can't be used, but then all of the
+kernel crypto drivers are available to users via cryptosoft which is
+preferred.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura ocf-linux-20120127.orig/ocf/Makefile ocf-linux-20120127/ocf/Makefile
+--- ocf-linux-20120127.orig/ocf/Makefile 2013-04-27 09:27:04.413911866 -0300
++++ ocf-linux-20120127/ocf/Makefile 2013-04-27 09:27:31.131775576 -0300
+@@ -2,6 +2,7 @@
+ -include $(ROOTDIR)/modules/.config
+
+ OCF_OBJS = crypto.o criov.o
++KDIR ?= /lib/modules/$(shell uname -r)/build
+
+ ifdef CONFIG_OCF_RANDOMHARVEST
+ OCF_OBJS += random.o
+@@ -78,20 +79,13 @@
+ #
+
+ ocf_make:
+- make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m
+- make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m
+- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_BENCH=m
+- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_OCFNULL=m
+- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_HIFN=m
++ make -C $(KDIR) M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m CONFIG_OCF_BENCH=m CONFIG_OCF_OCFNULL=m
+
+ ocf_modules:
+ $(MAKE) ocf_make OCF_TARGET=modules
+
+ ocf_install:
+ $(MAKE) ocf_make OCF_TARGET="modules modules_install"
+- depmod
+- mkdir -p /usr/include/crypto
+- cp cryptodev.h /usr/include/crypto/.
+
+ #
+ # generate full kernel patches for 2.4 and 2.6 kernels to make patching
+++ /dev/null
-Remove the OCF linux kernel extension instead opting to build ocf-linux
-modules out of tree.
-This is easier for users since no kernel config tweaking is required.
-On the downside the OCF drivers can't be used, but then all of the
-kernel crypto drivers are available to users via cryptosoft which is
-preferred.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura ocf-linux-20120127.orig/ocf/Makefile ocf-linux-20120127/ocf/Makefile
---- ocf-linux-20120127.orig/ocf/Makefile 2013-04-27 09:27:04.413911866 -0300
-+++ ocf-linux-20120127/ocf/Makefile 2013-04-27 09:27:31.131775576 -0300
-@@ -2,6 +2,7 @@
- -include $(ROOTDIR)/modules/.config
-
- OCF_OBJS = crypto.o criov.o
-+KDIR ?= /lib/modules/$(shell uname -r)/build
-
- ifdef CONFIG_OCF_RANDOMHARVEST
- OCF_OBJS += random.o
-@@ -78,20 +79,13 @@
- #
-
- ocf_make:
-- make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m
-- make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m
-- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_BENCH=m
-- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_OCFNULL=m
-- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_HIFN=m
-+ make -C $(KDIR) M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m CONFIG_OCF_BENCH=m CONFIG_OCF_OCFNULL=m
-
- ocf_modules:
- $(MAKE) ocf_make OCF_TARGET=modules
-
- ocf_install:
- $(MAKE) ocf_make OCF_TARGET="modules modules_install"
-- depmod
-- mkdir -p /usr/include/crypto
-- cp cryptodev.h /usr/include/crypto/.
-
- #
- # generate full kernel patches for 2.4 and 2.6 kernels to make patching
--- /dev/null
+[PATCH] fix build on uClibc without UCLIBC_HAS_BACKTRACE
+
+Backtrace support is only used for logging on signal errors, which
+isn't really critical, so simply remove backtrace info if not
+available in uClibc.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/log.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+Index: ofono-1.5/src/log.c
+===================================================================
+--- ofono-1.5.orig/src/log.c
++++ ofono-1.5/src/log.c
+@@ -30,7 +30,12 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <syslog.h>
++#include <features.h>
++/* backtrace support is optional on uClibc */
++#if !(defined(__UCLIBC__) && !defined (__UCLIBC_HAS_BACKTRACE__))
++#define HAVE_BACKTRACE
+ #include <execinfo.h>
++#endif
+ #include <dlfcn.h>
+
+ #include "ofono.h"
+@@ -115,6 +120,7 @@
+
+ static void print_backtrace(unsigned int offset)
+ {
++#ifdef HAVE_BACKTRACE
+ void *frames[99];
+ size_t n_ptrs;
+ unsigned int i;
+@@ -213,6 +219,7 @@
+
+ close(outfd[1]);
+ close(infd[0]);
++#endif /* HAVE_BACKTRACE */
+ }
+
+ static void signal_handler(int signo)
+++ /dev/null
-[PATCH] fix build on uClibc without UCLIBC_HAS_BACKTRACE
-
-Backtrace support is only used for logging on signal errors, which
-isn't really critical, so simply remove backtrace info if not
-available in uClibc.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/log.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-Index: ofono-1.5/src/log.c
-===================================================================
---- ofono-1.5.orig/src/log.c
-+++ ofono-1.5/src/log.c
-@@ -30,7 +30,12 @@
- #include <stdlib.h>
- #include <string.h>
- #include <syslog.h>
-+#include <features.h>
-+/* backtrace support is optional on uClibc */
-+#if !(defined(__UCLIBC__) && !defined (__UCLIBC_HAS_BACKTRACE__))
-+#define HAVE_BACKTRACE
- #include <execinfo.h>
-+#endif
- #include <dlfcn.h>
-
- #include "ofono.h"
-@@ -115,6 +120,7 @@
-
- static void print_backtrace(unsigned int offset)
- {
-+#ifdef HAVE_BACKTRACE
- void *frames[99];
- size_t n_ptrs;
- unsigned int i;
-@@ -213,6 +219,7 @@
-
- close(outfd[1]);
- close(infd[0]);
-+#endif /* HAVE_BACKTRACE */
- }
-
- static void signal_handler(int signo)
--- /dev/null
+From b0a1f12349bee43040a889c7e74873cfb253b9d8 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Thu, 6 Feb 2014 21:42:50 +0100
+Subject: [PATCH] fix makefile
+
+- allow to extend CFLAGS and CC_LDFLAGS
+- remove hard-coded include dirs. and lib. dirs. (which pointed to some
+ location in the host system)
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ Makefile | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 92a2cc0..1b54175 100755
+--- a/Makefile
++++ b/Makefile
+@@ -37,9 +37,9 @@ MYSQLHISTLOGOBJ = mysqlhistlog2300.o rw2300.o linux2300.o win2300.o
+
+ VERSION = 1.11
+
+-CFLAGS = -Wall -O3 -DVERSION=\"$(VERSION)\"
+-CC_LDFLAGS = -lm
+-CC_WINFLAG =
++override CFLAGS += -Wall -O3 -DVERSION=\"$(VERSION)\"
++override CC_LDFLAGS += -lm
++CC_WINFLAG =
+ # For Windows - comment the two line above and un-comment the two lines below.
+ #CC_LDFLAGS = -lm -lwsock32
+ #CC_WINFLAG = -mwindows
+@@ -80,7 +80,7 @@ xml2300 : $(XMLOBJ)
+ $(CC) $(CFLAGS) -o $@ $(XMLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
+
+ mysql2300:
+- $(CC) $(CFLAGS) -o mysql2300 mysql2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
++ $(CC) $(CFLAGS) -o mysql2300 mysql2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG)
+
+ pgsql2300: $(PGSQLOBJ)
+ $(CC) $(CFLAGS) -o $@ $(PGSQLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/pgsql -L/usr/lib/pgsql -lpq
+@@ -95,7 +95,7 @@ minmax2300: $(MINMAXOBJ)
+ $(CC) $(CFLAGS) -o $@ $(MINMAXOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
+
+ mysqlhistlog2300 :
+- $(CC) $(CFLAGS) -o mysqlhistlog2300 mysqlhistlog2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
++ $(CC) $(CFLAGS) -o mysqlhistlog2300 mysqlhistlog2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG)
+
+
+ install:
+--
+1.8.5.3
+
+++ /dev/null
-From b0a1f12349bee43040a889c7e74873cfb253b9d8 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Thu, 6 Feb 2014 21:42:50 +0100
-Subject: [PATCH] fix makefile
-
-- allow to extend CFLAGS and CC_LDFLAGS
-- remove hard-coded include dirs. and lib. dirs. (which pointed to some
- location in the host system)
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- Makefile | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 92a2cc0..1b54175 100755
---- a/Makefile
-+++ b/Makefile
-@@ -37,9 +37,9 @@ MYSQLHISTLOGOBJ = mysqlhistlog2300.o rw2300.o linux2300.o win2300.o
-
- VERSION = 1.11
-
--CFLAGS = -Wall -O3 -DVERSION=\"$(VERSION)\"
--CC_LDFLAGS = -lm
--CC_WINFLAG =
-+override CFLAGS += -Wall -O3 -DVERSION=\"$(VERSION)\"
-+override CC_LDFLAGS += -lm
-+CC_WINFLAG =
- # For Windows - comment the two line above and un-comment the two lines below.
- #CC_LDFLAGS = -lm -lwsock32
- #CC_WINFLAG = -mwindows
-@@ -80,7 +80,7 @@ xml2300 : $(XMLOBJ)
- $(CC) $(CFLAGS) -o $@ $(XMLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
-
- mysql2300:
-- $(CC) $(CFLAGS) -o mysql2300 mysql2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
-+ $(CC) $(CFLAGS) -o mysql2300 mysql2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG)
-
- pgsql2300: $(PGSQLOBJ)
- $(CC) $(CFLAGS) -o $@ $(PGSQLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/pgsql -L/usr/lib/pgsql -lpq
-@@ -95,7 +95,7 @@ minmax2300: $(MINMAXOBJ)
- $(CC) $(CFLAGS) -o $@ $(MINMAXOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
-
- mysqlhistlog2300 :
-- $(CC) $(CFLAGS) -o mysqlhistlog2300 mysqlhistlog2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
-+ $(CC) $(CFLAGS) -o mysqlhistlog2300 mysqlhistlog2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG)
-
-
- install:
---
-1.8.5.3
-
--- /dev/null
+Fix libusb check when cross-compiling.
+
+Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+Index: openobex-1.5/acinclude.m4
+===================================================================
+--- openobex-1.5.orig/acinclude.m4 2010-06-16 10:32:47.000000000 +0200
++++ openobex-1.5/acinclude.m4 2010-06-16 10:35:33.000000000 +0200
+@@ -158,7 +158,7 @@
+ ;;
+ *)
+ PKG_CHECK_MODULES(USB, libusb, usb_lib_found=yes, AC_MSG_RESULT(no))
+- AC_CHECK_FILE(${prefix}/lib/pkgconfig/libusb.pc, REQUIRES="libusb")
++ REQUIRES="libusb"
+ ;;
+ esac
+ AC_SUBST(USB_CFLAGS)
--- /dev/null
+obex_test_cable.c: avoid to use SuSv3 LEGACY APIs
+
+Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+Index: openobex-1.5/apps/obex_test_cable.c
+===================================================================
+--- openobex-1.5.orig/apps/obex_test_cable.c 2009-02-08 19:30:22.000000000 +0100
++++ openobex-1.5/apps/obex_test_cable.c 2010-06-16 11:11:05.000000000 +0200
+@@ -113,9 +113,9 @@
+ if(total == sizeof(tmpbuf))
+ return -1;
+
+- if( (answer = index(tmpbuf, '\n')) ) {
++ if( (answer = strchr(tmpbuf, '\n')) ) {
+ // Remove first line (echo)
+- if( (answer_end = index(answer+1, '\n')) ) {
++ if( (answer_end = strchr(answer+1, '\n')) ) {
+ // Found end of answer
+ done = 1;
+ }
+@@ -178,7 +178,7 @@
+ }
+
+ tcgetattr(gt->ttyfd, >->oldtio);
+- bzero(>->newtio, sizeof(struct termios));
++ memset(>->newtio, 0, sizeof(struct termios));
+ gt->newtio.c_cflag = B115200 | CS8 | CREAD | CRTSCTS;
+ gt->newtio.c_iflag = IGNPAR;
+ gt->newtio.c_oflag = 0;
+++ /dev/null
-Fix libusb check when cross-compiling.
-
-Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
-Index: openobex-1.5/acinclude.m4
-===================================================================
---- openobex-1.5.orig/acinclude.m4 2010-06-16 10:32:47.000000000 +0200
-+++ openobex-1.5/acinclude.m4 2010-06-16 10:35:33.000000000 +0200
-@@ -158,7 +158,7 @@
- ;;
- *)
- PKG_CHECK_MODULES(USB, libusb, usb_lib_found=yes, AC_MSG_RESULT(no))
-- AC_CHECK_FILE(${prefix}/lib/pkgconfig/libusb.pc, REQUIRES="libusb")
-+ REQUIRES="libusb"
- ;;
- esac
- AC_SUBST(USB_CFLAGS)
+++ /dev/null
-obex_test_cable.c: avoid to use SuSv3 LEGACY APIs
-
-Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
-Index: openobex-1.5/apps/obex_test_cable.c
-===================================================================
---- openobex-1.5.orig/apps/obex_test_cable.c 2009-02-08 19:30:22.000000000 +0100
-+++ openobex-1.5/apps/obex_test_cable.c 2010-06-16 11:11:05.000000000 +0200
-@@ -113,9 +113,9 @@
- if(total == sizeof(tmpbuf))
- return -1;
-
-- if( (answer = index(tmpbuf, '\n')) ) {
-+ if( (answer = strchr(tmpbuf, '\n')) ) {
- // Remove first line (echo)
-- if( (answer_end = index(answer+1, '\n')) ) {
-+ if( (answer_end = strchr(answer+1, '\n')) ) {
- // Found end of answer
- done = 1;
- }
-@@ -178,7 +178,7 @@
- }
-
- tcgetattr(gt->ttyfd, >->oldtio);
-- bzero(>->newtio, sizeof(struct termios));
-+ memset(>->newtio, 0, sizeof(struct termios));
- gt->newtio.c_cflag = B115200 | CS8 | CREAD | CRTSCTS;
- gt->newtio.c_iflag = IGNPAR;
- gt->newtio.c_oflag = 0;
--- /dev/null
+From e04f5c20fc1536f8e6d4faf32f2f4657d441f7c8 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Mon, 14 Apr 2014 17:54:37 +0200
+Subject: [PATCH] version_generator.py: make it python3 compliant
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ openpgm/pgm/version_generator.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/openpgm/pgm/version_generator.py b/openpgm/pgm/version_generator.py
+index 2265480..c31376f 100755
+--- a/openpgm/pgm/version_generator.py
++++ b/openpgm/pgm/version_generator.py
+@@ -1,5 +1,7 @@
+ #!/usr/bin/python
+
++from __future__ import print_function
++
+ import os
+ import platform
+ import time
+@@ -8,7 +10,7 @@ build_date = time.strftime ("%Y-%m-%d")
+ build_time = time.strftime ("%H:%M:%S")
+ build_rev = filter (str.isdigit, "$Revision: 1369 $")
+
+-print """
++print("""
+ /* vim:ts=8:sts=8:sw=4:noai:noexpandtab
+ *
+ * OpenPGM version.
+@@ -47,6 +49,6 @@ const char* pgm_build_revision = "%s";
+
+
+ /* eof */
+-"""%(build_date, build_time, platform.system(), platform.machine(), build_rev)
++"""%(build_date, build_time, platform.system(), platform.machine(), build_rev))
+
+ # end of file
+--
+1.9.2
+
--- /dev/null
+configure.ac: cross-compilation fix
+
+This patch enables to configure the package when cross-compiling in a way
+recommended by Autoconf manual (see manual for version 2.69, Section 6.6
+Checking Runtime Behavior).
+
+Signed-off-by: Alexander Lukichev <alexander.lukichev@gmail.com>
+
+--- 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(
+++ /dev/null
-From e04f5c20fc1536f8e6d4faf32f2f4657d441f7c8 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Mon, 14 Apr 2014 17:54:37 +0200
-Subject: [PATCH] version_generator.py: make it python3 compliant
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- openpgm/pgm/version_generator.py | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/openpgm/pgm/version_generator.py b/openpgm/pgm/version_generator.py
-index 2265480..c31376f 100755
---- a/openpgm/pgm/version_generator.py
-+++ b/openpgm/pgm/version_generator.py
-@@ -1,5 +1,7 @@
- #!/usr/bin/python
-
-+from __future__ import print_function
-+
- import os
- import platform
- import time
-@@ -8,7 +10,7 @@ build_date = time.strftime ("%Y-%m-%d")
- build_time = time.strftime ("%H:%M:%S")
- build_rev = filter (str.isdigit, "$Revision: 1369 $")
-
--print """
-+print("""
- /* vim:ts=8:sts=8:sw=4:noai:noexpandtab
- *
- * OpenPGM version.
-@@ -47,6 +49,6 @@ const char* pgm_build_revision = "%s";
-
-
- /* eof */
--"""%(build_date, build_time, platform.system(), platform.machine(), build_rev)
-+"""%(build_date, build_time, platform.system(), platform.machine(), build_rev))
-
- # end of file
---
-1.9.2
-
+++ /dev/null
-configure.ac: cross-compilation fix
-
-This patch enables to configure the package when cross-compiling in a way
-recommended by Autoconf manual (see manual for version 2.69, Section 6.6
-Checking Runtime Behavior).
-
-Signed-off-by: Alexander Lukichev <alexander.lukichev@gmail.com>
-
---- 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(
--- /dev/null
+When PAM is enabled, openssh makes its own static versions of pthreads
+functions. But when built with a uclibc toolchain, pthreads.h gets
+indirectly included. The clashing exported and static definitions of
+the pthreads functions then cause a compile error. This patch fixes
+the problem by changing the static pthread function names with macros
+when the static functions are defined.
+
+Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
+
+diff -urN openssh-6.1p1.orig/auth-pam.c openssh-6.1p1/auth-pam.c
+--- openssh-6.1p1.orig/auth-pam.c 2009-07-12 08:07:21.000000000 -0400
++++ openssh-6.1p1/auth-pam.c 2012-09-15 19:49:47.677288199 -0400
+@@ -166,6 +166,7 @@
+ sigdie("PAM: authentication thread exited uncleanly");
+ }
+
++#define pthread_exit pthread_exit_AVOID_UCLIBC_PTHREAD_CLASH
+ /* ARGSUSED */
+ static void
+ pthread_exit(void *value)
+@@ -173,6 +174,7 @@
+ _exit(0);
+ }
+
++#define pthread_create pthread_create_AVOID_UCLIBC_PTHREAD_CLASH
+ /* ARGSUSED */
+ static int
+ pthread_create(sp_pthread_t *thread, const void *attr,
+@@ -200,6 +202,7 @@
+ }
+ }
+
++#define pthread_cancel pthread_cancel_AVOID_UCLIBC_PTHREAD_CLASH
+ static int
+ pthread_cancel(sp_pthread_t thread)
+ {
+@@ -207,6 +210,7 @@
+ return (kill(thread, SIGTERM));
+ }
+
++#define pthread_join pthread_join_AVOID_UCLIBC_PTHREAD_CLASH
+ /* ARGSUSED */
+ static int
+ pthread_join(sp_pthread_t thread, void **value)
--- /dev/null
+diff -ru openssh-6.6p1.org/channels.c openssh-6.6p1/channels.c
+--- openssh-6.6p1.org/channels.c 2014-02-27 00:18:33.000000000 +0100
++++ openssh-6.6p1/channels.c 2014-09-12 05:33:43.791424676 +0200
+@@ -41,6 +41,7 @@
+
+ #include "includes.h"
+
++#include <sys/param.h>
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+ #include <sys/un.h>
+diff -ru openssh-6.6p1.org/openbsd-compat/bsd-poll.c openssh-6.6p1/openbsd-compat/bsd-poll.c
+--- openssh-6.6p1.org/openbsd-compat/bsd-poll.c 2014-02-06 00:44:13.000000000 +0100
++++ openssh-6.6p1/openbsd-compat/bsd-poll.c 2014-09-12 05:39:35.580947451 +0200
+@@ -19,6 +19,7 @@
+ #include "includes.h"
+ #if !defined(HAVE_POLL)
+
++#include <sys/param.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #ifdef HAVE_SYS_SELECT_H
+diff -ru openssh-6.6p1.org/sshconnect.c openssh-6.6p1/sshconnect.c
+--- openssh-6.6p1.org/sshconnect.c 2014-02-06 23:24:34.000000000 +0100
++++ openssh-6.6p1/sshconnect.c 2014-09-12 05:39:57.372236592 +0200
+@@ -15,6 +15,7 @@
+
+ #include "includes.h"
+
++#include <sys/param.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <sys/stat.h>
+diff -ru openssh-6.6p1.org/sshd.c openssh-6.6p1/sshd.c
+--- openssh-6.6p1.org/sshd.c 2014-02-27 00:20:08.000000000 +0100
++++ openssh-6.6p1/sshd.c 2014-09-12 05:42:20.233576519 +0200
+@@ -44,6 +44,7 @@
+
+ #include "includes.h"
+
++#include <sys/param.h>
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
+diff -ru openssh-6.6p1.org/ssh-keyscan.c openssh-6.6p1/ssh-keyscan.c
+--- openssh-6.6p1.org/ssh-keyscan.c 2013-12-07 01:24:02.000000000 +0100
++++ openssh-6.6p1/ssh-keyscan.c 2014-09-12 05:41:03.102092462 +0200
+@@ -10,6 +10,7 @@
+ #include "includes.h"
+
+ #include "openbsd-compat/sys-queue.h"
++#include <sys/param.h>
+ #include <sys/resource.h>
+ #ifdef HAVE_SYS_TIME_H
+ # include <sys/time.h>
+diff -ru openssh-6.6p1.org/ssh-pkcs11-helper.c openssh-6.6p1/ssh-pkcs11-helper.c
+--- openssh-6.6p1.org/ssh-pkcs11-helper.c 2013-12-05 00:23:21.000000000 +0100
++++ openssh-6.6p1/ssh-pkcs11-helper.c 2014-09-12 05:40:20.488482522 +0200
+@@ -17,6 +17,7 @@
+
+ #include "includes.h"
+
++#include <sys/param.h>
+ #include <sys/types.h>
+ #ifdef HAVE_SYS_TIME_H
+ # include <sys/time.h>
+++ /dev/null
-When PAM is enabled, openssh makes its own static versions of pthreads
-functions. But when built with a uclibc toolchain, pthreads.h gets
-indirectly included. The clashing exported and static definitions of
-the pthreads functions then cause a compile error. This patch fixes
-the problem by changing the static pthread function names with macros
-when the static functions are defined.
-
-Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
-
-diff -urN openssh-6.1p1.orig/auth-pam.c openssh-6.1p1/auth-pam.c
---- openssh-6.1p1.orig/auth-pam.c 2009-07-12 08:07:21.000000000 -0400
-+++ openssh-6.1p1/auth-pam.c 2012-09-15 19:49:47.677288199 -0400
-@@ -166,6 +166,7 @@
- sigdie("PAM: authentication thread exited uncleanly");
- }
-
-+#define pthread_exit pthread_exit_AVOID_UCLIBC_PTHREAD_CLASH
- /* ARGSUSED */
- static void
- pthread_exit(void *value)
-@@ -173,6 +174,7 @@
- _exit(0);
- }
-
-+#define pthread_create pthread_create_AVOID_UCLIBC_PTHREAD_CLASH
- /* ARGSUSED */
- static int
- pthread_create(sp_pthread_t *thread, const void *attr,
-@@ -200,6 +202,7 @@
- }
- }
-
-+#define pthread_cancel pthread_cancel_AVOID_UCLIBC_PTHREAD_CLASH
- static int
- pthread_cancel(sp_pthread_t thread)
- {
-@@ -207,6 +210,7 @@
- return (kill(thread, SIGTERM));
- }
-
-+#define pthread_join pthread_join_AVOID_UCLIBC_PTHREAD_CLASH
- /* ARGSUSED */
- static int
- pthread_join(sp_pthread_t thread, void **value)
+++ /dev/null
-diff -ru openssh-6.6p1.org/channels.c openssh-6.6p1/channels.c
---- openssh-6.6p1.org/channels.c 2014-02-27 00:18:33.000000000 +0100
-+++ openssh-6.6p1/channels.c 2014-09-12 05:33:43.791424676 +0200
-@@ -41,6 +41,7 @@
-
- #include "includes.h"
-
-+#include <sys/param.h>
- #include <sys/types.h>
- #include <sys/ioctl.h>
- #include <sys/un.h>
-diff -ru openssh-6.6p1.org/openbsd-compat/bsd-poll.c openssh-6.6p1/openbsd-compat/bsd-poll.c
---- openssh-6.6p1.org/openbsd-compat/bsd-poll.c 2014-02-06 00:44:13.000000000 +0100
-+++ openssh-6.6p1/openbsd-compat/bsd-poll.c 2014-09-12 05:39:35.580947451 +0200
-@@ -19,6 +19,7 @@
- #include "includes.h"
- #if !defined(HAVE_POLL)
-
-+#include <sys/param.h>
- #include <sys/types.h>
- #include <sys/time.h>
- #ifdef HAVE_SYS_SELECT_H
-diff -ru openssh-6.6p1.org/sshconnect.c openssh-6.6p1/sshconnect.c
---- openssh-6.6p1.org/sshconnect.c 2014-02-06 23:24:34.000000000 +0100
-+++ openssh-6.6p1/sshconnect.c 2014-09-12 05:39:57.372236592 +0200
-@@ -15,6 +15,7 @@
-
- #include "includes.h"
-
-+#include <sys/param.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <sys/stat.h>
-diff -ru openssh-6.6p1.org/sshd.c openssh-6.6p1/sshd.c
---- openssh-6.6p1.org/sshd.c 2014-02-27 00:20:08.000000000 +0100
-+++ openssh-6.6p1/sshd.c 2014-09-12 05:42:20.233576519 +0200
-@@ -44,6 +44,7 @@
-
- #include "includes.h"
-
-+#include <sys/param.h>
- #include <sys/types.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
-diff -ru openssh-6.6p1.org/ssh-keyscan.c openssh-6.6p1/ssh-keyscan.c
---- openssh-6.6p1.org/ssh-keyscan.c 2013-12-07 01:24:02.000000000 +0100
-+++ openssh-6.6p1/ssh-keyscan.c 2014-09-12 05:41:03.102092462 +0200
-@@ -10,6 +10,7 @@
- #include "includes.h"
-
- #include "openbsd-compat/sys-queue.h"
-+#include <sys/param.h>
- #include <sys/resource.h>
- #ifdef HAVE_SYS_TIME_H
- # include <sys/time.h>
-diff -ru openssh-6.6p1.org/ssh-pkcs11-helper.c openssh-6.6p1/ssh-pkcs11-helper.c
---- openssh-6.6p1.org/ssh-pkcs11-helper.c 2013-12-05 00:23:21.000000000 +0100
-+++ openssh-6.6p1/ssh-pkcs11-helper.c 2014-09-12 05:40:20.488482522 +0200
-@@ -17,6 +17,7 @@
-
- #include "includes.h"
-
-+#include <sys/param.h>
- #include <sys/types.h>
- #ifdef HAVE_SYS_TIME_H
- # include <sys/time.h>
--- /dev/null
+lib/misc/msgList.c: missing #ifdef
+
+This macro checks for BSD style printf(), which is not present
+when compiling for uClibc. The linked functions are unnecessary in
+this case, and they break compilation.
+
+Signed-off-by: Karoly Kasza <kaszak@gmail.com>
+
+--- open-vm-tools-9.4.6-1770165.orig/lib/misc/msgList.c 2014-07-02 00:21:14.000000000 +0200
++++ open-vm-tools-9.4.6-1770165/lib/misc/msgList.c 2014-07-29 13:40:40.000000000 +0200
+@@ -487,6 +487,7 @@
+ return messages->id;
+ }
+
++#ifdef HAS_BSD_PRINTF
+
+ /*
+ *----------------------------------------------------------------------
+@@ -566,6 +567,7 @@
+ }
+ }
+
++#endif
+
+ /*
+ *----------------------------------------------------------------------
--- /dev/null
+scripts/linux/network: exit normally if no network control script
+
+When using suspend/resume from the hypervisor, openvmtools checks for the
+networking script, and exists with an error if not found, making the hypervisor
+raise a warning message. This workaround silences that error message.
+
+Signed-off-by: Karoly Kasza <kaszak@gmail.com>
+
+--- open-vm-tools-9.4.6-1770165.orig/scripts/linux/network 2014-07-02 00:21:14.000000000 +0200
++++ open-vm-tools-9.4.6-1770165/scripts/linux/network 2014-08-07 16:34:21.963514273 +0200
+@@ -88,7 +88,9 @@
+ run_network_script()
+ {
+ script=`find_networking_script`
+- [ "$script" != "error" ] || Panic "Cannot find system networking script."
++# [ "$script" != "error" ] || Panic "Cannot find system networking script."
++# Modified for buildroot
++ [ "$script" != "error" ] || exit 0
+
+ # Using SysV "service" if it exists, otherwise fall back to run the script directly
+ service=`which service 2>/dev/null`
--- /dev/null
+conditionally define g_info
+
+glib also defines a g_info macro since 2.39.2, conflicting with the one in
+openvmtools:
+
+https://git.gnome.org/browse/glib/commit/?h=glib-2-40&id=36f1a4ce7ed6df6aa8
+
+Patch from Fedora:
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1063847
+http://pkgs.fedoraproject.org/cgit/open-vm-tools.git/tree/g_info_redefine.patch
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+
+diff -uNr open-vm-tools-9.4.0-1280544.orig/lib/include/vmware/tools/log.h open-vm-tools-9.4.0-1280544/lib/include/vmware/tools/log.h
+--- open-vm-tools-9.4.0-1280544.orig/lib/include/vmware/tools/log.h 2013-09-23 19:51:10.000000000 +0400
++++ open-vm-tools-9.4.0-1280544/lib/include/vmware/tools/log.h 2014-02-18 10:56:50.368604176 +0400
+@@ -134,7 +134,9 @@
+ *******************************************************************************
+ */
+
+-#define g_info(fmt, ...) g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__)
++#if !defined(g_info)
++# define g_info(fmt, ...) g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__)
++#endif
+
+
+ /*
--- /dev/null
+configure.ac: disable -Werror
+
+Disable the mandatory flag -Werror in configure.ac.
+
+Signed-off-by: Karoly Kasza <kaszak@gmail.com>
+
+--- open-vm-tools-9.4.6-1770165.orig/configure.ac 2014-07-02 00:21:14.000000000 +0200
++++ open-vm-tools-9.4.6-1770165/configure.ac 2014-09-15 16:03:47.565900402 +0200
+@@ -832,7 +832,7 @@
+
+ ### General flags / actions
+ CFLAGS="$CFLAGS -Wall"
+-CFLAGS="$CFLAGS -Werror"
++# CFLAGS="$CFLAGS -Werror"
+
+ # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' in Xlib.h on OpenSolaris.
+ for TEST_CFLAG in -Wno-pointer-sign -Wno-unused-value -fno-strict-aliasing \
--- /dev/null
+m4: do not force -I/usr/include in CPPFLAGS
+
+This is so horribly broken for cross-compilation. :-(
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN openvmtools-9.4.6-1770165.orig/m4/vmtools.m4 openvmtools-9.4.6-1770165/m4/vmtools.m4
+--- openvmtools-9.4.6-1770165.orig/m4/vmtools.m4 2014-07-02 00:21:14.000000000 +0200
++++ openvmtools-9.4.6-1770165/m4/vmtools.m4 2014-09-21 12:39:15.901659888 +0200
+@@ -281,10 +281,10 @@
+ if test "$os" = freebsd; then
+ CUSTOM_$1_CPPFLAGS="-I/usr/local/include"
+ else
+- CUSTOM_$1_CPPFLAGS="-I/usr/include"
++ CUSTOM_$1_CPPFLAGS=" "
+ fi
+ if test -n "$2"; then
+- CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2"
++ : CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2"
+ fi
+ fi
+ ])
+++ /dev/null
-lib/misc/msgList.c: missing #ifdef
-
-This macro checks for BSD style printf(), which is not present
-when compiling for uClibc. The linked functions are unnecessary in
-this case, and they break compilation.
-
-Signed-off-by: Karoly Kasza <kaszak@gmail.com>
-
---- open-vm-tools-9.4.6-1770165.orig/lib/misc/msgList.c 2014-07-02 00:21:14.000000000 +0200
-+++ open-vm-tools-9.4.6-1770165/lib/misc/msgList.c 2014-07-29 13:40:40.000000000 +0200
-@@ -487,6 +487,7 @@
- return messages->id;
- }
-
-+#ifdef HAS_BSD_PRINTF
-
- /*
- *----------------------------------------------------------------------
-@@ -566,6 +567,7 @@
- }
- }
-
-+#endif
-
- /*
- *----------------------------------------------------------------------
+++ /dev/null
-scripts/linux/network: exit normally if no network control script
-
-When using suspend/resume from the hypervisor, openvmtools checks for the
-networking script, and exists with an error if not found, making the hypervisor
-raise a warning message. This workaround silences that error message.
-
-Signed-off-by: Karoly Kasza <kaszak@gmail.com>
-
---- open-vm-tools-9.4.6-1770165.orig/scripts/linux/network 2014-07-02 00:21:14.000000000 +0200
-+++ open-vm-tools-9.4.6-1770165/scripts/linux/network 2014-08-07 16:34:21.963514273 +0200
-@@ -88,7 +88,9 @@
- run_network_script()
- {
- script=`find_networking_script`
-- [ "$script" != "error" ] || Panic "Cannot find system networking script."
-+# [ "$script" != "error" ] || Panic "Cannot find system networking script."
-+# Modified for buildroot
-+ [ "$script" != "error" ] || exit 0
-
- # Using SysV "service" if it exists, otherwise fall back to run the script directly
- service=`which service 2>/dev/null`
+++ /dev/null
-conditionally define g_info
-
-glib also defines a g_info macro since 2.39.2, conflicting with the one in
-openvmtools:
-
-https://git.gnome.org/browse/glib/commit/?h=glib-2-40&id=36f1a4ce7ed6df6aa8
-
-Patch from Fedora:
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1063847
-http://pkgs.fedoraproject.org/cgit/open-vm-tools.git/tree/g_info_redefine.patch
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-
-diff -uNr open-vm-tools-9.4.0-1280544.orig/lib/include/vmware/tools/log.h open-vm-tools-9.4.0-1280544/lib/include/vmware/tools/log.h
---- open-vm-tools-9.4.0-1280544.orig/lib/include/vmware/tools/log.h 2013-09-23 19:51:10.000000000 +0400
-+++ open-vm-tools-9.4.0-1280544/lib/include/vmware/tools/log.h 2014-02-18 10:56:50.368604176 +0400
-@@ -134,7 +134,9 @@
- *******************************************************************************
- */
-
--#define g_info(fmt, ...) g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__)
-+#if !defined(g_info)
-+# define g_info(fmt, ...) g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__)
-+#endif
-
-
- /*
+++ /dev/null
-configure.ac: disable -Werror
-
-Disable the mandatory flag -Werror in configure.ac.
-
-Signed-off-by: Karoly Kasza <kaszak@gmail.com>
-
---- open-vm-tools-9.4.6-1770165.orig/configure.ac 2014-07-02 00:21:14.000000000 +0200
-+++ open-vm-tools-9.4.6-1770165/configure.ac 2014-09-15 16:03:47.565900402 +0200
-@@ -832,7 +832,7 @@
-
- ### General flags / actions
- CFLAGS="$CFLAGS -Wall"
--CFLAGS="$CFLAGS -Werror"
-+# CFLAGS="$CFLAGS -Werror"
-
- # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' in Xlib.h on OpenSolaris.
- for TEST_CFLAG in -Wno-pointer-sign -Wno-unused-value -fno-strict-aliasing \
+++ /dev/null
-m4: do not force -I/usr/include in CPPFLAGS
-
-This is so horribly broken for cross-compilation. :-(
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN openvmtools-9.4.6-1770165.orig/m4/vmtools.m4 openvmtools-9.4.6-1770165/m4/vmtools.m4
---- openvmtools-9.4.6-1770165.orig/m4/vmtools.m4 2014-07-02 00:21:14.000000000 +0200
-+++ openvmtools-9.4.6-1770165/m4/vmtools.m4 2014-09-21 12:39:15.901659888 +0200
-@@ -281,10 +281,10 @@
- if test "$os" = freebsd; then
- CUSTOM_$1_CPPFLAGS="-I/usr/local/include"
- else
-- CUSTOM_$1_CPPFLAGS="-I/usr/include"
-+ CUSTOM_$1_CPPFLAGS=" "
- fi
- if test -n "$2"; then
-- CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2"
-+ : CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2"
- fi
- fi
- ])
--- /dev/null
+From f1d9376b383f4ee7ec2d7c5a1728d38cdb692df6 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Sat, 15 Dec 2012 00:05:41 +0100
+Subject: [PATCH] audio-in.c: Don't force largefile support
+
+Buildroot ensures the correct defines are enabled depending on toolchain
+configuration, so don't hard code largefile support here.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/audio-in.c | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+diff --git a/src/audio-in.c b/src/audio-in.c
+index 9bf4f6f..e404629 100644
+--- a/src/audio-in.c
++++ b/src/audio-in.c
+@@ -32,16 +32,6 @@
+ # include <config.h>
+ #endif
+
+-#if !defined(_LARGEFILE_SOURCE)
+-# define _LARGEFILE_SOURCE
+-#endif
+-#if !defined(_LARGEFILE64_SOURCE)
+-# define _LARGEFILE64_SOURCE
+-#endif
+-#if !defined(_FILE_OFFSET_BITS)
+-# define _FILE_OFFSET_BITS 64
+-#endif
+-
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+--
+1.7.10.4
+
+++ /dev/null
-From f1d9376b383f4ee7ec2d7c5a1728d38cdb692df6 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Sat, 15 Dec 2012 00:05:41 +0100
-Subject: [PATCH] audio-in.c: Don't force largefile support
-
-Buildroot ensures the correct defines are enabled depending on toolchain
-configuration, so don't hard code largefile support here.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/audio-in.c | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/src/audio-in.c b/src/audio-in.c
-index 9bf4f6f..e404629 100644
---- a/src/audio-in.c
-+++ b/src/audio-in.c
-@@ -32,16 +32,6 @@
- # include <config.h>
- #endif
-
--#if !defined(_LARGEFILE_SOURCE)
--# define _LARGEFILE_SOURCE
--#endif
--#if !defined(_LARGEFILE64_SOURCE)
--# define _LARGEFILE64_SOURCE
--#endif
--#if !defined(_FILE_OFFSET_BITS)
--# define _FILE_OFFSET_BITS 64
--#endif
--
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
---
-1.7.10.4
-
--- /dev/null
+From a3d4f4f2385394b822b8f66342de8a1e3b4217bb Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <peter@korsgaard.com>
+Date: Sun, 8 Dec 2013 10:54:25 +0100
+Subject: [PATCH] configure.ac: fix bashism in ARM optimization handling
+
+Submitted upstream:
+http://lists.xiph.org/pipermail/opus/2013-December/002422.html
+
+Breaks configure when /bin/sh isn't bash with:
+
+configure: Trying to force-enable ARMv6 media instructions...
+checking if assembler supports ARMv6 media instructions on ARM... yes
+configure: Trying to force-enable NEON instructions...
+checking if assembler supports NEON instructions on ARM... yes
+./configure.lineno: 12799: Bad substitution
+
+Fix it by using the %% expansion to remove everything from the first
+space instead.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0ba4a80..443362f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -333,9 +333,9 @@ AS_IF([test x"${enable_asm}" = x"yes"],[
+
+ AM_CONDITIONAL([CPU_ARM], [test "$cpu_arm" = "yes"])
+ AM_CONDITIONAL([OPUS_ARM_INLINE_ASM],
+- [test x"${inline_optimization:0:3}" = x"ARM"])
++ [test x"${inline_optimization%% *}" = x"ARM"])
+ AM_CONDITIONAL([OPUS_ARM_EXTERNAL_ASM],
+- [test x"${asm_optimization:0:3}" = x"ARM"])
++ [test x"${asm_optimization%% *}" = x"ARM"])
+
+ AS_IF([test x"$enable_rtcd" = x"yes"],[
+ AS_IF([test x"$rtcd_support" != x"no"],[
+--
+1.8.4.rc3
+
+++ /dev/null
-From a3d4f4f2385394b822b8f66342de8a1e3b4217bb Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <peter@korsgaard.com>
-Date: Sun, 8 Dec 2013 10:54:25 +0100
-Subject: [PATCH] configure.ac: fix bashism in ARM optimization handling
-
-Submitted upstream:
-http://lists.xiph.org/pipermail/opus/2013-December/002422.html
-
-Breaks configure when /bin/sh isn't bash with:
-
-configure: Trying to force-enable ARMv6 media instructions...
-checking if assembler supports ARMv6 media instructions on ARM... yes
-configure: Trying to force-enable NEON instructions...
-checking if assembler supports NEON instructions on ARM... yes
-./configure.lineno: 12799: Bad substitution
-
-Fix it by using the %% expansion to remove everything from the first
-space instead.
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0ba4a80..443362f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -333,9 +333,9 @@ AS_IF([test x"${enable_asm}" = x"yes"],[
-
- AM_CONDITIONAL([CPU_ARM], [test "$cpu_arm" = "yes"])
- AM_CONDITIONAL([OPUS_ARM_INLINE_ASM],
-- [test x"${inline_optimization:0:3}" = x"ARM"])
-+ [test x"${inline_optimization%% *}" = x"ARM"])
- AM_CONDITIONAL([OPUS_ARM_EXTERNAL_ASM],
-- [test x"${asm_optimization:0:3}" = x"ARM"])
-+ [test x"${asm_optimization%% *}" = x"ARM"])
-
- AS_IF([test x"$enable_rtcd" = x"yes"],[
- AS_IF([test x"$rtcd_support" != x"no"],[
---
-1.8.4.rc3
-
--- /dev/null
+Fix the owl-linux Makefile so that it protects spaces in the CROSS_COMPILE
+variable. For example, this variable will contain spaces if ccache is used.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+diff -Nurp a/Makefile b/Makefile
+--- a/Makefile 2012-06-14 10:51:45.000000000 +0100
++++ b/Makefile 2012-07-20 10:46:41.636752148 +0100
+@@ -35,7 +35,7 @@ else
+ PWD := $(shell pwd)
+
+ default:
+- $(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) MODE=$(MODE) modules
++ $(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_COMPILE)" M=$(PWD) MODE=$(MODE) modules
+
+ clean:
+ -rm -f *.o *.mod.c *.ko modules.order Module.symvers
--- /dev/null
+Kernel commit b81693d9149c598302e8eb9c20cb20330d922c8e changed the
+net_device_ops structure, removing the ndo_set_multicast_list callback. The
+ndo_set_rx_mode has also been added to this structure.
+
+The upshot of these changes is that owl-linux fails to compile with 3.3.x
+and later kernels.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+diff -Nurp a/owl_net.c b/owl_net.c
+--- a/owl_net.c 2012-06-14 10:51:45.000000000 +0100
++++ b/owl_net.c 2012-07-20 13:16:28.772351464 +0100
+@@ -384,7 +384,9 @@ static const struct net_device_ops netde
+ #endif /* OWL_CONFIG_IFUPDOWN */
+ .ndo_start_xmit = owl_net_tx,
+ .ndo_get_stats = owl_net_get_stats,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
+ .ndo_set_multicast_list = NULL,
++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) */
+ .ndo_tx_timeout = owl_net_tx_timeout,
+ .ndo_set_mac_address = NULL,
+ };
+++ /dev/null
-Fix the owl-linux Makefile so that it protects spaces in the CROSS_COMPILE
-variable. For example, this variable will contain spaces if ccache is used.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-diff -Nurp a/Makefile b/Makefile
---- a/Makefile 2012-06-14 10:51:45.000000000 +0100
-+++ b/Makefile 2012-07-20 10:46:41.636752148 +0100
-@@ -35,7 +35,7 @@ else
- PWD := $(shell pwd)
-
- default:
-- $(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) MODE=$(MODE) modules
-+ $(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_COMPILE)" M=$(PWD) MODE=$(MODE) modules
-
- clean:
- -rm -f *.o *.mod.c *.ko modules.order Module.symvers
+++ /dev/null
-Kernel commit b81693d9149c598302e8eb9c20cb20330d922c8e changed the
-net_device_ops structure, removing the ndo_set_multicast_list callback. The
-ndo_set_rx_mode has also been added to this structure.
-
-The upshot of these changes is that owl-linux fails to compile with 3.3.x
-and later kernels.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-diff -Nurp a/owl_net.c b/owl_net.c
---- a/owl_net.c 2012-06-14 10:51:45.000000000 +0100
-+++ b/owl_net.c 2012-07-20 13:16:28.772351464 +0100
-@@ -384,7 +384,9 @@ static const struct net_device_ops netde
- #endif /* OWL_CONFIG_IFUPDOWN */
- .ndo_start_xmit = owl_net_tx,
- .ndo_get_stats = owl_net_get_stats,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
- .ndo_set_multicast_list = NULL,
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) */
- .ndo_tx_timeout = owl_net_tx_timeout,
- .ndo_set_mac_address = NULL,
- };
--- /dev/null
+From 05b6a7550756ffdced25a6c51cf2222bad9e59e7 Mon Sep 17 00:00:00 2001
+Message-Id: <05b6a7550756ffdced25a6c51cf2222bad9e59e7.1399285491.git.baruch@tkos.co.il>
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Mon, 5 May 2014 09:32:23 +0300
+Subject: [PATCH] Fix build against older pthreads implementations
+
+Older pthreads implementations like glibc NPTL prior to version 2.12, and
+uClibc linuxthreads (both), need _XOPEN_SOURCE to expose
+pthread_mutexattr_settype() and THREAD_MUTEX_DEFAULT. The value 600 (SuSv3,
+POSIX.1-2001) is equivalent to _POSIX_C_SOURCE 200112L.
+
+Fixes the following build error:
+
+ CC compat.lo
+compat.c: In function 'p11_mutex_init':
+compat.c:164:2: warning: implicit declaration of function 'pthread_mutexattr_settype' [-Wimplicit-function-declaration]
+compat.c:164:2: warning: nested extern declaration of 'pthread_mutexattr_settype' [-Wnested-externs]
+compat.c:164:36: error: 'PTHREAD_MUTEX_DEFAULT' undeclared (first use in this function)
+
+Patch status: sent upstream
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+ common/compat.h | 6 ++++++
+ common/message.c | 6 ------
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/common/compat.h b/common/compat.h
+index d7fe414a46bf..fbc1dc1d4f0f 100644
+--- a/common/compat.h
++++ b/common/compat.h
+@@ -37,6 +37,12 @@
+
+ #include "config.h"
+
++/*
++ * Oh god. glibc is nasty. Changes behavior and definitions of POSIX
++ * functions to completely different signatures depending on defines
++ */
++#define _XOPEN_SOURCE 600
++
+ #include <sys/types.h>
+ #include <sys/stat.h>
+
+diff --git a/common/message.c b/common/message.c
+index 35f2764487a9..e68dfac561c8 100644
+--- a/common/message.c
++++ b/common/message.c
+@@ -37,12 +37,6 @@
+
+ #include "config.h"
+
+-/*
+- * Oh god. glibc is nasty. Changes behavior and definitions of POSIX
+- * functions to completely different signatures depending on defines
+- */
+-#define _POSIX_C_SOURCE 200112L
+-
+ #include "compat.h"
+ #define P11_DEBUG_FLAG P11_DEBUG_LIB
+ #include "debug.h"
+--
+2.0.0.rc0
+
+++ /dev/null
-From 05b6a7550756ffdced25a6c51cf2222bad9e59e7 Mon Sep 17 00:00:00 2001
-Message-Id: <05b6a7550756ffdced25a6c51cf2222bad9e59e7.1399285491.git.baruch@tkos.co.il>
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Mon, 5 May 2014 09:32:23 +0300
-Subject: [PATCH] Fix build against older pthreads implementations
-
-Older pthreads implementations like glibc NPTL prior to version 2.12, and
-uClibc linuxthreads (both), need _XOPEN_SOURCE to expose
-pthread_mutexattr_settype() and THREAD_MUTEX_DEFAULT. The value 600 (SuSv3,
-POSIX.1-2001) is equivalent to _POSIX_C_SOURCE 200112L.
-
-Fixes the following build error:
-
- CC compat.lo
-compat.c: In function 'p11_mutex_init':
-compat.c:164:2: warning: implicit declaration of function 'pthread_mutexattr_settype' [-Wimplicit-function-declaration]
-compat.c:164:2: warning: nested extern declaration of 'pthread_mutexattr_settype' [-Wnested-externs]
-compat.c:164:36: error: 'PTHREAD_MUTEX_DEFAULT' undeclared (first use in this function)
-
-Patch status: sent upstream
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- common/compat.h | 6 ++++++
- common/message.c | 6 ------
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/common/compat.h b/common/compat.h
-index d7fe414a46bf..fbc1dc1d4f0f 100644
---- a/common/compat.h
-+++ b/common/compat.h
-@@ -37,6 +37,12 @@
-
- #include "config.h"
-
-+/*
-+ * Oh god. glibc is nasty. Changes behavior and definitions of POSIX
-+ * functions to completely different signatures depending on defines
-+ */
-+#define _XOPEN_SOURCE 600
-+
- #include <sys/types.h>
- #include <sys/stat.h>
-
-diff --git a/common/message.c b/common/message.c
-index 35f2764487a9..e68dfac561c8 100644
---- a/common/message.c
-+++ b/common/message.c
-@@ -37,12 +37,6 @@
-
- #include "config.h"
-
--/*
-- * Oh god. glibc is nasty. Changes behavior and definitions of POSIX
-- * functions to completely different signatures depending on defines
-- */
--#define _POSIX_C_SOURCE 200112L
--
- #include "compat.h"
- #define P11_DEBUG_FLAG P11_DEBUG_LIB
- #include "debug.h"
---
-2.0.0.rc0
-
--- /dev/null
+Prevent Pango to build tests.
+
+Updated to Pango 1.36.3 by Hadrien Boutteville.
+
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to create Makefile.in.
+
+-SUBDIRS= pango modules pango-view examples docs tools tests build
++SUBDIRS= pango modules pango-view examples docs tools build
+
+ EXTRA_DIST = \
+ autogen.sh \
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -418,7 +418,7 @@ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-SUBDIRS = pango modules pango-view examples docs tools tests build
++SUBDIRS = pango modules pango-view examples docs tools build
+ EXTRA_DIST = \
+ autogen.sh \
+ pango.pc.in \
--- /dev/null
+Same patch as for systemd in commit
+7144f2f04b705538a893e538a6b851f536f433b6:
+
+Fix deactivation of gtk-doc
+
+The tarball contains the Makefile for building documentation with gtk-doc,
+Unfortunately the AM_CONDITIONAL variable is not the correct one, which
+results in an error when running autoreconf.
+
+This patch fixes this issue.
+
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- a/gtk-doc.make
++++ b/gtk-doc.make
+@@ -267,7 +267,7 @@
+ #
+ # Require gtk-doc when making dist
+ #
+-if HAVE_GTK_DOC
++if ENABLE_GTK_DOC
+ dist-check-gtkdoc: docs
+ else
+ dist-check-gtkdoc:
+++ /dev/null
-Prevent Pango to build tests.
-
-Updated to Pango 1.36.3 by Hadrien Boutteville.
-
-Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
-
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,6 +1,6 @@
- ## Process this file with automake to create Makefile.in.
-
--SUBDIRS= pango modules pango-view examples docs tools tests build
-+SUBDIRS= pango modules pango-view examples docs tools build
-
- EXTRA_DIST = \
- autogen.sh \
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -418,7 +418,7 @@ target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = pango modules pango-view examples docs tools tests build
-+SUBDIRS = pango modules pango-view examples docs tools build
- EXTRA_DIST = \
- autogen.sh \
- pango.pc.in \
+++ /dev/null
-Same patch as for systemd in commit
-7144f2f04b705538a893e538a6b851f536f433b6:
-
-Fix deactivation of gtk-doc
-
-The tarball contains the Makefile for building documentation with gtk-doc,
-Unfortunately the AM_CONDITIONAL variable is not the correct one, which
-results in an error when running autoreconf.
-
-This patch fixes this issue.
-
-Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
-Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
-
---- a/gtk-doc.make
-+++ b/gtk-doc.make
-@@ -267,7 +267,7 @@
- #
- # Require gtk-doc when making dist
- #
--if HAVE_GTK_DOC
-+if ENABLE_GTK_DOC
- dist-check-gtkdoc: docs
- else
- dist-check-gtkdoc:
--- /dev/null
+The CPPFunction typedef (among others) have been deprecated in favour of
+specific prototyped typedefs since readline 4.2.
+It's been working since because compatibility typedefs have been
+in place until they were removed in readline 6.3.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura parted-3.1.orig/parted/ui.c parted-3.1/parted/ui.c
+--- parted-3.1.orig/parted/ui.c 2014-03-01 16:11:41.970827134 -0300
++++ parted-3.1/parted/ui.c 2014-03-01 16:11:55.540259786 -0300
+@@ -1474,7 +1474,7 @@
+ #ifdef HAVE_LIBREADLINE
+ if (!opt_script_mode) {
+ rl_initialize ();
+- rl_attempted_completion_function = (CPPFunction*) complete_function;
++ rl_attempted_completion_function = (rl_completion_func_t *) complete_function;
+ readline_state.in_readline = 0;
+ }
+ #endif
--- /dev/null
+From b3958317c5ee2940e7024bec2e7f288b5a6a26c3 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Mon, 30 Jun 2014 10:09:04 -0300
+Subject: [PATCH] configure.ac: uclinux is also linux
+
+uclinux is used in the tuple for some noMMU linux builds like Blackfin
+FLAT output, so accept it as linux too.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 436d0e2..50ad478 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,10 +58,10 @@ AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
+
+ AC_CANONICAL_HOST
+ case "$host_os" in
+- linux*) OS=linux ;;
++ linux*|uclinux*) OS=linux ;;
+ gnu*) OS=gnu ;;
+ beos*) OS=beos ;;
+- *) AC_MSG_ERROR([Unknown or unsupported OS "$host_os". Only "linux", "gnu" and "beos" are supported in this version of GNU Parted.]) ;;
++ *) AC_MSG_ERROR([Unknown or unsupported OS "$host_os". Only "linux", "uclinux", "gnu" and "beos" are supported in this version of GNU Parted.]) ;;
+ esac
+ AC_SUBST([OS])
+
+--
+1.8.5.5
+
--- /dev/null
+configure: use pkg-config to find libuuid
+
+In some conditions, libuuid may be linked with -lintl. This can be the
+case on uClibc when locales are enabled.
+
+When doing a shared link, this dependency is automatically pulled in via
+a DT_NEEDED ELF tag
+
+For a static link, there is no such mechanism to pull in dependent
+libraries.
+
+Currently, the check for libuuid is done with AC_CHECK_LIB, but this
+does not handle dependencies, and thus a stattic build fails.
+
+Use pkg-config to find libuuid, that automatically pulls in the
+dependencies of libuuid, if any.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Note: of course, that relies on the fact that libuuid installs a proper
+.pc file; a patch will be submitted upstream shortly.
+
+But even considering the current situation, where libuuid does not
+provide a proper .pc file (yet), this patch does not change the
+behaviour we've had so far; it is a bet on the future! ;-)
+
+diff -durN parted-3.1.orig/configure.ac parted-3.1/configure.ac
+--- parted-3.1.orig/configure.ac 2014-11-29 16:27:49.520560137 +0100
++++ parted-3.1/configure.ac 2014-11-29 16:32:50.799702049 +0100
+@@ -313,16 +313,7 @@
+ AC_SUBST([DL_LIBS])
+
+ dnl Check for libuuid
+-UUID_LIBS=""
+-AC_CHECK_LIB([uuid], [uuid_generate], [UUID_LIBS="-luuid"],
+- [AC_MSG_ERROR(dnl
+-[GNU Parted requires libuuid - a part of the util-linux-ng package (but
+-usually distributed separately in libuuid-devel, uuid-dev or similar)
+-This can probably be found on your distribution's CD or FTP site or at:
+- http://userweb.kernel.org/~kzak/util-linux-ng/
+-Note: originally, libuuid was part of the e2fsprogs package. Later, it
+-moved to util-linux-ng-2.16, and that package is now the preferred source.])])
+-AC_SUBST([UUID_LIBS])
++PKG_CHECK_MODULES([UUID],[uuid])
+
+ dnl Check for libdevmapper
+ DM_LIBS=
+++ /dev/null
-The CPPFunction typedef (among others) have been deprecated in favour of
-specific prototyped typedefs since readline 4.2.
-It's been working since because compatibility typedefs have been
-in place until they were removed in readline 6.3.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura parted-3.1.orig/parted/ui.c parted-3.1/parted/ui.c
---- parted-3.1.orig/parted/ui.c 2014-03-01 16:11:41.970827134 -0300
-+++ parted-3.1/parted/ui.c 2014-03-01 16:11:55.540259786 -0300
-@@ -1474,7 +1474,7 @@
- #ifdef HAVE_LIBREADLINE
- if (!opt_script_mode) {
- rl_initialize ();
-- rl_attempted_completion_function = (CPPFunction*) complete_function;
-+ rl_attempted_completion_function = (rl_completion_func_t *) complete_function;
- readline_state.in_readline = 0;
- }
- #endif
+++ /dev/null
-From b3958317c5ee2940e7024bec2e7f288b5a6a26c3 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Mon, 30 Jun 2014 10:09:04 -0300
-Subject: [PATCH] configure.ac: uclinux is also linux
-
-uclinux is used in the tuple for some noMMU linux builds like Blackfin
-FLAT output, so accept it as linux too.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 436d0e2..50ad478 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -58,10 +58,10 @@ AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
-
- AC_CANONICAL_HOST
- case "$host_os" in
-- linux*) OS=linux ;;
-+ linux*|uclinux*) OS=linux ;;
- gnu*) OS=gnu ;;
- beos*) OS=beos ;;
-- *) AC_MSG_ERROR([Unknown or unsupported OS "$host_os". Only "linux", "gnu" and "beos" are supported in this version of GNU Parted.]) ;;
-+ *) AC_MSG_ERROR([Unknown or unsupported OS "$host_os". Only "linux", "uclinux", "gnu" and "beos" are supported in this version of GNU Parted.]) ;;
- esac
- AC_SUBST([OS])
-
---
-1.8.5.5
-
+++ /dev/null
-configure: use pkg-config to find libuuid
-
-In some conditions, libuuid may be linked with -lintl. This can be the
-case on uClibc when locales are enabled.
-
-When doing a shared link, this dependency is automatically pulled in via
-a DT_NEEDED ELF tag
-
-For a static link, there is no such mechanism to pull in dependent
-libraries.
-
-Currently, the check for libuuid is done with AC_CHECK_LIB, but this
-does not handle dependencies, and thus a stattic build fails.
-
-Use pkg-config to find libuuid, that automatically pulls in the
-dependencies of libuuid, if any.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
----
-Note: of course, that relies on the fact that libuuid installs a proper
-.pc file; a patch will be submitted upstream shortly.
-
-But even considering the current situation, where libuuid does not
-provide a proper .pc file (yet), this patch does not change the
-behaviour we've had so far; it is a bet on the future! ;-)
-
-diff -durN parted-3.1.orig/configure.ac parted-3.1/configure.ac
---- parted-3.1.orig/configure.ac 2014-11-29 16:27:49.520560137 +0100
-+++ parted-3.1/configure.ac 2014-11-29 16:32:50.799702049 +0100
-@@ -313,16 +313,7 @@
- AC_SUBST([DL_LIBS])
-
- dnl Check for libuuid
--UUID_LIBS=""
--AC_CHECK_LIB([uuid], [uuid_generate], [UUID_LIBS="-luuid"],
-- [AC_MSG_ERROR(dnl
--[GNU Parted requires libuuid - a part of the util-linux-ng package (but
--usually distributed separately in libuuid-devel, uuid-dev or similar)
--This can probably be found on your distribution's CD or FTP site or at:
-- http://userweb.kernel.org/~kzak/util-linux-ng/
--Note: originally, libuuid was part of the e2fsprogs package. Later, it
--moved to util-linux-ng-2.16, and that package is now the preferred source.])])
--AC_SUBST([UUID_LIBS])
-+PKG_CHECK_MODULES([UUID],[uuid])
-
- dnl Check for libdevmapper
- DM_LIBS=
--- /dev/null
+Link against libX11
+
+fm-desktop.c uses XSendEvent, so we should link against libX11.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -12,7 +12,8 @@
+
+ pkg_modules="gtk+-2.0 >= 2.6.0 \
+ gthread-2.0 \
+- libstartup-notification-1.0"
++ libstartup-notification-1.0 \
++ x11"
+
+ AC_FUNC_MMAP
+
+++ /dev/null
-Link against libX11
-
-fm-desktop.c uses XSendEvent, so we should link against libX11.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.in
-===================================================================
---- a/configure.in
-+++ b/configure.in
-@@ -12,7 +12,8 @@
-
- pkg_modules="gtk+-2.0 >= 2.6.0 \
- gthread-2.0 \
-- libstartup-notification-1.0"
-+ libstartup-notification-1.0 \
-+ x11"
-
- AC_FUNC_MMAP
-
--- /dev/null
+configure.ac: explicitly add pthread cflags/libs in the libusb test
+
+If libusb-config does not exist, LIBUSB_CFLAGS and PTHREAD_CFLAGS will be
+empty, and the test for libusb will be performed without additional flags.
+However, when libusb needs threads, some extra flags are needed (depending
+on the platform), like -pthreads, -lpthread, etc. Without these flags, the
+test for libusb_init() will fail to link correctly, and pcsc-lite will fail
+detecting libusb.
+
+Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
+
+Upstream-status: will be submitted
+
+---
+
+diff --git a/configure.ac b/configure.ac
+--- a/configure.ac
++++ b/configure.ac
+@@ -254,8 +254,8 @@ if test "x$use_libusb" != xno ; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_LIBS="$LIBS"
+
+- CPPFLAGS="$CPPFLAGS $LIBUSB_CFLAGS"
+- LIBS="$LDFLAGS $LIBUSB_LIBS"
++ CPPFLAGS="$CPPFLAGS $LIBUSB_CFLAGS $PTHREAD_CFLAGS"
++ LIBS="$LDFLAGS $LIBUSB_LIBS $PTHREAD_LIBS"
+
+ AC_CHECK_HEADERS(libusb.h, [],
+ [ AC_MSG_ERROR([libusb.h not found, use ./configure LIBUSB_CFLAGS=...]) ])
+++ /dev/null
-configure.ac: explicitly add pthread cflags/libs in the libusb test
-
-If libusb-config does not exist, LIBUSB_CFLAGS and PTHREAD_CFLAGS will be
-empty, and the test for libusb will be performed without additional flags.
-However, when libusb needs threads, some extra flags are needed (depending
-on the platform), like -pthreads, -lpthread, etc. Without these flags, the
-test for libusb_init() will fail to link correctly, and pcsc-lite will fail
-detecting libusb.
-
-Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
-
-Upstream-status: will be submitted
-
----
-
-diff --git a/configure.ac b/configure.ac
---- a/configure.ac
-+++ b/configure.ac
-@@ -254,8 +254,8 @@ if test "x$use_libusb" != xno ; then
- saved_CPPFLAGS="$CPPFLAGS"
- saved_LIBS="$LIBS"
-
-- CPPFLAGS="$CPPFLAGS $LIBUSB_CFLAGS"
-- LIBS="$LDFLAGS $LIBUSB_LIBS"
-+ CPPFLAGS="$CPPFLAGS $LIBUSB_CFLAGS $PTHREAD_CFLAGS"
-+ LIBS="$LDFLAGS $LIBUSB_LIBS $PTHREAD_LIBS"
-
- AC_CHECK_HEADERS(libusb.h, [],
- [ AC_MSG_ERROR([libusb.h not found, use ./configure LIBUSB_CFLAGS=...]) ])
--- /dev/null
+buildsystem: fix for cross-compilation
+
+Avoid running the openssl binary, since it would break for
+cross-compilation. Buildroot has a supported version, anyway.
+
+Also, avoid adding hard-coded includes and libraries search
+paths, since they are missing the destdir; Buildroot compilers
+and linkers already know where to search, anyway.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN perl-net-ssleay-1.64.orig/inc/Module/Install/PRIVATE/Net/SSLeay.pm perl-net-ssleay-1.64/inc/Module/Install/PRIVATE/Net/SSLeay.pm
+--- perl-net-ssleay-1.64.orig/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2014-04-01 08:08:37.000000000 +0200
++++ perl-net-ssleay-1.64/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2014-07-13 00:38:46.281380282 +0200
+@@ -37,14 +37,18 @@
+ exit 0; # according http://wiki.cpantesters.org/wiki/CPANAuthorNotes this is best-practice when "missing library"
+ }
+
+- $self->check_openssl_version($prefix, $exec);
++# Does not work for cross-compilation.
++# In Buildroot, we do have a supported version.
++# $self->check_openssl_version($prefix, $exec);
+ my $opts = $self->ssleay_get_build_opts($prefix, $exec);
+
+ $self->makemaker_args(
+ CCCDLFLAGS => $opts->{cccdlflags},
+ OPTIMIZE => $opts->{optimize},
+- INC => join(' ', map {"-I$_"} @{$opts->{inc_paths}}),
+- LIBS => join(' ', (map {"-L$_"} @{$opts->{lib_paths}}), (map {"-l$_"} @{$opts->{lib_links}})),
++# Buildroot already has the correct include and library search paths.
++# INC => join(' ', map {"-I$_"} @{$opts->{inc_paths}}),
++# LIBS => join(' ', (map {"-L$_"} @{$opts->{lib_paths}}), (map {"-l$_"} @{$opts->{lib_links}})),
++ LIBS => join(' ', (map {"-l$_"} @{$opts->{lib_links}})),
+ );
+
+ if ( $self->prompt(
+++ /dev/null
-buildsystem: fix for cross-compilation
-
-Avoid running the openssl binary, since it would break for
-cross-compilation. Buildroot has a supported version, anyway.
-
-Also, avoid adding hard-coded includes and libraries search
-paths, since they are missing the destdir; Buildroot compilers
-and linkers already know where to search, anyway.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN perl-net-ssleay-1.64.orig/inc/Module/Install/PRIVATE/Net/SSLeay.pm perl-net-ssleay-1.64/inc/Module/Install/PRIVATE/Net/SSLeay.pm
---- perl-net-ssleay-1.64.orig/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2014-04-01 08:08:37.000000000 +0200
-+++ perl-net-ssleay-1.64/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2014-07-13 00:38:46.281380282 +0200
-@@ -37,14 +37,18 @@
- exit 0; # according http://wiki.cpantesters.org/wiki/CPANAuthorNotes this is best-practice when "missing library"
- }
-
-- $self->check_openssl_version($prefix, $exec);
-+# Does not work for cross-compilation.
-+# In Buildroot, we do have a supported version.
-+# $self->check_openssl_version($prefix, $exec);
- my $opts = $self->ssleay_get_build_opts($prefix, $exec);
-
- $self->makemaker_args(
- CCCDLFLAGS => $opts->{cccdlflags},
- OPTIMIZE => $opts->{optimize},
-- INC => join(' ', map {"-I$_"} @{$opts->{inc_paths}}),
-- LIBS => join(' ', (map {"-L$_"} @{$opts->{lib_paths}}), (map {"-l$_"} @{$opts->{lib_links}})),
-+# Buildroot already has the correct include and library search paths.
-+# INC => join(' ', map {"-I$_"} @{$opts->{inc_paths}}),
-+# LIBS => join(' ', (map {"-L$_"} @{$opts->{lib_paths}}), (map {"-l$_"} @{$opts->{lib_links}})),
-+ LIBS => join(' ', (map {"-l$_"} @{$opts->{lib_links}})),
- );
-
- if ( $self->prompt(
--- /dev/null
+fake check_lib for cross-compilation
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/Makefile.PL
+===================================================================
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -84,8 +84,7 @@
+ # -------------------------------------------------------------------------- #
+ # -------------------------------------------------------------------------- #
+
+-use lib qw(inc);
+-use Devel::CheckLib;
++sub check_lib { return 1; }
+
+ # Prompt the user here for any paths and other configuration
+
+++ /dev/null
-fake check_lib for cross-compilation
-
-Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
-
-Index: b/Makefile.PL
-===================================================================
---- a/Makefile.PL
-+++ b/Makefile.PL
-@@ -84,8 +84,7 @@
- # -------------------------------------------------------------------------- #
- # -------------------------------------------------------------------------- #
-
--use lib qw(inc);
--use Devel::CheckLib;
-+sub check_lib { return 1; }
-
- # Prompt the user here for any paths and other configuration
-
--- /dev/null
+fix on uClibc without IPv6 support
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+Index: b/cpan/Socket/Socket.xs
+===================================================================
+--- a/cpan/Socket/Socket.xs
++++ b/cpan/Socket/Socket.xs
+@@ -920,7 +920,7 @@
+ CODE:
+ #ifdef HAS_INETNTOP
+ STRLEN addrlen;
+-#ifdef AF_INET6
++#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
+ struct in6_addr addr;
+ char str[INET6_ADDRSTRLEN];
+ #else
+@@ -940,7 +940,7 @@
+ croak("Bad address length for Socket::inet_ntop on AF_INET;"
+ " got %"UVuf", should be 4", (UV)addrlen);
+ break;
+-#ifdef AF_INET6
++#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
+ case AF_INET6:
+ if(addrlen != 16)
+ croak("Bad address length for Socket::inet_ntop on AF_INET6;"
+@@ -949,7 +949,7 @@
+ #endif
+ default:
+ croak("Bad address family for %s, got %d, should be"
+-#ifdef AF_INET6
++#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
+ " either AF_INET or AF_INET6",
+ #else
+ " AF_INET",
+@@ -979,7 +979,7 @@
+ #ifdef HAS_INETPTON
+ int ok;
+ int addrlen = 0;
+-#ifdef AF_INET6
++#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
+ struct in6_addr ip_address;
+ #else
+ struct in_addr ip_address;
+@@ -989,14 +989,14 @@
+ case AF_INET:
+ addrlen = 4;
+ break;
+-#ifdef AF_INET6
++#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
+ case AF_INET6:
+ addrlen = 16;
+ break;
+ #endif
+ default:
+ croak("Bad address family for %s, got %d, should be"
+-#ifdef AF_INET6
++#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
+ " either AF_INET or AF_INET6",
+ #else
+ " AF_INET",
+++ /dev/null
-fix on uClibc without IPv6 support
-
-Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
-
-Index: b/cpan/Socket/Socket.xs
-===================================================================
---- a/cpan/Socket/Socket.xs
-+++ b/cpan/Socket/Socket.xs
-@@ -920,7 +920,7 @@
- CODE:
- #ifdef HAS_INETNTOP
- STRLEN addrlen;
--#ifdef AF_INET6
-+#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
- struct in6_addr addr;
- char str[INET6_ADDRSTRLEN];
- #else
-@@ -940,7 +940,7 @@
- croak("Bad address length for Socket::inet_ntop on AF_INET;"
- " got %"UVuf", should be 4", (UV)addrlen);
- break;
--#ifdef AF_INET6
-+#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
- case AF_INET6:
- if(addrlen != 16)
- croak("Bad address length for Socket::inet_ntop on AF_INET6;"
-@@ -949,7 +949,7 @@
- #endif
- default:
- croak("Bad address family for %s, got %d, should be"
--#ifdef AF_INET6
-+#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
- " either AF_INET or AF_INET6",
- #else
- " AF_INET",
-@@ -979,7 +979,7 @@
- #ifdef HAS_INETPTON
- int ok;
- int addrlen = 0;
--#ifdef AF_INET6
-+#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
- struct in6_addr ip_address;
- #else
- struct in_addr ip_address;
-@@ -989,14 +989,14 @@
- case AF_INET:
- addrlen = 4;
- break;
--#ifdef AF_INET6
-+#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
- case AF_INET6:
- addrlen = 16;
- break;
- #endif
- default:
- croak("Bad address family for %s, got %d, should be"
--#ifdef AF_INET6
-+#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
- " either AF_INET or AF_INET6",
- #else
- " AF_INET",
--- /dev/null
+Makefile: make it cross-compile (and Buildroot) friendly.
+
+The current Makefile makes heavy assumptions that it is doing native
+compilation on the RPi, as it checks that `uname -m` is an ARM machine.
+
+This is wrong in the cross-compilation case.
+
+Remove the conditional altogether, and do not override the CFLAGS
+as passed in the environment (Buildroot passes proper CFLAGS).
+
+[intial patch by: Eric Limpens <limpens@gmail.com>]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile
+--- pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile 2014-05-04 18:21:40.000000000 +0200
++++ pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile 2014-06-21 16:38:31.971804343 +0200
+@@ -1,20 +1,8 @@
+ CC = gcc
+-STD_CFLAGS = -Wall -std=gnu99 -c -g -O3
+
+-# Enable ARM-specific options only on ARM, and compilation of the app only on ARM
+-UNAME := $(shell uname -m)
+-
+-ifeq ($(UNAME), armv6l)
+- CFLAGS = $(STD_CFLAGS) -march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math
+-
+ app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o
+ $(CC) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
+
+-else
+- CFLAGS = $(STD_CFLAGS)
+-endif
+-
+-
+ rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o
+ $(CC) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
+
--- /dev/null
+Makefile: use LDFLAGS when linking
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile
+--- pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile 2014-06-21 16:46:49.101118754 +0200
++++ pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile 2014-06-21 16:47:47.801745683 +0200
+@@ -1,10 +1,10 @@
+ CC = gcc
+
+ app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o
+- $(CC) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
++ $(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
+
+ rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o
+- $(CC) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
++ $(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
+
+ rds.o: rds.c waveforms.h
+ $(CC) $(CFLAGS) rds.c
+++ /dev/null
-Makefile: make it cross-compile (and Buildroot) friendly.
-
-The current Makefile makes heavy assumptions that it is doing native
-compilation on the RPi, as it checks that `uname -m` is an ARM machine.
-
-This is wrong in the cross-compilation case.
-
-Remove the conditional altogether, and do not override the CFLAGS
-as passed in the environment (Buildroot passes proper CFLAGS).
-
-[intial patch by: Eric Limpens <limpens@gmail.com>]
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile
---- pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile 2014-05-04 18:21:40.000000000 +0200
-+++ pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile 2014-06-21 16:38:31.971804343 +0200
-@@ -1,20 +1,8 @@
- CC = gcc
--STD_CFLAGS = -Wall -std=gnu99 -c -g -O3
-
--# Enable ARM-specific options only on ARM, and compilation of the app only on ARM
--UNAME := $(shell uname -m)
--
--ifeq ($(UNAME), armv6l)
-- CFLAGS = $(STD_CFLAGS) -march=armv6 -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -ffast-math
--
- app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o
- $(CC) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
-
--else
-- CFLAGS = $(STD_CFLAGS)
--endif
--
--
- rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o
- $(CC) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
-
+++ /dev/null
-Makefile: use LDFLAGS when linking
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile
---- pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1.orig/src/Makefile 2014-06-21 16:46:49.101118754 +0200
-+++ pifmrds-c67306ea9b8d827f45e0d90279d367e97119bcb1/src/Makefile 2014-06-21 16:47:47.801745683 +0200
-@@ -1,10 +1,10 @@
- CC = gcc
-
- app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o
-- $(CC) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
-+ $(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
-
- rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o
-- $(CC) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
-+ $(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
-
- rds.o: rds.c waveforms.h
- $(CC) $(CFLAGS) rds.c
--- /dev/null
+[PATCH] prefix sysroot to include/libdir path variables
+
+Prefix includedir / libdir variable values with sysroot if a variable is
+requested (--variable=<name>), similar to how it's done for -I / -L flags.
+
+This is sometimes used to find header files (E.G. in gst-plugins configure),
+so ensure the sysroot'ed files are used.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff -Nura pkgconf-0.8.9.orig/main.c pkgconf-0.8.9/main.c
+--- pkgconf-0.8.9.orig/main.c 2012-10-24 14:32:08.236508699 -0300
++++ pkgconf-0.8.9/main.c 2012-10-24 14:54:36.771070217 -0300
+@@ -298,7 +298,13 @@
+ if (eflag != PKG_ERRF_OK)
+ return false;
+
+- printf("%s\n", req.buf);
++ if ( !strcmp(req.variable, "includedir") ||
++ !strcmp(req.variable, "mapdir") ||
++ !strcmp(req.variable, "sdkdir") ||
++ !strcmp(req.variable, "libdir"))
++ printf("%s%s\n", sysroot_dir, req.buf);
++ else
++ printf("%s\n", req.buf);
+ return true;
+ }
+
--- /dev/null
+pkgconf: don't double prefix lib/include paths with sysroot
+
+A .pc file could contain statements of the form:
+ -L/usr/lib
+but also:
+ -L/path/to/sysroot/usr/lib
+
+The latter form typically occurs when the dependency was configured with a
+statement like --with-xxx=$(STAGING_DIR)/usr.
+
+pkgconf only expects the first form, and prefixes it with the specified
+sysroot. However, this strategy would result in a double sysroot in the
+second case:
+ -L/path/to/sysroot/path/to/sysroot/usr/lib
+
+This patch checks for the presence of the sysroot in the specified -L or -I
+directives, and only adds the sysroot when not already present.
+
+Upstream-status: will be submitted
+
+Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
+
+---
+ main.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+
+diff -r 16865d81819f -r 9d8e1737687f main.c
+--- a/main.c Mon Jun 16 19:47:52 2014 +0200
++++ b/main.c Mon Jun 16 19:48:15 2014 +0200
+@@ -82,7 +82,8 @@
+ {
+ case 'L':
+ case 'I':
+- return sysroot_dir;
++ if (strncmp(sysroot_dir, frag->data, strlen(sysroot_dir)) != 0)
++ return sysroot_dir;
+ default:
+ break;
+ }
+++ /dev/null
-[PATCH] prefix sysroot to include/libdir path variables
-
-Prefix includedir / libdir variable values with sysroot if a variable is
-requested (--variable=<name>), similar to how it's done for -I / -L flags.
-
-This is sometimes used to find header files (E.G. in gst-plugins configure),
-so ensure the sysroot'ed files are used.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff -Nura pkgconf-0.8.9.orig/main.c pkgconf-0.8.9/main.c
---- pkgconf-0.8.9.orig/main.c 2012-10-24 14:32:08.236508699 -0300
-+++ pkgconf-0.8.9/main.c 2012-10-24 14:54:36.771070217 -0300
-@@ -298,7 +298,13 @@
- if (eflag != PKG_ERRF_OK)
- return false;
-
-- printf("%s\n", req.buf);
-+ if ( !strcmp(req.variable, "includedir") ||
-+ !strcmp(req.variable, "mapdir") ||
-+ !strcmp(req.variable, "sdkdir") ||
-+ !strcmp(req.variable, "libdir"))
-+ printf("%s%s\n", sysroot_dir, req.buf);
-+ else
-+ printf("%s\n", req.buf);
- return true;
- }
-
+++ /dev/null
-pkgconf: don't double prefix lib/include paths with sysroot
-
-A .pc file could contain statements of the form:
- -L/usr/lib
-but also:
- -L/path/to/sysroot/usr/lib
-
-The latter form typically occurs when the dependency was configured with a
-statement like --with-xxx=$(STAGING_DIR)/usr.
-
-pkgconf only expects the first form, and prefixes it with the specified
-sysroot. However, this strategy would result in a double sysroot in the
-second case:
- -L/path/to/sysroot/path/to/sysroot/usr/lib
-
-This patch checks for the presence of the sysroot in the specified -L or -I
-directives, and only adds the sysroot when not already present.
-
-Upstream-status: will be submitted
-
-Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
-
----
- main.c | 3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-
-diff -r 16865d81819f -r 9d8e1737687f main.c
---- a/main.c Mon Jun 16 19:47:52 2014 +0200
-+++ b/main.c Mon Jun 16 19:48:15 2014 +0200
-@@ -82,7 +82,8 @@
- {
- case 'L':
- case 'I':
-- return sysroot_dir;
-+ if (strncmp(sysroot_dir, frag->data, strlen(sysroot_dir)) != 0)
-+ return sysroot_dir;
- default:
- break;
- }
--- /dev/null
+From 37899eda9563d9134cb5864751b6432cabfaac3e Mon Sep 17 00:00:00 2001
+From: Will Newton <will.newton@linaro.org>
+Date: Tue, 21 May 2013 22:11:05 +0100
+Subject: [PATCH] Foundation/include/Poco/Platform.h: Add support for AArch64.
+
+Add support for big and little endian AArch64 preprocessor defines.
+---
+ Foundation/include/Poco/Platform.h | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h
+index f34f277..8ddb4cb 100644
+--- a/Foundation/include/Poco/Platform.h
++++ b/Foundation/include/Poco/Platform.h
+@@ -145,6 +145,7 @@
+ #define POCO_ARCH_S390 0x0c
+ #define POCO_ARCH_SH 0x0d
+ #define POCO_ARCH_NIOS2 0x0e
++#define POCO_ARCH_AARCH64 0x0f
+
+
+ #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
+@@ -207,7 +208,12 @@
+ #else
+ #define POCO_ARCH_BIG_ENDIAN 1
+ #endif
+-
++#elif defined(__AARCH64EL__)
++ #define POCO_ARCH POCO_ARCH_AARCH64
++ #define POCO_ARCH_LITTLE_ENDIAN 1
++#elif defined(__AARCH64EB__)
++ #define POCO_ARCH POCO_ARCH_AARCH64
++ #define POCO_ARCH_BIG_ENDIAN 1
+ #endif
+
+
+--
+1.8.1.4
+
--- /dev/null
+From: Baruch Siach <baruch@tkos.co.il>
+Subject: [PATCH] poco: add Linux configuration file for generic cross build
+
+This patch adds the Linux-CrossEnv config file to poco. This file is identical
+to the Linux one, except the added CROSSENV variable that allows setting of
+the toolchain prefix.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+diff -Nuar poco-1.4.1p1-dist/build/config/Linux-CrossEnv poco-1.4.1p1/build/config/Linux-CrossEnv
+--- poco-1.4.1p1-dist/build/config/Linux-CrossEnv 1970-01-01 02:00:00.000000000 +0200
++++ poco-1.4.1p1/build/config/Linux-CrossEnv 2011-08-02 18:51:03.682047719 +0300
+@@ -0,0 +1,69 @@
++#
++# Linux
++#
++# Make settings for cross compiled Linux
++#
++#
++
++#
++# General Settings
++#
++LINKMODE ?= SHARED
++
++#
++# Define Tools
++#
++CC = $(CROSSENV)gcc
++CXX = $(CROSSENV)g++
++LINK = $(CXX)
++LIB = $(CROSSENV)ar -cr
++RANLIB = $(CROSSENV)ranlib
++SHLIB = $(CXX) -shared -Wl,-soname,$(notdir $@) -o $@
++SHLIBLN = $(POCO_BASE)/build/script/shlibln
++STRIP = $(CROSSENV)strip
++DEP = $(POCO_BASE)/build/script/makedepend.gcc
++SHELL = sh
++RM = rm -rf
++CP = cp
++MKDIR = mkdir -p
++
++#
++# Extension for Shared Libraries
++#
++SHAREDLIBEXT = .so.$(target_version)
++SHAREDLIBLINKEXT = .so
++
++#
++# Compiler and Linker Flags
++#
++CFLAGS =
++CFLAGS32 =
++CFLAGS64 =
++CXXFLAGS = -Wall -Wno-sign-compare
++CXXFLAGS32 =
++CXXFLAGS64 =
++LINKFLAGS =
++LINKFLAGS32 =
++LINKFLAGS64 =
++STATICOPT_CC =
++STATICOPT_CXX =
++STATICOPT_LINK = -static
++SHAREDOPT_CC = -fPIC
++SHAREDOPT_CXX = -fPIC
++SHAREDOPT_LINK = -Wl,-rpath,$(LIBPATH)
++DEBUGOPT_CC = -g -D_DEBUG
++DEBUGOPT_CXX = -g -D_DEBUG
++DEBUGOPT_LINK = -g
++RELEASEOPT_CC = -O2 -DNDEBUG
++RELEASEOPT_CXX = -O2 -DNDEBUG
++RELEASEOPT_LINK = -O2
++
++#
++# System Specific Flags
++#
++SYSFLAGS = -D_XOPEN_SOURCE=500 -D_REENTRANT -D_THREAD_SAFE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DPOCO_HAVE_FD_EPOLL
++
++#
++# System Specific Libraries
++#
++SYSLIBS = -lpthread -ldl -lrt
--- /dev/null
+From: Baruch Siach <baruch@tkos.co.il>
+Subject: [PATCH] poco: add the staging path to search path
+
+Add the mysql headers and client libraries to the search path of the
+preprocessor and the linker. The $MYSQL_LIBDIR / $MYSQL_INCIDR variables
+must be set from the make command line.
+
+[Peter: Remove host dirs, add MYSQL_INCDIR]
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+--- poco-1.4.4-all-dist/Data/MySQL/Makefile 2012-09-20 01:30:42.000000000 +0300
++++ poco-1.4.4-all/Data/MySQL/Makefile 2012-10-11 14:36:10.343153420 +0200
+@@ -8,8 +8,8 @@
+
+ include $(POCO_BASE)/build/rules/global
+
+-SYSLIBS += -L/usr/local/lib$(LIB64SUFFIX)/mysql -L/usr/lib$(LIB64SUFFIX)/mysql -L/usr/mysql/lib$(LIB64SUFFIX)/mysql -L/usr/local/mysql/lib$(LIB64SUFFIX) -lmysqlclient
+-INCLUDE += -I/usr/local/include/mysql/ -I/usr/include/mysql -I/usr/mysql/include/mysql -I/usr/local/mysql/include
++SYSLIBS += -L$(MYSQL_LIBDIR) -lmysqlclient
++INCLUDE += -I$(MYSQL_INCDIR)
+ SYSFLAGS += -DTHREADSAFE -DNO_TCL
+
+ objects = Binder Extractor SessionImpl Connector \
--- /dev/null
+From: Baruch Siach <baruch@tkos.co.il>
+Subject: [PATCH] poco: don't build debug libraries
+
+Remove the debug libraries build dependency from the default target.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+
+--- poco-1.4.1p1-dist/build/rules/compile 2011-02-09 11:12:24.000000000 +0200
++++ poco-1.4.1p1/build/rules/compile 2011-08-03 07:51:42.946044176 +0300
+@@ -14,7 +14,7 @@
+
+ all: $(DEFAULT_TARGET)
+ all_static: static_debug static_release
+-all_shared: shared_debug shared_release
++all_shared: shared_release
+ all_debug: static_debug shared_debug
+ all_release: static_release shared_release
+
+++ /dev/null
-From 37899eda9563d9134cb5864751b6432cabfaac3e Mon Sep 17 00:00:00 2001
-From: Will Newton <will.newton@linaro.org>
-Date: Tue, 21 May 2013 22:11:05 +0100
-Subject: [PATCH] Foundation/include/Poco/Platform.h: Add support for AArch64.
-
-Add support for big and little endian AArch64 preprocessor defines.
----
- Foundation/include/Poco/Platform.h | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h
-index f34f277..8ddb4cb 100644
---- a/Foundation/include/Poco/Platform.h
-+++ b/Foundation/include/Poco/Platform.h
-@@ -145,6 +145,7 @@
- #define POCO_ARCH_S390 0x0c
- #define POCO_ARCH_SH 0x0d
- #define POCO_ARCH_NIOS2 0x0e
-+#define POCO_ARCH_AARCH64 0x0f
-
-
- #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
-@@ -207,7 +208,12 @@
- #else
- #define POCO_ARCH_BIG_ENDIAN 1
- #endif
--
-+#elif defined(__AARCH64EL__)
-+ #define POCO_ARCH POCO_ARCH_AARCH64
-+ #define POCO_ARCH_LITTLE_ENDIAN 1
-+#elif defined(__AARCH64EB__)
-+ #define POCO_ARCH POCO_ARCH_AARCH64
-+ #define POCO_ARCH_BIG_ENDIAN 1
- #endif
-
-
---
-1.8.1.4
-
+++ /dev/null
-From: Baruch Siach <baruch@tkos.co.il>
-Subject: [PATCH] poco: add Linux configuration file for generic cross build
-
-This patch adds the Linux-CrossEnv config file to poco. This file is identical
-to the Linux one, except the added CROSSENV variable that allows setting of
-the toolchain prefix.
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
-diff -Nuar poco-1.4.1p1-dist/build/config/Linux-CrossEnv poco-1.4.1p1/build/config/Linux-CrossEnv
---- poco-1.4.1p1-dist/build/config/Linux-CrossEnv 1970-01-01 02:00:00.000000000 +0200
-+++ poco-1.4.1p1/build/config/Linux-CrossEnv 2011-08-02 18:51:03.682047719 +0300
-@@ -0,0 +1,69 @@
-+#
-+# Linux
-+#
-+# Make settings for cross compiled Linux
-+#
-+#
-+
-+#
-+# General Settings
-+#
-+LINKMODE ?= SHARED
-+
-+#
-+# Define Tools
-+#
-+CC = $(CROSSENV)gcc
-+CXX = $(CROSSENV)g++
-+LINK = $(CXX)
-+LIB = $(CROSSENV)ar -cr
-+RANLIB = $(CROSSENV)ranlib
-+SHLIB = $(CXX) -shared -Wl,-soname,$(notdir $@) -o $@
-+SHLIBLN = $(POCO_BASE)/build/script/shlibln
-+STRIP = $(CROSSENV)strip
-+DEP = $(POCO_BASE)/build/script/makedepend.gcc
-+SHELL = sh
-+RM = rm -rf
-+CP = cp
-+MKDIR = mkdir -p
-+
-+#
-+# Extension for Shared Libraries
-+#
-+SHAREDLIBEXT = .so.$(target_version)
-+SHAREDLIBLINKEXT = .so
-+
-+#
-+# Compiler and Linker Flags
-+#
-+CFLAGS =
-+CFLAGS32 =
-+CFLAGS64 =
-+CXXFLAGS = -Wall -Wno-sign-compare
-+CXXFLAGS32 =
-+CXXFLAGS64 =
-+LINKFLAGS =
-+LINKFLAGS32 =
-+LINKFLAGS64 =
-+STATICOPT_CC =
-+STATICOPT_CXX =
-+STATICOPT_LINK = -static
-+SHAREDOPT_CC = -fPIC
-+SHAREDOPT_CXX = -fPIC
-+SHAREDOPT_LINK = -Wl,-rpath,$(LIBPATH)
-+DEBUGOPT_CC = -g -D_DEBUG
-+DEBUGOPT_CXX = -g -D_DEBUG
-+DEBUGOPT_LINK = -g
-+RELEASEOPT_CC = -O2 -DNDEBUG
-+RELEASEOPT_CXX = -O2 -DNDEBUG
-+RELEASEOPT_LINK = -O2
-+
-+#
-+# System Specific Flags
-+#
-+SYSFLAGS = -D_XOPEN_SOURCE=500 -D_REENTRANT -D_THREAD_SAFE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DPOCO_HAVE_FD_EPOLL
-+
-+#
-+# System Specific Libraries
-+#
-+SYSLIBS = -lpthread -ldl -lrt
+++ /dev/null
-From: Baruch Siach <baruch@tkos.co.il>
-Subject: [PATCH] poco: add the staging path to search path
-
-Add the mysql headers and client libraries to the search path of the
-preprocessor and the linker. The $MYSQL_LIBDIR / $MYSQL_INCIDR variables
-must be set from the make command line.
-
-[Peter: Remove host dirs, add MYSQL_INCDIR]
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
---- poco-1.4.4-all-dist/Data/MySQL/Makefile 2012-09-20 01:30:42.000000000 +0300
-+++ poco-1.4.4-all/Data/MySQL/Makefile 2012-10-11 14:36:10.343153420 +0200
-@@ -8,8 +8,8 @@
-
- include $(POCO_BASE)/build/rules/global
-
--SYSLIBS += -L/usr/local/lib$(LIB64SUFFIX)/mysql -L/usr/lib$(LIB64SUFFIX)/mysql -L/usr/mysql/lib$(LIB64SUFFIX)/mysql -L/usr/local/mysql/lib$(LIB64SUFFIX) -lmysqlclient
--INCLUDE += -I/usr/local/include/mysql/ -I/usr/include/mysql -I/usr/mysql/include/mysql -I/usr/local/mysql/include
-+SYSLIBS += -L$(MYSQL_LIBDIR) -lmysqlclient
-+INCLUDE += -I$(MYSQL_INCDIR)
- SYSFLAGS += -DTHREADSAFE -DNO_TCL
-
- objects = Binder Extractor SessionImpl Connector \
+++ /dev/null
-From: Baruch Siach <baruch@tkos.co.il>
-Subject: [PATCH] poco: don't build debug libraries
-
-Remove the debug libraries build dependency from the default target.
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
-
---- poco-1.4.1p1-dist/build/rules/compile 2011-02-09 11:12:24.000000000 +0200
-+++ poco-1.4.1p1/build/rules/compile 2011-08-03 07:51:42.946044176 +0300
-@@ -14,7 +14,7 @@
-
- all: $(DEFAULT_TARGET)
- all_static: static_debug static_release
--all_shared: shared_debug shared_release
-+all_shared: shared_release
- all_debug: static_debug shared_debug
- all_release: static_release shared_release
-
--- /dev/null
+diff -ru popt-1.14_vanilla/popthelp.c popt-1.14_no-wchar/popthelp.c
+--- popt-1.14_vanilla/popthelp.c 2008-03-27 17:33:08.000000000 +0000
++++ popt-1.14_no-wchar/popthelp.c 2008-04-10 05:44:43.000000000 +0000
+@@ -15,7 +15,7 @@
+ #include <sys/ioctl.h>
+ #endif
+
+-#define POPT_WCHAR_HACK
++/* #define POPT_WCHAR_HACK */
+ #ifdef POPT_WCHAR_HACK
+ #include <wchar.h> /* for mbsrtowcs */
+ /*@access mbstate_t @*/
--- /dev/null
+Make sure we can autoreconfigure popt
+
+This commit makes a few changes in the popt build system to allow it
+to be autoreconfigured with modern autotools:
+
+ - the TESTS variable shouldn't be using $(top_srcdir), and since we
+ don't care about tests in Buildroot, we just disable it.
+
+ - the AM_C_PROTOTYPES macro is deprecated and should no longer be
+ used, causes an error with autoconf/automake.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile.am
+===================================================================
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -37,8 +37,6 @@
+ TESTS_ENVIRONMENT = \
+ test1="$(top_builddir)/test1"
+
+-TESTS = $(top_srcdir)/testit.sh
+-
+ include_HEADERS = popt.h
+
+ usrlibdir = $(libdir)
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -46,7 +46,6 @@
+ AC_SYS_LARGEFILE
+
+ AC_ISC_POSIX
+-AM_C_PROTOTYPES
+
+ AC_CHECK_HEADERS(float.h fnmatch.h glob.h langinfo.h libintl.h mcheck.h unistd.h)
+
--- /dev/null
+Detect glob_pattern_p()
+
+The current popt build system tests the existence of <glob.h>, and
+then assumes that if __GLIBC__ is defined, then glob_pattern_p() must
+be available. Unfortunately, that's not true with uClibc: <glob.h> may
+be installed, but not necessarily the GNU glob extensions... and
+uClibc defines __GLIBC__. This is causing build issues with certain
+uClibc toolchains that do not have GNU glob extensions enabled.
+
+To fix this, this patch adds an AC_CHECK_FUNCS() test for
+glob_pattern_p, and uses that to find out whether glob_pattern_p() is
+available or not.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -81,7 +81,7 @@
+ AC_CHECK_FUNC(setreuid, [], [
+ AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi])
+ ])
+-AC_CHECK_FUNCS(getuid geteuid iconv mtrace __secure_getenv setregid stpcpy strerror vasprintf srandom)
++AC_CHECK_FUNCS(getuid geteuid iconv mtrace __secure_getenv setregid stpcpy strerror vasprintf srandom glob_pattern_p)
+
+ AM_GNU_GETTEXT([external])
+ AM_ICONV_LINK
+Index: b/poptconfig.c
+===================================================================
+--- a/poptconfig.c
++++ b/poptconfig.c
+@@ -42,7 +42,7 @@
+ /*@=declundef =exportheader =incondefs =protoparammatch =redecl =type @*/
+ #endif /* __LCLINT__ */
+
+-#if !defined(__GLIBC__)
++#if !defined(HAVE_GLOB_PATTERN_P)
+ /* Return nonzero if PATTERN contains any metacharacters.
+ Metacharacters can be quoted with backslashes if QUOTE is nonzero. */
+ static int
+++ /dev/null
-diff -ru popt-1.14_vanilla/popthelp.c popt-1.14_no-wchar/popthelp.c
---- popt-1.14_vanilla/popthelp.c 2008-03-27 17:33:08.000000000 +0000
-+++ popt-1.14_no-wchar/popthelp.c 2008-04-10 05:44:43.000000000 +0000
-@@ -15,7 +15,7 @@
- #include <sys/ioctl.h>
- #endif
-
--#define POPT_WCHAR_HACK
-+/* #define POPT_WCHAR_HACK */
- #ifdef POPT_WCHAR_HACK
- #include <wchar.h> /* for mbsrtowcs */
- /*@access mbstate_t @*/
+++ /dev/null
-Make sure we can autoreconfigure popt
-
-This commit makes a few changes in the popt build system to allow it
-to be autoreconfigured with modern autotools:
-
- - the TESTS variable shouldn't be using $(top_srcdir), and since we
- don't care about tests in Buildroot, we just disable it.
-
- - the AM_C_PROTOTYPES macro is deprecated and should no longer be
- used, causes an error with autoconf/automake.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile.am
-===================================================================
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -37,8 +37,6 @@
- TESTS_ENVIRONMENT = \
- test1="$(top_builddir)/test1"
-
--TESTS = $(top_srcdir)/testit.sh
--
- include_HEADERS = popt.h
-
- usrlibdir = $(libdir)
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -46,7 +46,6 @@
- AC_SYS_LARGEFILE
-
- AC_ISC_POSIX
--AM_C_PROTOTYPES
-
- AC_CHECK_HEADERS(float.h fnmatch.h glob.h langinfo.h libintl.h mcheck.h unistd.h)
-
+++ /dev/null
-Detect glob_pattern_p()
-
-The current popt build system tests the existence of <glob.h>, and
-then assumes that if __GLIBC__ is defined, then glob_pattern_p() must
-be available. Unfortunately, that's not true with uClibc: <glob.h> may
-be installed, but not necessarily the GNU glob extensions... and
-uClibc defines __GLIBC__. This is causing build issues with certain
-uClibc toolchains that do not have GNU glob extensions enabled.
-
-To fix this, this patch adds an AC_CHECK_FUNCS() test for
-glob_pattern_p, and uses that to find out whether glob_pattern_p() is
-available or not.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -81,7 +81,7 @@
- AC_CHECK_FUNC(setreuid, [], [
- AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi])
- ])
--AC_CHECK_FUNCS(getuid geteuid iconv mtrace __secure_getenv setregid stpcpy strerror vasprintf srandom)
-+AC_CHECK_FUNCS(getuid geteuid iconv mtrace __secure_getenv setregid stpcpy strerror vasprintf srandom glob_pattern_p)
-
- AM_GNU_GETTEXT([external])
- AM_ICONV_LINK
-Index: b/poptconfig.c
-===================================================================
---- a/poptconfig.c
-+++ b/poptconfig.c
-@@ -42,7 +42,7 @@
- /*@=declundef =exportheader =incondefs =protoparammatch =redecl =type @*/
- #endif /* __LCLINT__ */
-
--#if !defined(__GLIBC__)
-+#if !defined(HAVE_GLOB_PATTERN_P)
- /* Return nonzero if PATTERN contains any metacharacters.
- Metacharacters can be quoted with backslashes if QUOTE is nonzero. */
- static int
--- /dev/null
+From af4a27a17bbdbe941f2462e116c2e4c8ade110e3 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 19 Nov 2010 23:35:20 -0500
+Subject: [PATCH 1/4] README: fix typo in tcp wrapper doc
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ README | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/README b/README
+index 0da54cc..916de7e 100644
+--- a/README
++++ b/README
+@@ -18,7 +18,7 @@ There is no "./configure", just use "make".
+
+ Some make variable can be used to control compilation.
+
+- NO_TCP_WRAPPER= if non-empty, doen't use tcp_wrappers
++ NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
+ USE_DNS= if set, tcp_wrappers can check peers based on hostname
+ as well as IP address. This should only be used if you
+ are certain that gethostbyname will never trigger a
+--
+1.7.3.1
+
--- /dev/null
+From 087874b15367a04fd482541d1832696d7163d1ac Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 19 Nov 2010 23:35:47 -0500
+Subject: [PATCH 2/4] NO_PIE: make PIE support controllable
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Makefile | 8 ++++++--
+ README | 1 +
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 5343428..cfcfdbb 100644
+--- a/Makefile
++++ b/Makefile
+@@ -106,6 +106,10 @@ CPPFLAGS += -DIGNORE_SIGCHLD # AIX 4.x, HP-UX 9.x
+ #
+ # LDLIBS += -m
+ # CFLAGS += -arch m68k -arch i386 -arch hppa
++ifeq ($(NO_PIE),)
++CFLAGS_PIE = -fpie
++LDFLAGS_PIE = -pie
++endif
+
+ # Auxiliary libraries that you may have to specify
+ #
+@@ -125,9 +129,9 @@ CFLAGS += -Wall -Wstrict-prototypes
+ all: portmap pmap_dump pmap_set portmap.man
+
+ CPPFLAGS += $(HOSTS_ACCESS)
+-portmap: CFLAGS += -fpie
++portmap: CFLAGS += $(CFLAGS_PIE)
+ portmap: LDLIBS += $(WRAP_LIB)
+-portmap: LDFLAGS += -pie
++portmap: LDFLAGS += $(LDFLAGS_PIE)
+ portmap: portmap.o pmap_check.o from_local.o
+
+ from_local: CPPFLAGS += -DTEST
+diff --git a/README b/README
+index 916de7e..e0b561a 100644
+--- a/README
++++ b/README
+@@ -18,6 +18,7 @@ There is no "./configure", just use "make".
+
+ Some make variable can be used to control compilation.
+
++ NO_PIE= if non-empty, don't build portmap as a PIE
+ NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
+ USE_DNS= if set, tcp_wrappers can check peers based on hostname
+ as well as IP address. This should only be used if you
+--
+1.7.3.1
+
--- /dev/null
+From b3afea5757af1a7356ba30d2e0a7d5909ca18121 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 19 Nov 2010 23:48:20 -0500
+Subject: [PATCH 3/4] NO_FORK: control usage of fork() for nommu systems
+
+nommu systems lack a fork() function, so add a NO_FORK flag to control
+its usage. We don't lose a ton of functionality in doing so, and on an
+embedded system, this is OK.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Makefile | 5 +++++
+ README | 1 +
+ pmap_check.c | 6 ++++--
+ portmap.c | 6 ++++++
+ 4 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index cfcfdbb..9df5574 100644
+--- a/Makefile
++++ b/Makefile
+@@ -27,6 +27,11 @@ MAN_SED += -e 's/USE_DNS/yes/'
+ endif
+ endif
+
++# For no-mmu systems, we have to disable the fork() functions.
++ifneq ($(NO_FORK),)
++CPPFLAGS += -DNO_FORK
++endif
++
+ # Comment out if your RPC library does not allocate privileged ports for
+ # requests from processes with root privilege, or the new portmap will
+ # always reject requests to register/unregister services on privileged
+diff --git a/README b/README
+index e0b561a..bda1707 100644
+--- a/README
++++ b/README
+@@ -18,6 +18,7 @@ There is no "./configure", just use "make".
+
+ Some make variable can be used to control compilation.
+
++ NO_FORK= if non-empty, don't use fork (good for nommu systems)
+ NO_PIE= if non-empty, don't build portmap as a PIE
+ NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
+ USE_DNS= if set, tcp_wrappers can check peers based on hostname
+diff --git a/pmap_check.c b/pmap_check.c
+index 6b3e490..983414e 100644
+--- a/pmap_check.c
++++ b/pmap_check.c
+@@ -302,8 +302,10 @@ static void logit(int severity, struct sockaddr_in *addr,
+ * getrpcbynumber() or syslog() does its thing.
+ */
+
+- if (fork() == 0) {
+-
++#ifndef NO_FORK
++ if (fork() == 0)
++#endif
++ {
+ /* Try to map program number to name. */
+
+ if (prognum == 0) {
+diff --git a/portmap.c b/portmap.c
+index 2a98881..94abc64 100644
+--- a/portmap.c
++++ b/portmap.c
+@@ -753,6 +755,7 @@ static void callit(struct svc_req *rqstp, SVCXPRT *xprt)
+ if ((pml = find_service(a.rmt_prog, a.rmt_vers,
+ (u_long)IPPROTO_UDP)) == NULL)
+ return;
++#ifndef NO_FORK
+ /*
+ * fork a child to do the work. Parent immediately returns.
+ * Child exits upon completion.
+@@ -763,6 +766,7 @@ static void callit(struct svc_req *rqstp, SVCXPRT *xprt)
+ a.rmt_prog);
+ return;
+ }
++#endif
+ port = pml->pml_map.pm_port;
+ get_myaddress(&me);
+ me.sin_port = htons(port);
+@@ -783,7 +787,9 @@ static void callit(struct svc_req *rqstp, SVCXPRT *xprt)
+ clnt_destroy(client);
+ }
+ (void)close(so);
++#ifndef NO_FORK
+ exit(0);
++#endif
+ }
+
+ #ifndef IGNORE_SIGCHLD /* Lionel Cons <cons@dxcern.cern.ch> */
+--
+1.7.3.1
+
--- /dev/null
+From 8cea0778f0fb838a7bd764be08f15e1494e5a0b2 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 19 Nov 2010 23:50:27 -0500
+Subject: [PATCH 4/4] NO_PERROR: control overriding of perror() symbol
+
+Doing static builds of portmap might fail when the C library's perror()
+function is pulled in and collides with portmap's definition. So add a
+flag to control the local override.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Makefile | 5 +++++
+ README | 1 +
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 9df5574..1635107 100644
+--- a/Makefile
++++ b/Makefile
+@@ -32,6 +32,11 @@ ifneq ($(NO_FORK),)
+ CPPFLAGS += -DNO_FORK
+ endif
+
++# For static builds, we might hit perror() symbol clashes
++ifneq ($(NO_PERROR),)
++CPPFLAGS += -DNO_PERROR
++endif
++
+ # Comment out if your RPC library does not allocate privileged ports for
+ # requests from processes with root privilege, or the new portmap will
+ # always reject requests to register/unregister services on privileged
+diff --git a/README b/README
+index bda1707..05861a8 100644
+--- a/README
++++ b/README
+@@ -19,6 +19,7 @@ There is no "./configure", just use "make".
+ Some make variable can be used to control compilation.
+
+ NO_FORK= if non-empty, don't use fork (good for nommu systems)
++ NO_PERROR= if non-empty, don't override the perror() func
+ NO_PIE= if non-empty, don't build portmap as a PIE
+ NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
+ USE_DNS= if set, tcp_wrappers can check peers based on hostname
+diff --git a/portmap.c b/portmap.c
+index 2a98881..94abc64 100644
+--- a/portmap.c
++++ b/portmap.c
+@@ -391,12 +391,14 @@ main(int argc, char **argv)
+ abort();
+ }
+
++#ifndef NO_PERROR
+ /* need to override perror calls in rpc library */
+ void perror(const char *what)
+ {
+
+ syslog(LOG_ERR, "%s: %m", what);
+ }
++#endif
+
+ static struct pmaplist *
+ find_service(u_long prog, u_long vers, u_long prot)
+--
+1.7.3.1
+
--- /dev/null
+Enable compile without tcp-wrappers
+
+Patch by Timothy Redaelli <drizzt@gentoo.org>
+
+http://bugs.gentoo.org/178242
+
+--- portmap_6.0/pmap_check.c
++++ portmap_6.0/pmap_check.c
+@@ -44,7 +44,9 @@
+ #include <netinet/in.h>
+ #include <rpc/rpcent.h>
+ #endif
++#ifdef HOSTS_ACCESS
+ #include <tcpd.h>
++#endif
+ #include <arpa/inet.h>
+ #include <grp.h>
+
+++ /dev/null
-From af4a27a17bbdbe941f2462e116c2e4c8ade110e3 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Fri, 19 Nov 2010 23:35:20 -0500
-Subject: [PATCH 1/4] README: fix typo in tcp wrapper doc
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- README | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/README b/README
-index 0da54cc..916de7e 100644
---- a/README
-+++ b/README
-@@ -18,7 +18,7 @@ There is no "./configure", just use "make".
-
- Some make variable can be used to control compilation.
-
-- NO_TCP_WRAPPER= if non-empty, doen't use tcp_wrappers
-+ NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
- USE_DNS= if set, tcp_wrappers can check peers based on hostname
- as well as IP address. This should only be used if you
- are certain that gethostbyname will never trigger a
---
-1.7.3.1
-
+++ /dev/null
-From 087874b15367a04fd482541d1832696d7163d1ac Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Fri, 19 Nov 2010 23:35:47 -0500
-Subject: [PATCH 2/4] NO_PIE: make PIE support controllable
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- Makefile | 8 ++++++--
- README | 1 +
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 5343428..cfcfdbb 100644
---- a/Makefile
-+++ b/Makefile
-@@ -106,6 +106,10 @@ CPPFLAGS += -DIGNORE_SIGCHLD # AIX 4.x, HP-UX 9.x
- #
- # LDLIBS += -m
- # CFLAGS += -arch m68k -arch i386 -arch hppa
-+ifeq ($(NO_PIE),)
-+CFLAGS_PIE = -fpie
-+LDFLAGS_PIE = -pie
-+endif
-
- # Auxiliary libraries that you may have to specify
- #
-@@ -125,9 +129,9 @@ CFLAGS += -Wall -Wstrict-prototypes
- all: portmap pmap_dump pmap_set portmap.man
-
- CPPFLAGS += $(HOSTS_ACCESS)
--portmap: CFLAGS += -fpie
-+portmap: CFLAGS += $(CFLAGS_PIE)
- portmap: LDLIBS += $(WRAP_LIB)
--portmap: LDFLAGS += -pie
-+portmap: LDFLAGS += $(LDFLAGS_PIE)
- portmap: portmap.o pmap_check.o from_local.o
-
- from_local: CPPFLAGS += -DTEST
-diff --git a/README b/README
-index 916de7e..e0b561a 100644
---- a/README
-+++ b/README
-@@ -18,6 +18,7 @@ There is no "./configure", just use "make".
-
- Some make variable can be used to control compilation.
-
-+ NO_PIE= if non-empty, don't build portmap as a PIE
- NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
- USE_DNS= if set, tcp_wrappers can check peers based on hostname
- as well as IP address. This should only be used if you
---
-1.7.3.1
-
+++ /dev/null
-From b3afea5757af1a7356ba30d2e0a7d5909ca18121 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Fri, 19 Nov 2010 23:48:20 -0500
-Subject: [PATCH 3/4] NO_FORK: control usage of fork() for nommu systems
-
-nommu systems lack a fork() function, so add a NO_FORK flag to control
-its usage. We don't lose a ton of functionality in doing so, and on an
-embedded system, this is OK.
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- Makefile | 5 +++++
- README | 1 +
- pmap_check.c | 6 ++++--
- portmap.c | 6 ++++++
- 4 files changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index cfcfdbb..9df5574 100644
---- a/Makefile
-+++ b/Makefile
-@@ -27,6 +27,11 @@ MAN_SED += -e 's/USE_DNS/yes/'
- endif
- endif
-
-+# For no-mmu systems, we have to disable the fork() functions.
-+ifneq ($(NO_FORK),)
-+CPPFLAGS += -DNO_FORK
-+endif
-+
- # Comment out if your RPC library does not allocate privileged ports for
- # requests from processes with root privilege, or the new portmap will
- # always reject requests to register/unregister services on privileged
-diff --git a/README b/README
-index e0b561a..bda1707 100644
---- a/README
-+++ b/README
-@@ -18,6 +18,7 @@ There is no "./configure", just use "make".
-
- Some make variable can be used to control compilation.
-
-+ NO_FORK= if non-empty, don't use fork (good for nommu systems)
- NO_PIE= if non-empty, don't build portmap as a PIE
- NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
- USE_DNS= if set, tcp_wrappers can check peers based on hostname
-diff --git a/pmap_check.c b/pmap_check.c
-index 6b3e490..983414e 100644
---- a/pmap_check.c
-+++ b/pmap_check.c
-@@ -302,8 +302,10 @@ static void logit(int severity, struct sockaddr_in *addr,
- * getrpcbynumber() or syslog() does its thing.
- */
-
-- if (fork() == 0) {
--
-+#ifndef NO_FORK
-+ if (fork() == 0)
-+#endif
-+ {
- /* Try to map program number to name. */
-
- if (prognum == 0) {
-diff --git a/portmap.c b/portmap.c
-index 2a98881..94abc64 100644
---- a/portmap.c
-+++ b/portmap.c
-@@ -753,6 +755,7 @@ static void callit(struct svc_req *rqstp, SVCXPRT *xprt)
- if ((pml = find_service(a.rmt_prog, a.rmt_vers,
- (u_long)IPPROTO_UDP)) == NULL)
- return;
-+#ifndef NO_FORK
- /*
- * fork a child to do the work. Parent immediately returns.
- * Child exits upon completion.
-@@ -763,6 +766,7 @@ static void callit(struct svc_req *rqstp, SVCXPRT *xprt)
- a.rmt_prog);
- return;
- }
-+#endif
- port = pml->pml_map.pm_port;
- get_myaddress(&me);
- me.sin_port = htons(port);
-@@ -783,7 +787,9 @@ static void callit(struct svc_req *rqstp, SVCXPRT *xprt)
- clnt_destroy(client);
- }
- (void)close(so);
-+#ifndef NO_FORK
- exit(0);
-+#endif
- }
-
- #ifndef IGNORE_SIGCHLD /* Lionel Cons <cons@dxcern.cern.ch> */
---
-1.7.3.1
-
+++ /dev/null
-From 8cea0778f0fb838a7bd764be08f15e1494e5a0b2 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Fri, 19 Nov 2010 23:50:27 -0500
-Subject: [PATCH 4/4] NO_PERROR: control overriding of perror() symbol
-
-Doing static builds of portmap might fail when the C library's perror()
-function is pulled in and collides with portmap's definition. So add a
-flag to control the local override.
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- Makefile | 5 +++++
- README | 1 +
- 2 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 9df5574..1635107 100644
---- a/Makefile
-+++ b/Makefile
-@@ -32,6 +32,11 @@ ifneq ($(NO_FORK),)
- CPPFLAGS += -DNO_FORK
- endif
-
-+# For static builds, we might hit perror() symbol clashes
-+ifneq ($(NO_PERROR),)
-+CPPFLAGS += -DNO_PERROR
-+endif
-+
- # Comment out if your RPC library does not allocate privileged ports for
- # requests from processes with root privilege, or the new portmap will
- # always reject requests to register/unregister services on privileged
-diff --git a/README b/README
-index bda1707..05861a8 100644
---- a/README
-+++ b/README
-@@ -19,6 +19,7 @@ There is no "./configure", just use "make".
- Some make variable can be used to control compilation.
-
- NO_FORK= if non-empty, don't use fork (good for nommu systems)
-+ NO_PERROR= if non-empty, don't override the perror() func
- NO_PIE= if non-empty, don't build portmap as a PIE
- NO_TCP_WRAPPER= if non-empty, don't use tcp_wrappers
- USE_DNS= if set, tcp_wrappers can check peers based on hostname
-diff --git a/portmap.c b/portmap.c
-index 2a98881..94abc64 100644
---- a/portmap.c
-+++ b/portmap.c
-@@ -391,12 +391,14 @@ main(int argc, char **argv)
- abort();
- }
-
-+#ifndef NO_PERROR
- /* need to override perror calls in rpc library */
- void perror(const char *what)
- {
-
- syslog(LOG_ERR, "%s: %m", what);
- }
-+#endif
-
- static struct pmaplist *
- find_service(u_long prog, u_long vers, u_long prot)
---
-1.7.3.1
-
+++ /dev/null
-Enable compile without tcp-wrappers
-
-Patch by Timothy Redaelli <drizzt@gentoo.org>
-
-http://bugs.gentoo.org/178242
-
---- portmap_6.0/pmap_check.c
-+++ portmap_6.0/pmap_check.c
-@@ -44,7 +44,9 @@
- #include <netinet/in.h>
- #include <rpc/rpcent.h>
- #endif
-+#ifdef HOSTS_ACCESS
- #include <tcpd.h>
-+#endif
- #include <arpa/inet.h>
- #include <grp.h>
-
--- /dev/null
+bzero is deprecated in POSIX.1-2001 and removed for POSIX.1-2008 so
+switch to memset instead.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura pptp-1.8.0.orig/pptp_callmgr.c pptp-1.8.0/pptp_callmgr.c
+--- pptp-1.8.0.orig/pptp_callmgr.c 2013-10-23 05:10:46.000000000 -0300
++++ pptp-1.8.0/pptp_callmgr.c 2014-03-31 16:47:42.617643298 -0300
+@@ -340,7 +340,7 @@
+ }
+ #endif
+ if (localbind.s_addr != INADDR_NONE) {
+- bzero(&src, sizeof(src));
++ memset(&src, 0, sizeof(src));
+ src.i.sin_family = AF_INET;
+ src.i.sin_addr = localbind;
+ if (bind(s, &src.a, sizeof(src.i)) != 0) {
+diff -Nura pptp-1.8.0.orig/pptp_gre.c pptp-1.8.0/pptp_gre.c
+--- pptp-1.8.0.orig/pptp_gre.c 2013-10-23 05:10:46.000000000 -0300
++++ pptp-1.8.0/pptp_gre.c 2014-03-31 16:47:30.745249066 -0300
+@@ -103,7 +103,7 @@
+ }
+ #endif
+ if (localbind.s_addr != INADDR_NONE) {
+- bzero(&loc_addr, sizeof(loc_addr));
++ memset(&loc_addr, 0, sizeof(loc_addr));
+ loc_addr.i.sin_family = AF_INET;
+ loc_addr.i.sin_addr = localbind;
+ if (bind(s, &loc_addr.a, sizeof(loc_addr.i)) != 0) {
--- /dev/null
+Fix parallel build issue
+
+The config.h header file must be created before being used to build
+source files that include it, especially version.c. In order for this
+to happen even in highly-parallel builds, we add a dependency of all
+object files on config.h, in order to ensure it gets generated before
+make attempts to build the object files.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -37,6 +37,8 @@
+
+ all: config.h $(PPTP_BIN) pptpsetup.8
+
++$(PPTP_OBJS): config.h
++
+ $(PPTP_BIN): $(PPTP_OBJS) $(PPTP_DEPS)
+ $(CC) -o $(PPTP_BIN) $(PPTP_OBJS) $(LDFLAGS) $(LIBS)
+
+++ /dev/null
-bzero is deprecated in POSIX.1-2001 and removed for POSIX.1-2008 so
-switch to memset instead.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura pptp-1.8.0.orig/pptp_callmgr.c pptp-1.8.0/pptp_callmgr.c
---- pptp-1.8.0.orig/pptp_callmgr.c 2013-10-23 05:10:46.000000000 -0300
-+++ pptp-1.8.0/pptp_callmgr.c 2014-03-31 16:47:42.617643298 -0300
-@@ -340,7 +340,7 @@
- }
- #endif
- if (localbind.s_addr != INADDR_NONE) {
-- bzero(&src, sizeof(src));
-+ memset(&src, 0, sizeof(src));
- src.i.sin_family = AF_INET;
- src.i.sin_addr = localbind;
- if (bind(s, &src.a, sizeof(src.i)) != 0) {
-diff -Nura pptp-1.8.0.orig/pptp_gre.c pptp-1.8.0/pptp_gre.c
---- pptp-1.8.0.orig/pptp_gre.c 2013-10-23 05:10:46.000000000 -0300
-+++ pptp-1.8.0/pptp_gre.c 2014-03-31 16:47:30.745249066 -0300
-@@ -103,7 +103,7 @@
- }
- #endif
- if (localbind.s_addr != INADDR_NONE) {
-- bzero(&loc_addr, sizeof(loc_addr));
-+ memset(&loc_addr, 0, sizeof(loc_addr));
- loc_addr.i.sin_family = AF_INET;
- loc_addr.i.sin_addr = localbind;
- if (bind(s, &loc_addr.a, sizeof(loc_addr.i)) != 0) {
+++ /dev/null
-Fix parallel build issue
-
-The config.h header file must be created before being used to build
-source files that include it, especially version.c. In order for this
-to happen even in highly-parallel builds, we add a dependency of all
-object files on config.h, in order to ensure it gets generated before
-make attempts to build the object files.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile
-===================================================================
---- a/Makefile
-+++ b/Makefile
-@@ -37,6 +37,8 @@
-
- all: config.h $(PPTP_BIN) pptpsetup.8
-
-+$(PPTP_OBJS): config.h
-+
- $(PPTP_BIN): $(PPTP_OBJS) $(PPTP_DEPS)
- $(CC) -o $(PPTP_BIN) $(PPTP_OBJS) $(LDFLAGS) $(LIBS)
-
--- /dev/null
+[PATCH] fix build with libpng 1.4.x
+
+In 1.4.x the png_*_NULL defines are gone. Replace them with a normal
+NULL instead.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/SDL/i_sshot.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: prboom-2.5.0/src/SDL/i_sshot.c
+===================================================================
+--- prboom-2.5.0.orig/src/SDL/i_sshot.c
++++ prboom-2.5.0/src/SDL/i_sshot.c
+@@ -231,7 +231,7 @@ int I_ScreenShot (const char *fname)
+ if (fp)
+ {
+ png_struct *png_ptr = png_create_write_struct(
+- PNG_LIBPNG_VER_STRING, png_error_ptr_NULL, error_fn, warning_fn);
++ PNG_LIBPNG_VER_STRING, NULL, error_fn, warning_fn);
+
+ if (png_ptr)
+ {
+@@ -279,7 +279,7 @@ int I_ScreenShot (const char *fname)
+ break;
+ }
+ }
+- png_destroy_write_struct(&png_ptr, png_infopp_NULL);
++ png_destroy_write_struct(&png_ptr, NULL);
+ }
+ fclose(fp);
+ }
+++ /dev/null
-[PATCH] fix build with libpng 1.4.x
-
-In 1.4.x the png_*_NULL defines are gone. Replace them with a normal
-NULL instead.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/SDL/i_sshot.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: prboom-2.5.0/src/SDL/i_sshot.c
-===================================================================
---- prboom-2.5.0.orig/src/SDL/i_sshot.c
-+++ prboom-2.5.0/src/SDL/i_sshot.c
-@@ -231,7 +231,7 @@ int I_ScreenShot (const char *fname)
- if (fp)
- {
- png_struct *png_ptr = png_create_write_struct(
-- PNG_LIBPNG_VER_STRING, png_error_ptr_NULL, error_fn, warning_fn);
-+ PNG_LIBPNG_VER_STRING, NULL, error_fn, warning_fn);
-
- if (png_ptr)
- {
-@@ -279,7 +279,7 @@ int I_ScreenShot (const char *fname)
- break;
- }
- }
-- png_destroy_write_struct(&png_ptr, png_infopp_NULL);
-+ png_destroy_write_struct(&png_ptr, NULL);
- }
- fclose(fp);
- }
--- /dev/null
+sysctl: remove use of legacy index()
+
+[yann.morin.1998@free.fr: adapt to procps-ng]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+diff -durN procps-v3.3.9.orig/sysctl.c procps-v3.3.9/sysctl.c
+--- procps-v3.3.9.orig/sysctl.c 2013-12-03 12:16:18.000000000 +0100
++++ procps-v3.3.9/sysctl.c 2014-05-31 00:45:00.869748741 +0200
+@@ -794,7 +794,7 @@
+ program_invocation_short_name);
+
+ for ( ; *argv; argv++) {
+- if (WriteMode || index(*argv, '='))
++ if (WriteMode || strchr(*argv, '='))
+ ReturnCode += WriteSetting(*argv);
+ else
+ ReturnCode += ReadSetting(*argv);
+++ /dev/null
-sysctl: remove use of legacy index()
-
-[yann.morin.1998@free.fr: adapt to procps-ng]
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-diff -durN procps-v3.3.9.orig/sysctl.c procps-v3.3.9/sysctl.c
---- procps-v3.3.9.orig/sysctl.c 2013-12-03 12:16:18.000000000 +0100
-+++ procps-v3.3.9/sysctl.c 2014-05-31 00:45:00.869748741 +0200
-@@ -794,7 +794,7 @@
- program_invocation_short_name);
-
- for ( ; *argv; argv++) {
-- if (WriteMode || index(*argv, '='))
-+ if (WriteMode || strchr(*argv, '='))
- ReturnCode += WriteSetting(*argv);
- else
- ReturnCode += ReadSetting(*argv);
--- /dev/null
+--- a/lib/libcap/libcap.h 2008-08-22 19:49:48.000000000 -0700
++++ b/lib/libcap/libcap.h 2010-10-06 15:31:11.000000000 -0700
+@@ -65,7 +65,8 @@ struct _cap_struct {
+ */
+
+ #if !defined(_LINUX_CAPABILITY_VERSION_1) || \
+- (_LINUX_CAPABILITY_VERSION_1 != 0x19980330)
++ ((_LINUX_CAPABILITY_VERSION_1 != 0x19980330) && \
++ (_LINUX_CAPABILITY_VERSION_1 != 0x20071026))
+
+ # error "Kernel <linux/capability.h> does not match library"
+ # error "file "libcap.h" --> fix and recompile libcap"
--- /dev/null
+[PATCH] pr_fnmatch.c: use mempcpy, not __mempcpy to fix linker issue with uClibc
+
+The standard name (as checked for by configure) for the function is mempcpy,
+not __mempcpy, so use that instead.
+
+The existing code happens to work on glibc, as that provides an __mempcpy
+alias, but other C libraries (E.G. uClibc) don't:
+
+./host/usr/bin/arm-linux-nm -D ./staging/lib/libuClibc-0.9.33.2.so | grep mempcpy
+00035d2c W mempcpy
+00036cf8 W wmempcpy
+
+vs
+
+./host/usr/bin/arm-none-linux-gnueabi-nm -D staging/lib/libc-2.18.so | grep mempcpy
+0007d140 T mempcpy
+0007d140 T __mempcpy
+000e15f0 T __mempcpy_chk
+00081828 T __mempcpy_small
+00083148 W wmempcpy
+000e4e3c T __wmempcpy_chk
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ lib/pr_fnmatch.c | 2 +-
+ lib/pr_fnmatch_loop.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: proftpd-1.3.4d/lib/pr_fnmatch.c
+===================================================================
+--- proftpd-1.3.4d.orig/lib/pr_fnmatch.c
++++ proftpd-1.3.4d/lib/pr_fnmatch.c
+@@ -250,7 +250,7 @@
+ # endif
+ # define STRLEN(S) strlen (S)
+ # define STRCAT(D, S) strcat (D, S)
+-# define MEMPCPY(D, S, N) __mempcpy (D, S, N)
++# define MEMPCPY(D, S, N) mempcpy (D, S, N)
+ # define MEMCHR(S, C, N) memchr (S, C, N)
+ # define STRCOLL(S1, S2) strcoll (S1, S2)
+ # include "pr_fnmatch_loop.c"
+Index: proftpd-1.3.4d/lib/pr_fnmatch_loop.c
+===================================================================
+--- proftpd-1.3.4d.orig/lib/pr_fnmatch_loop.c
++++ proftpd-1.3.4d/lib/pr_fnmatch_loop.c
+@@ -54,7 +54,7 @@
+ /* Copy N bytes of SRC to DEST, return pointer to bytes after the
+ last written byte. */
+ static void *
+-__mempcpy (void *dest, const void *src, size_t n)
++mempcpy (void *dest, const void *src, size_t n)
+ {
+ return (char *) memcpy (dest, src, n) + n;
+ }
+++ /dev/null
---- a/lib/libcap/libcap.h 2008-08-22 19:49:48.000000000 -0700
-+++ b/lib/libcap/libcap.h 2010-10-06 15:31:11.000000000 -0700
-@@ -65,7 +65,8 @@ struct _cap_struct {
- */
-
- #if !defined(_LINUX_CAPABILITY_VERSION_1) || \
-- (_LINUX_CAPABILITY_VERSION_1 != 0x19980330)
-+ ((_LINUX_CAPABILITY_VERSION_1 != 0x19980330) && \
-+ (_LINUX_CAPABILITY_VERSION_1 != 0x20071026))
-
- # error "Kernel <linux/capability.h> does not match library"
- # error "file "libcap.h" --> fix and recompile libcap"
+++ /dev/null
-[PATCH] pr_fnmatch.c: use mempcpy, not __mempcpy to fix linker issue with uClibc
-
-The standard name (as checked for by configure) for the function is mempcpy,
-not __mempcpy, so use that instead.
-
-The existing code happens to work on glibc, as that provides an __mempcpy
-alias, but other C libraries (E.G. uClibc) don't:
-
-./host/usr/bin/arm-linux-nm -D ./staging/lib/libuClibc-0.9.33.2.so | grep mempcpy
-00035d2c W mempcpy
-00036cf8 W wmempcpy
-
-vs
-
-./host/usr/bin/arm-none-linux-gnueabi-nm -D staging/lib/libc-2.18.so | grep mempcpy
-0007d140 T mempcpy
-0007d140 T __mempcpy
-000e15f0 T __mempcpy_chk
-00081828 T __mempcpy_small
-00083148 W wmempcpy
-000e4e3c T __wmempcpy_chk
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- lib/pr_fnmatch.c | 2 +-
- lib/pr_fnmatch_loop.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-Index: proftpd-1.3.4d/lib/pr_fnmatch.c
-===================================================================
---- proftpd-1.3.4d.orig/lib/pr_fnmatch.c
-+++ proftpd-1.3.4d/lib/pr_fnmatch.c
-@@ -250,7 +250,7 @@
- # endif
- # define STRLEN(S) strlen (S)
- # define STRCAT(D, S) strcat (D, S)
--# define MEMPCPY(D, S, N) __mempcpy (D, S, N)
-+# define MEMPCPY(D, S, N) mempcpy (D, S, N)
- # define MEMCHR(S, C, N) memchr (S, C, N)
- # define STRCOLL(S1, S2) strcoll (S1, S2)
- # include "pr_fnmatch_loop.c"
-Index: proftpd-1.3.4d/lib/pr_fnmatch_loop.c
-===================================================================
---- proftpd-1.3.4d.orig/lib/pr_fnmatch_loop.c
-+++ proftpd-1.3.4d/lib/pr_fnmatch_loop.c
-@@ -54,7 +54,7 @@
- /* Copy N bytes of SRC to DEST, return pointer to bytes after the
- last written byte. */
- static void *
--__mempcpy (void *dest, const void *src, size_t n)
-+mempcpy (void *dest, const void *src, size_t n)
- {
- return (char *) memcpy (dest, src, n) + n;
- }
--- /dev/null
+Link against libintl if needed
+
+When built against a C library that has locale support, but for which
+intl support is provided by an external libintl library, psmisc
+forgets to link against this library, even though the configure script
+properly checks that.
+
+This patch therefore ensure that we link against libintl when needed,
+thanks to the @INTLLIBS@ variable provided by the configure script.
+
+We do not modify the Makefile.am file, because autoreconfiguring this
+package doesn't work: because of its usage of gettext, it wants to run
+the "autopoint" program, which itself depends on CVS being installed,
+for some strange reasons. That's the reason why we fall back to the
+hacky solution of modifying the Makefile.in file.
+
+Forward-ported Thomas's patch to psmisc 22.16
+from commit f066ed70cd6939838d4057f66798cbc1d972cc73
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura psmisc-22.16.orig/src/Makefile.in psmisc-22.16/src/Makefile.in
+--- psmisc-22.16.orig/src/Makefile.in 2012-03-28 22:27:33.106660358 -0300
++++ psmisc-22.16/src/Makefile.in 2012-03-28 22:28:55.752219349 -0300
+@@ -76,7 +76,7 @@
+ killall_DEPENDENCIES =
+ am_peekfd_OBJECTS = peekfd.$(OBJEXT)
+ peekfd_OBJECTS = $(am_peekfd_OBJECTS)
+-peekfd_LDADD = $(LDADD)
++peekfd_LDADD = $(LDADD) @LIBINTL@
+ am_prtstat_OBJECTS = prtstat.$(OBJEXT)
+ prtstat_OBJECTS = $(am_prtstat_OBJECTS)
+ prtstat_DEPENDENCIES =
--- /dev/null
+[PATCH]: pstree: don't use glibc-specific __progname
+
+uclibc (per default) doesn't implement __progname, and the pstree.x11
+stuff isn't that critical, so just disable it.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: psmisc-22.13/src/pstree.c
+===================================================================
+--- psmisc-22.13.orig/src/pstree.c 2010-07-12 13:10:03.000000000 +0200
++++ psmisc-22.13/src/pstree.c 2011-05-21 16:33:37.456530775 +0200
+@@ -49,8 +49,6 @@
+ #include <selinux/selinux.h>
+ #endif /*WITH_SELINUX */
+
+-extern const char *__progname;
+-
+ #define PROC_BASE "/proc"
+
+ /* UTF-8 defines by Johan Myreen, updated by Ben Winslow */
+@@ -854,9 +852,6 @@
+ textdomain(PACKAGE);
+ #endif
+
+- if (!strcmp(__progname, "pstree.x11"))
+- wait_end = 1;
+-
+ /*
+ * Attempt to figure out a good default symbol set. Will be overriden by
+ * command-line options, if given.
+Index: psmisc-22.13/src/Makefile.in
+===================================================================
+--- psmisc-22.13.orig/src/Makefile.in 2011-05-21 16:33:42.748530777 +0200
++++ psmisc-22.13/src/Makefile.in 2011-05-21 16:33:47.360530782 +0200
+@@ -557,10 +557,6 @@
+ grep '^{ 1,"HUP" },$$' signames.h >/dev/null || \
+ { rm -f signames.h; exit 1; }
+
+-install-exec-hook:
+- cd $(DESTDIR)$(bindir) && \
+- ( [ -h pstree.x11 ] || $(LN_S) pstree pstree.x11)
+-
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+++ /dev/null
-Link against libintl if needed
-
-When built against a C library that has locale support, but for which
-intl support is provided by an external libintl library, psmisc
-forgets to link against this library, even though the configure script
-properly checks that.
-
-This patch therefore ensure that we link against libintl when needed,
-thanks to the @INTLLIBS@ variable provided by the configure script.
-
-We do not modify the Makefile.am file, because autoreconfiguring this
-package doesn't work: because of its usage of gettext, it wants to run
-the "autopoint" program, which itself depends on CVS being installed,
-for some strange reasons. That's the reason why we fall back to the
-hacky solution of modifying the Makefile.in file.
-
-Forward-ported Thomas's patch to psmisc 22.16
-from commit f066ed70cd6939838d4057f66798cbc1d972cc73
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura psmisc-22.16.orig/src/Makefile.in psmisc-22.16/src/Makefile.in
---- psmisc-22.16.orig/src/Makefile.in 2012-03-28 22:27:33.106660358 -0300
-+++ psmisc-22.16/src/Makefile.in 2012-03-28 22:28:55.752219349 -0300
-@@ -76,7 +76,7 @@
- killall_DEPENDENCIES =
- am_peekfd_OBJECTS = peekfd.$(OBJEXT)
- peekfd_OBJECTS = $(am_peekfd_OBJECTS)
--peekfd_LDADD = $(LDADD)
-+peekfd_LDADD = $(LDADD) @LIBINTL@
- am_prtstat_OBJECTS = prtstat.$(OBJEXT)
- prtstat_OBJECTS = $(am_prtstat_OBJECTS)
- prtstat_DEPENDENCIES =
+++ /dev/null
-[PATCH]: pstree: don't use glibc-specific __progname
-
-uclibc (per default) doesn't implement __progname, and the pstree.x11
-stuff isn't that critical, so just disable it.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: psmisc-22.13/src/pstree.c
-===================================================================
---- psmisc-22.13.orig/src/pstree.c 2010-07-12 13:10:03.000000000 +0200
-+++ psmisc-22.13/src/pstree.c 2011-05-21 16:33:37.456530775 +0200
-@@ -49,8 +49,6 @@
- #include <selinux/selinux.h>
- #endif /*WITH_SELINUX */
-
--extern const char *__progname;
--
- #define PROC_BASE "/proc"
-
- /* UTF-8 defines by Johan Myreen, updated by Ben Winslow */
-@@ -854,9 +852,6 @@
- textdomain(PACKAGE);
- #endif
-
-- if (!strcmp(__progname, "pstree.x11"))
-- wait_end = 1;
--
- /*
- * Attempt to figure out a good default symbol set. Will be overriden by
- * command-line options, if given.
-Index: psmisc-22.13/src/Makefile.in
-===================================================================
---- psmisc-22.13.orig/src/Makefile.in 2011-05-21 16:33:42.748530777 +0200
-+++ psmisc-22.13/src/Makefile.in 2011-05-21 16:33:47.360530782 +0200
-@@ -557,10 +557,6 @@
- grep '^{ 1,"HUP" },$$' signames.h >/dev/null || \
- { rm -f signames.h; exit 1; }
-
--install-exec-hook:
-- cd $(DESTDIR)$(bindir) && \
-- ( [ -h pstree.x11 ] || $(LN_S) pstree pstree.x11)
--
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
- .NOEXPORT:
--- /dev/null
+Do not include host paths when cross-compiling.
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr pure-ftpd-1.0.36.org/configure pure-ftpd-1.0.36/configure
+--- pure-ftpd-1.0.36.org/configure 2012-03-16 06:29:23.000000000 +0100
++++ pure-ftpd-1.0.36/configure 2014-09-28 19:55:56.650529713 +0200
+@@ -6319,17 +6319,6 @@
+
+
+
+-if test -d /usr/local/include; then
+- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+-fi
+-
+-if test -d /usr/kerberos/include; then
+- CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
+-fi
+-
+-if test -d /usr/local/lib; then
+- LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-fi
+
+ if uname | fgrep SunOS > /dev/null 2> /dev/null ; then
+ CPPFLAGS="$CPPFLAGS -D_XPG4_2=1"
+++ /dev/null
-Do not include host paths when cross-compiling.
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr pure-ftpd-1.0.36.org/configure pure-ftpd-1.0.36/configure
---- pure-ftpd-1.0.36.org/configure 2012-03-16 06:29:23.000000000 +0100
-+++ pure-ftpd-1.0.36/configure 2014-09-28 19:55:56.650529713 +0200
-@@ -6319,17 +6319,6 @@
-
-
-
--if test -d /usr/local/include; then
-- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
--fi
--
--if test -d /usr/kerberos/include; then
-- CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
--fi
--
--if test -d /usr/local/lib; then
-- LDFLAGS="$LDFLAGS -L/usr/local/lib"
--fi
-
- if uname | fgrep SunOS > /dev/null 2> /dev/null ; then
- CPPFLAGS="$CPPFLAGS -D_XPG4_2=1"
--- /dev/null
+Set correct Python executable path
+
+Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
+
+--- python-ipython-2.1.0/setupbase.py 2014-05-21 15:19:12.000000000 -0400
++++ python-ipython-2.1.0-new/setupbase.py 2014-07-23 23:34:32.892030423 -0400
+@@ -394,7 +394,7 @@ class build_scripts_entrypt(build_script
+
+ mod, func = entrypt.split(':')
+ with open(outfile, 'w') as f:
+- f.write(script_src.format(executable=sys.executable,
++ f.write(script_src.format(executable='/usr/bin/env python',
+ mod=mod, func=func))
+
+ return outfiles, outfiles
+++ /dev/null
-Set correct Python executable path
-
-Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
-
---- python-ipython-2.1.0/setupbase.py 2014-05-21 15:19:12.000000000 -0400
-+++ python-ipython-2.1.0-new/setupbase.py 2014-07-23 23:34:32.892030423 -0400
-@@ -394,7 +394,7 @@ class build_scripts_entrypt(build_script
-
- mod, func = entrypt.split(':')
- with open(outfile, 'w') as f:
-- f.write(script_src.format(executable=sys.executable,
-+ f.write(script_src.format(executable='/usr/bin/env python',
- mod=mod, func=func))
-
- return outfiles, outfiles
--- /dev/null
+Add simple setup.py
+
+Having a setup.py allows to easily get the .py files compiled into
+.pyc, which is good because by default, Buildroot only keeps .pyc
+files on the target.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/setup.py
+===================================================================
+--- /dev/null
++++ b/setup.py
+@@ -0,0 +1,13 @@
++#!/usr/bin/env python
++
++from distutils.core import setup
++
++setup(name='NFC',
++ version='1.0',
++ description='Python NFC',
++ author='Stephen Tiedemann',
++ author_email='stephen.tiedemann@googlemail.com',
++ url='https://launchpad.net/nfcpy',
++ packages=['nfc', 'nfc/dev', 'nfc/llcp', 'nfc/ndef',
++ 'nfc/snep'],
++ )
+++ /dev/null
-Add simple setup.py
-
-Having a setup.py allows to easily get the .py files compiled into
-.pyc, which is good because by default, Buildroot only keeps .pyc
-files on the target.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- /dev/null
-+++ b/setup.py
-@@ -0,0 +1,13 @@
-+#!/usr/bin/env python
-+
-+from distutils.core import setup
-+
-+setup(name='NFC',
-+ version='1.0',
-+ description='Python NFC',
-+ author='Stephen Tiedemann',
-+ author_email='stephen.tiedemann@googlemail.com',
-+ url='https://launchpad.net/nfcpy',
-+ packages=['nfc', 'nfc/dev', 'nfc/llcp', 'nfc/ndef',
-+ 'nfc/snep'],
-+ )
--- /dev/null
+Don't use <fenv.h> on uClibc
+
+The python-numpy code already has provisions to not use <fenv.h> when
+not available. However, it uses __GLIBC__ to know whether fenv.h is
+available or not, but uClibc defines __GLIBC__, so python-numpy thinks
+fenv.h is available.
+
+This patch fixes that by changing all defined(__GLIBC__) occurences by
+(defined(__GLIBC__) && !defined(__UCLIBC__)).
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/numpy/core/include/numpy/ufuncobject.h
+===================================================================
+--- a/numpy/core/include/numpy/ufuncobject.h
++++ b/numpy/core/include/numpy/ufuncobject.h
+@@ -413,11 +413,11 @@
+ (void) fpsetsticky(0); \
+ }
+
+-#elif defined(__GLIBC__) || defined(__APPLE__) || \
++#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \
+ defined(__CYGWIN__) || defined(__MINGW32__) || \
+ (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
+
+-#if defined(__GLIBC__) || defined(__APPLE__) || \
++#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \
+ defined(__MINGW32__) || defined(__FreeBSD__)
+ #include <fenv.h>
+ #elif defined(__CYGWIN__)
+Index: b/numpy/core/src/npymath/ieee754.c.src
+===================================================================
+--- a/numpy/core/src/npymath/ieee754.c.src
++++ b/numpy/core/src/npymath/ieee754.c.src
+@@ -586,11 +586,11 @@
+ }
+
+
+-#elif defined(__GLIBC__) || defined(__APPLE__) || \
++#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \
+ defined(__CYGWIN__) || defined(__MINGW32__) || \
+ (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
+
+-# if defined(__GLIBC__) || defined(__APPLE__) || \
++# if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \
+ defined(__MINGW32__) || defined(__FreeBSD__)
+ # include <fenv.h>
+ # elif defined(__CYGWIN__)
+Index: b/numpy/numarray/_capi.c
+===================================================================
+--- a/numpy/numarray/_capi.c
++++ b/numpy/numarray/_capi.c
+@@ -10,7 +10,7 @@
+ #include <sys/param.h>
+ #endif
+
+-#if defined(__GLIBC__) || defined(__APPLE__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
++#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
+ #include <fenv.h>
+ #elif defined(__CYGWIN__)
+ #include "numpy/fenv/fenv.h"
+@@ -258,7 +258,7 @@
+ }
+
+ /* Likewise for Integer overflows */
+-#if defined(__GLIBC__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
++#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
+ static int int_overflow_error(Float64 value) { /* For x86_64 */
+ feraiseexcept(FE_OVERFLOW);
+ return (int) value;
+@@ -3007,7 +3007,7 @@
+ return retstatus;
+ }
+
+-#elif defined(__GLIBC__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
++#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
+
+ static int
+ NA_checkFPErrors(void)
+++ /dev/null
-Don't use <fenv.h> on uClibc
-
-The python-numpy code already has provisions to not use <fenv.h> when
-not available. However, it uses __GLIBC__ to know whether fenv.h is
-available or not, but uClibc defines __GLIBC__, so python-numpy thinks
-fenv.h is available.
-
-This patch fixes that by changing all defined(__GLIBC__) occurences by
-(defined(__GLIBC__) && !defined(__UCLIBC__)).
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/numpy/core/include/numpy/ufuncobject.h
-===================================================================
---- a/numpy/core/include/numpy/ufuncobject.h
-+++ b/numpy/core/include/numpy/ufuncobject.h
-@@ -413,11 +413,11 @@
- (void) fpsetsticky(0); \
- }
-
--#elif defined(__GLIBC__) || defined(__APPLE__) || \
-+#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \
- defined(__CYGWIN__) || defined(__MINGW32__) || \
- (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
-
--#if defined(__GLIBC__) || defined(__APPLE__) || \
-+#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \
- defined(__MINGW32__) || defined(__FreeBSD__)
- #include <fenv.h>
- #elif defined(__CYGWIN__)
-Index: b/numpy/core/src/npymath/ieee754.c.src
-===================================================================
---- a/numpy/core/src/npymath/ieee754.c.src
-+++ b/numpy/core/src/npymath/ieee754.c.src
-@@ -586,11 +586,11 @@
- }
-
-
--#elif defined(__GLIBC__) || defined(__APPLE__) || \
-+#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \
- defined(__CYGWIN__) || defined(__MINGW32__) || \
- (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
-
--# if defined(__GLIBC__) || defined(__APPLE__) || \
-+# if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || \
- defined(__MINGW32__) || defined(__FreeBSD__)
- # include <fenv.h>
- # elif defined(__CYGWIN__)
-Index: b/numpy/numarray/_capi.c
-===================================================================
---- a/numpy/numarray/_capi.c
-+++ b/numpy/numarray/_capi.c
-@@ -10,7 +10,7 @@
- #include <sys/param.h>
- #endif
-
--#if defined(__GLIBC__) || defined(__APPLE__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
-+#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
- #include <fenv.h>
- #elif defined(__CYGWIN__)
- #include "numpy/fenv/fenv.h"
-@@ -258,7 +258,7 @@
- }
-
- /* Likewise for Integer overflows */
--#if defined(__GLIBC__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
-+#if (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
- static int int_overflow_error(Float64 value) { /* For x86_64 */
- feraiseexcept(FE_OVERFLOW);
- return (int) value;
-@@ -3007,7 +3007,7 @@
- return retstatus;
- }
-
--#elif defined(__GLIBC__) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
-+#elif (defined(__GLIBC__) && !defined(__UCLIBC__)) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
-
- static int
- NA_checkFPErrors(void)
--- /dev/null
+Do not use /usr/include for headers
+
+Using /usr/include is wrong when doing cross-compilation, so get rid
+of it, and rely on the compiler to use the appropriate default paths
+for headers.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/setup.py
+===================================================================
+--- a/setup.py
++++ b/setup.py
+@@ -370,7 +370,7 @@
+ 'ext_modules': plat_ext + [
+ # _fastmath (uses GNU mp library)
+ Extension("Crypto.PublicKey._fastmath",
+- include_dirs=['src/','/usr/include/'],
++ include_dirs=['src/'],
+ libraries=['gmp'],
+ sources=["src/_fastmath.c"]),
+
+++ /dev/null
-Do not use /usr/include for headers
-
-Using /usr/include is wrong when doing cross-compilation, so get rid
-of it, and rely on the compiler to use the appropriate default paths
-for headers.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -370,7 +370,7 @@
- 'ext_modules': plat_ext + [
- # _fastmath (uses GNU mp library)
- Extension("Crypto.PublicKey._fastmath",
-- include_dirs=['src/','/usr/include/'],
-+ include_dirs=['src/'],
- libraries=['gmp'],
- sources=["src/_fastmath.c"]),
-
--- /dev/null
+detect.py: fix the ZMQ version check to the ZMQ version of the buildroot
+
+The setup.py script tries to compile a test C program and runs it, to
+retrieve a version string for the installed ZMQ library, but if the cross
+compiler links it together, the result cannot be run on the host, due to
+different architectures and libraries.
+
+And if the host compiler would compile/link it, it would not link with the
+library version inside buildroot but with the library from the host, possibly returning a wrong version number.
+
+Instead of trying to run the compiled test program to get the version
+dynamically, return the version of the buildroot environment.
+
+Signed-off-by: Michael Rommel <rommel@layer-7.net>
+
+--- pyzmq-13.0.2/buildutils/detect.py.orig 2013-08-10 00:49:28.242557978 +0200
++++ pyzmq-13.0.2/buildutils/detect.py 2013-08-10 00:44:35.197572704 +0200
+@@ -119,15 +119,17 @@ def detect_zmq(basedir, compiler=None, *
+
+ efile = test_compilation(cfile, compiler=compiler, **compiler_attrs)
+
+- result = Popen(efile, stdout=PIPE, stderr=PIPE)
+- so, se = result.communicate()
++ # result = Popen(efile, stdout=PIPE, stderr=PIPE)
++ # so, se = result.communicate()
+ # for py3k:
+- so = so.decode()
+- se = se.decode()
+- if result.returncode:
+- msg = "Error running version detection script:\n%s\n%s" % (so,se)
+- logging.error(msg)
+- raise IOError(msg)
++ #so = so.decode()
++ #se = se.decode()
++ #if result.returncode:
++ # msg = "Error running version detection script:\n%s\n%s" % (so,se)
++ # logging.error(msg)
++ # raise IOError(msg)
++
++ so = "vers: ##ZEROMQ_VERSION##"
+
+ handlers = {'vers': lambda val: tuple(int(v) for v in val.split('.'))}
+
+++ /dev/null
-detect.py: fix the ZMQ version check to the ZMQ version of the buildroot
-
-The setup.py script tries to compile a test C program and runs it, to
-retrieve a version string for the installed ZMQ library, but if the cross
-compiler links it together, the result cannot be run on the host, due to
-different architectures and libraries.
-
-And if the host compiler would compile/link it, it would not link with the
-library version inside buildroot but with the library from the host, possibly returning a wrong version number.
-
-Instead of trying to run the compiled test program to get the version
-dynamically, return the version of the buildroot environment.
-
-Signed-off-by: Michael Rommel <rommel@layer-7.net>
-
---- pyzmq-13.0.2/buildutils/detect.py.orig 2013-08-10 00:49:28.242557978 +0200
-+++ pyzmq-13.0.2/buildutils/detect.py 2013-08-10 00:44:35.197572704 +0200
-@@ -119,15 +119,17 @@ def detect_zmq(basedir, compiler=None, *
-
- efile = test_compilation(cfile, compiler=compiler, **compiler_attrs)
-
-- result = Popen(efile, stdout=PIPE, stderr=PIPE)
-- so, se = result.communicate()
-+ # result = Popen(efile, stdout=PIPE, stderr=PIPE)
-+ # so, se = result.communicate()
- # for py3k:
-- so = so.decode()
-- se = se.decode()
-- if result.returncode:
-- msg = "Error running version detection script:\n%s\n%s" % (so,se)
-- logging.error(msg)
-- raise IOError(msg)
-+ #so = so.decode()
-+ #se = se.decode()
-+ #if result.returncode:
-+ # msg = "Error running version detection script:\n%s\n%s" % (so,se)
-+ # logging.error(msg)
-+ # raise IOError(msg)
-+
-+ so = "vers: ##ZEROMQ_VERSION##"
-
- handlers = {'vers': lambda val: tuple(int(v) for v in val.split('.'))}
-
--- /dev/null
+Add a new --executable option to distribute so that we can
+force the shebang line in installed python scripts.
+
+[Thomas: refresh for setuptools 5.8.]
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/setuptools/command/install.py
+===================================================================
+--- a/setuptools/command/install.py
++++ b/setuptools/command/install.py
+@@ -16,6 +16,7 @@
+ """Use easy_install to install the package, w/dependencies"""
+
+ user_options = orig.install.user_options + [
++ ('executable=', 'e', "specify final destination interpreter path"),
+ ('old-and-unmanageable', None, "Try not to use this!"),
+ ('single-version-externally-managed', None,
+ "used by system package builders to create 'flat' eggs"),
+@@ -31,6 +32,7 @@
+
+ def initialize_options(self):
+ orig.install.initialize_options(self)
++ self.executable = None
+ self.old_and_unmanageable = None
+ self.single_version_externally_managed = None
+
+Index: b/setuptools/command/install_scripts.py
+===================================================================
+--- a/setuptools/command/install_scripts.py
++++ b/setuptools/command/install_scripts.py
+@@ -11,6 +11,13 @@
+ def initialize_options(self):
+ orig.install_scripts.initialize_options(self)
+ self.no_ep = False
++ self.executable = None
++
++ def finalize_options(self):
++ orig.install_scripts.finalize_options(self)
++ self.set_undefined_options('install',
++ ('executable','executable')
++ )
+
+ def run(self):
+ from setuptools.command.easy_install import get_script_args
+@@ -32,6 +39,8 @@
+ )
+ bs_cmd = self.get_finalized_command('build_scripts')
+ executable = getattr(bs_cmd, 'executable', sys_executable)
++ if self.executable is not None:
++ executable = self.executable
+ is_wininst = getattr(
+ self.get_finalized_command("bdist_wininst"), '_is_running', False
+ )
+++ /dev/null
-Add a new --executable option to distribute so that we can
-force the shebang line in installed python scripts.
-
-[Thomas: refresh for setuptools 5.8.]
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setuptools/command/install.py
-===================================================================
---- a/setuptools/command/install.py
-+++ b/setuptools/command/install.py
-@@ -16,6 +16,7 @@
- """Use easy_install to install the package, w/dependencies"""
-
- user_options = orig.install.user_options + [
-+ ('executable=', 'e', "specify final destination interpreter path"),
- ('old-and-unmanageable', None, "Try not to use this!"),
- ('single-version-externally-managed', None,
- "used by system package builders to create 'flat' eggs"),
-@@ -31,6 +32,7 @@
-
- def initialize_options(self):
- orig.install.initialize_options(self)
-+ self.executable = None
- self.old_and_unmanageable = None
- self.single_version_externally_managed = None
-
-Index: b/setuptools/command/install_scripts.py
-===================================================================
---- a/setuptools/command/install_scripts.py
-+++ b/setuptools/command/install_scripts.py
-@@ -11,6 +11,13 @@
- def initialize_options(self):
- orig.install_scripts.initialize_options(self)
- self.no_ep = False
-+ self.executable = None
-+
-+ def finalize_options(self):
-+ orig.install_scripts.finalize_options(self)
-+ self.set_undefined_options('install',
-+ ('executable','executable')
-+ )
-
- def run(self):
- from setuptools.command.easy_install import get_script_args
-@@ -32,6 +39,8 @@
- )
- bs_cmd = self.get_finalized_command('build_scripts')
- executable = getattr(bs_cmd, 'executable', sys_executable)
-+ if self.executable is not None:
-+ executable = self.executable
- is_wininst = getattr(
- self.get_finalized_command("bdist_wininst"), '_is_running', False
- )
--- /dev/null
+[PATCH] fix make install to respect DESTDIR
+
+And also ensure destination directories exist.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ src/Makefile.in | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+Index: qdecoder-r12.0.5/src/Makefile.in
+===================================================================
+--- qdecoder-r12.0.5.orig/src/Makefile.in
++++ qdecoder-r12.0.5/src/Makefile.in
+@@ -78,17 +78,18 @@
+ ${LN_S} -f ${SLIBREALNAME} ${SLIBNAME}
+
+ install: all
+- ${INSTALL_DATA} qdecoder.h ${HEADERDIR}/qdecoder.h
+- ${INSTALL_DATA} ${LIBNAME} ${LIBDIR}/${LIBNAME}
+- ${INSTALL_DATA} ${SLIBREALNAME} ${LIBDIR}/${SLIBREALNAME}
+- ( cd ${LIBDIR}; ${LN_S} -f ${SLIBREALNAME} ${SLIBNAME} )
++ mkdir -p ${DESTDIR}/${HEADERDIR} ${DESTDIR}/${LIBDIR}
++ ${INSTALL_DATA} qdecoder.h ${DESTDIR}/${HEADERDIR}/qdecoder.h
++ ${INSTALL_DATA} ${LIBNAME} ${DESTDIR}/${LIBDIR}/${LIBNAME}
++ ${INSTALL_DATA} ${SLIBREALNAME} ${DESTDIR}/${LIBDIR}/${SLIBREALNAME}
++ ( cd ${DESTDIR}/${LIBDIR}; ${LN_S} -f ${SLIBREALNAME} ${SLIBNAME} )
+
+ deinstall: uninstall
+ uninstall:
+- ${RM} -f ${HEADERDIR}/qdecoder.h
+- ${RM} -f ${LIBDIR}/${LIBNAME}
+- ${RM} -f ${LIBDIR}/${SLIBREALNAME}
+- ${RM} -f ${LIBDIR}/${SLIBNAME}
++ ${RM} -f ${DESTDIR}/${HEADERDIR}/qdecoder.h
++ ${RM} -f ${DESTDIR}/${LIBDIR}/${LIBNAME}
++ ${RM} -f ${DESTDIR}/${LIBDIR}/${SLIBREALNAME}
++ ${RM} -f ${DESTDIR}/${LIBDIR}/${SLIBNAME}
+
+ doc:
+ doxygen doxygen.conf
--- /dev/null
+[PATCH] configure.ac: drop hardcoded paths
+
+Causing problems with cross compilation.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ configure.ac | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+Index: qdecoder-r12.0.5/configure.ac
+===================================================================
+--- qdecoder-r12.0.5.orig/configure.ac
++++ qdecoder-r12.0.5/configure.ac
+@@ -81,10 +81,7 @@
+ AC_CONFIG_HEADER([config.h])
+ AC_CONFIG_FILES([Makefile src/Makefile examples/Makefile])
+
+-## Set path
+-PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
+-CPPFLAGS="$CPPFLAGS -I/usr/include -I/usr/local/include -I./ -D_GNU_SOURCE"
+-LDFLAGS="$LDFLAGS -L/usr/lib -L/usr/local/lib"
++CPPFLAGS="$CPPFLAGS -I./ -D_GNU_SOURCE"
+
+ ## Set autoconf setting
+ #AC_CANONICAL_TARGET
--- /dev/null
+Fixes build error
+
+qcgireq.c: In function '_parse_multipart_value_into_disk':
+qcgireq.c:738:60: error: 'errno' undeclared (first use in this function)
+ DEBUG("I/O error. (errno=%d)", (ioerror == true) ? errno : 0);
+
+Patch downloaded from upstream repo:
+https://github.com/wolkykim/qdecoder/commit/574f0216a51e3e852cd94e2a0a3b52dc64e74548
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+
+From 574f0216a51e3e852cd94e2a0a3b52dc64e74548 Mon Sep 17 00:00:00 2001
+From: nyov <nyov@nexnode.net>
+Date: Fri, 5 Sep 2014 18:41:10 +0000
+Subject: [PATCH] add missing header include
+
+fixes #7
+---
+ src/qcgireq.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/qcgireq.c b/src/qcgireq.c
+index dcb8c57..d34ff83 100644
+--- a/src/qcgireq.c
++++ b/src/qcgireq.c
+@@ -139,6 +139,7 @@
+ #ifndef _WIN32
+ #include <dirent.h>
+ #endif
++#include <errno.h>
+ #include "qdecoder.h"
+ #include "internal.h"
+
+++ /dev/null
-[PATCH] fix make install to respect DESTDIR
-
-And also ensure destination directories exist.
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- src/Makefile.in | 17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
-
-Index: qdecoder-r12.0.5/src/Makefile.in
-===================================================================
---- qdecoder-r12.0.5.orig/src/Makefile.in
-+++ qdecoder-r12.0.5/src/Makefile.in
-@@ -78,17 +78,18 @@
- ${LN_S} -f ${SLIBREALNAME} ${SLIBNAME}
-
- install: all
-- ${INSTALL_DATA} qdecoder.h ${HEADERDIR}/qdecoder.h
-- ${INSTALL_DATA} ${LIBNAME} ${LIBDIR}/${LIBNAME}
-- ${INSTALL_DATA} ${SLIBREALNAME} ${LIBDIR}/${SLIBREALNAME}
-- ( cd ${LIBDIR}; ${LN_S} -f ${SLIBREALNAME} ${SLIBNAME} )
-+ mkdir -p ${DESTDIR}/${HEADERDIR} ${DESTDIR}/${LIBDIR}
-+ ${INSTALL_DATA} qdecoder.h ${DESTDIR}/${HEADERDIR}/qdecoder.h
-+ ${INSTALL_DATA} ${LIBNAME} ${DESTDIR}/${LIBDIR}/${LIBNAME}
-+ ${INSTALL_DATA} ${SLIBREALNAME} ${DESTDIR}/${LIBDIR}/${SLIBREALNAME}
-+ ( cd ${DESTDIR}/${LIBDIR}; ${LN_S} -f ${SLIBREALNAME} ${SLIBNAME} )
-
- deinstall: uninstall
- uninstall:
-- ${RM} -f ${HEADERDIR}/qdecoder.h
-- ${RM} -f ${LIBDIR}/${LIBNAME}
-- ${RM} -f ${LIBDIR}/${SLIBREALNAME}
-- ${RM} -f ${LIBDIR}/${SLIBNAME}
-+ ${RM} -f ${DESTDIR}/${HEADERDIR}/qdecoder.h
-+ ${RM} -f ${DESTDIR}/${LIBDIR}/${LIBNAME}
-+ ${RM} -f ${DESTDIR}/${LIBDIR}/${SLIBREALNAME}
-+ ${RM} -f ${DESTDIR}/${LIBDIR}/${SLIBNAME}
-
- doc:
- doxygen doxygen.conf
+++ /dev/null
-[PATCH] configure.ac: drop hardcoded paths
-
-Causing problems with cross compilation.
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- configure.ac | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-Index: qdecoder-r12.0.5/configure.ac
-===================================================================
---- qdecoder-r12.0.5.orig/configure.ac
-+++ qdecoder-r12.0.5/configure.ac
-@@ -81,10 +81,7 @@
- AC_CONFIG_HEADER([config.h])
- AC_CONFIG_FILES([Makefile src/Makefile examples/Makefile])
-
--## Set path
--PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
--CPPFLAGS="$CPPFLAGS -I/usr/include -I/usr/local/include -I./ -D_GNU_SOURCE"
--LDFLAGS="$LDFLAGS -L/usr/lib -L/usr/local/lib"
-+CPPFLAGS="$CPPFLAGS -I./ -D_GNU_SOURCE"
-
- ## Set autoconf setting
- #AC_CANONICAL_TARGET
+++ /dev/null
-Fixes build error
-
-qcgireq.c: In function '_parse_multipart_value_into_disk':
-qcgireq.c:738:60: error: 'errno' undeclared (first use in this function)
- DEBUG("I/O error. (errno=%d)", (ioerror == true) ? errno : 0);
-
-Patch downloaded from upstream repo:
-https://github.com/wolkykim/qdecoder/commit/574f0216a51e3e852cd94e2a0a3b52dc64e74548
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-
-From 574f0216a51e3e852cd94e2a0a3b52dc64e74548 Mon Sep 17 00:00:00 2001
-From: nyov <nyov@nexnode.net>
-Date: Fri, 5 Sep 2014 18:41:10 +0000
-Subject: [PATCH] add missing header include
-
-fixes #7
----
- src/qcgireq.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/qcgireq.c b/src/qcgireq.c
-index dcb8c57..d34ff83 100644
---- a/src/qcgireq.c
-+++ b/src/qcgireq.c
-@@ -139,6 +139,7 @@
- #ifndef _WIN32
- #include <dirent.h>
- #endif
-+#include <errno.h>
- #include "qdecoder.h"
- #include "internal.h"
-
--- /dev/null
+Don't require Qt GUI module
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+diff -Nrup qextserialport-f83b4e7ca922e53.orig/qextserialport.pro qextserialport-f83b4e7ca922e53/qextserialport.pro
+--- qextserialport-f83b4e7ca922e53.orig/qextserialport.pro 2012-10-17 09:13:53.000000000 +0200
++++ qextserialport-f83b4e7ca922e53/qextserialport.pro 2012-11-13 22:48:29.249431510 +0100
+@@ -41,6 +41,8 @@ macx:qesp_mac_framework {
+
+ win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all
+
++!win32*:!wince*:QT -= gui
++
+ #generate proper library name
+ greaterThan(QT_MAJOR_VERSION, 4) {
+ QESP_LIB_BASENAME = QtExtSerialPort
--- /dev/null
+Create a main include file QExtSerialPort
+
+This main include file will be installed in
+<QExtSerialPort/QExtSerialPort> so that Qt applications can use this
+library by including header files in a Qt-like style.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: qextserialport-ef4af2a2ee3f/src/QExtSerialPort
+===================================================================
+--- /dev/null
++++ qextserialport-ef4af2a2ee3f/src/QExtSerialPort
+@@ -0,0 +1,2 @@
++#include "qextserialport.h"
++#include "qextserialenumerator.h"
--- /dev/null
+Add a pkgconfig file to ease usage with applications
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: qextserialport-ef4af2a2ee3f/qextserialport.pc
+===================================================================
+--- /dev/null
++++ qextserialport-ef4af2a2ee3f/qextserialport.pc
+@@ -0,0 +1,10 @@
++prefix=/usr
++exec_prefix=${prefix}
++libdir=${prefix}/lib
++includedir=${prefix}/include/QExtSerialPort
++
++Name: QtExtSerialPort
++Description: QtExtSerialPort library
++Version: 1.2.0
++Libs: -L${libdir} -lqextserialport
++Cflags: -I${includedir}
+++ /dev/null
-Don't require Qt GUI module
-
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
----
-diff -Nrup qextserialport-f83b4e7ca922e53.orig/qextserialport.pro qextserialport-f83b4e7ca922e53/qextserialport.pro
---- qextserialport-f83b4e7ca922e53.orig/qextserialport.pro 2012-10-17 09:13:53.000000000 +0200
-+++ qextserialport-f83b4e7ca922e53/qextserialport.pro 2012-11-13 22:48:29.249431510 +0100
-@@ -41,6 +41,8 @@ macx:qesp_mac_framework {
-
- win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all
-
-+!win32*:!wince*:QT -= gui
-+
- #generate proper library name
- greaterThan(QT_MAJOR_VERSION, 4) {
- QESP_LIB_BASENAME = QtExtSerialPort
+++ /dev/null
-Create a main include file QExtSerialPort
-
-This main include file will be installed in
-<QExtSerialPort/QExtSerialPort> so that Qt applications can use this
-library by including header files in a Qt-like style.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: qextserialport-ef4af2a2ee3f/src/QExtSerialPort
-===================================================================
---- /dev/null
-+++ qextserialport-ef4af2a2ee3f/src/QExtSerialPort
-@@ -0,0 +1,2 @@
-+#include "qextserialport.h"
-+#include "qextserialenumerator.h"
+++ /dev/null
-Add a pkgconfig file to ease usage with applications
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: qextserialport-ef4af2a2ee3f/qextserialport.pc
-===================================================================
---- /dev/null
-+++ qextserialport-ef4af2a2ee3f/qextserialport.pc
-@@ -0,0 +1,10 @@
-+prefix=/usr
-+exec_prefix=${prefix}
-+libdir=${prefix}/lib
-+includedir=${prefix}/include/QExtSerialPort
-+
-+Name: QtExtSerialPort
-+Description: QtExtSerialPort library
-+Version: 1.2.0
-+Libs: -L${libdir} -lqextserialport
-+Cflags: -I${includedir}
--- /dev/null
+Remove absolute paths to host locations
+
+Signed-off-by: Sagaert Johan <sagaert.johan@skynet.be>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -85,10 +85,8 @@
+
+ ## Set path
+ PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
+-CPPFLAGS="$CPPFLAGS -I/usr/include -I/usr/local/include"
+ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+-LDFLAGS="$LDFLAGS -L/usr/lib -L/usr/local/lib"
+
+ ## Set autoconf setting
+ #AC_CANONICAL_TARGET
--- /dev/null
+Make sure the Makefile obeys $(DESTDIR)
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/Makefile.in
+===================================================================
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -120,48 +120,48 @@
+ install: ${INSTALL_TARGETS}
+
+ install-qlibc: qlibc
+- ${MKDIR_P} ${INST_INCDIR}/qlibc
+- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibc.h ${INST_INCDIR}/qlibc/qlibc.h
+- ${MKDIR_P} ${INST_LIBDIR}
+- ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_LIBNAME} ${INST_LIBDIR}/${QLIBC_LIBNAME}
+- ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_SLIBREALNAME} ${INST_LIBDIR}/${QLIBC_SLIBREALNAME}
+- ( cd ${INST_LIBDIR}; ${LN_S} -f ${QLIBC_SLIBREALNAME} ${QLIBC_SLIBNAME} )
++ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc
++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibc.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibc.h
++ ${MKDIR_P} ${DESTDIR}/${INST_LIBDIR}
++ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_LIBNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBC_LIBNAME}
++ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_SLIBREALNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBREALNAME}
++ ( cd ${DESTDIR}/${INST_LIBDIR}; ${LN_S} -f ${QLIBC_SLIBREALNAME} ${QLIBC_SLIBNAME} )
+
+ uninstall-qlibc:
+- ${RM} -f ${INST_INCDIR}/qlibc/qlibc.h
+- ${RM} -f ${INST_LIBDIR}/${QLIBC_LIBNAME}
+- ${RM} -f ${INST_LIBDIR}/${QLIBC_SLIBREALNAME}
+- ${RM} -f ${INST_LIBDIR}/${QLIBC_SLIBNAME}
++ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibc.h
++ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_LIBNAME}
++ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBREALNAME}
++ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBNAME}
+
+ install-qlibcext: qlibcext
+- ${MKDIR_P} ${INST_INCDIR}/qlibc
+- ${MKDIR_P} ${INST_INCDIR}/qlibc/qlibcext/
+- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext.h ${INST_INCDIR}/qlibc/qlibcext.h
+- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qconfig.h ${INST_INCDIR}/qlibc/qlibcext/qconfig.h
+- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qaconf.h ${INST_INCDIR}/qlibc/qlibcext/qaconf.h
+- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qlog.h ${INST_INCDIR}/qlibc/qlibcext/qlog.h
+- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qhttpclient.h ${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h
+- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qdatabase.h ${INST_INCDIR}/qlibc/qlibcext/qdatabase.h
+- ${MKDIR_P} ${INST_LIBDIR}
+- ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_LIBNAME} ${INST_LIBDIR}/${QLIBCEXT_LIBNAME}
+- ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_SLIBREALNAME} ${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME}
+- ( cd ${INST_LIBDIR}; ${LN_S} -f ${QLIBCEXT_SLIBREALNAME} ${QLIBCEXT_SLIBNAME} )
++ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc
++ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/
++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext.h
++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qconfig.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qconfig.h
++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qaconf.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qaconf.h
++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qlog.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qlog.h
++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qhttpclient.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h
++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qdatabase.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qdatabase.h
++ ${MKDIR_P} ${DESTDIR}/${INST_LIBDIR}
++ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_LIBNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_LIBNAME}
++ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_SLIBREALNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME}
++ ( cd ${DESTDIR}/${INST_LIBDIR}; ${LN_S} -f ${QLIBCEXT_SLIBREALNAME} ${QLIBCEXT_SLIBNAME} )
+
+ uninstall-qlibcext:
+- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext.h
+- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qconfig.h
+- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qaconf.h
+- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qlog.h
+- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h
+- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qdatabase.h
+- ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_LIBNAME}
+- ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME}
+- ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_SLIBNAME}
++ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext.h
++ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qconfig.h
++ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qaconf.h
++ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qlog.h
++ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h
++ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qdatabase.h
++ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_LIBNAME}
++ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME}
++ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBNAME}
+
+ deinstall: uninstall
+ uninstall: uninstall-qlibc uninstall-qlibcext
+- ${RMDIR} ${INST_INCDIR}/qlibc/qlibcext
+- ${RMDIR} ${INST_INCDIR}/qlibc
++ ${RMDIR} ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext
++ ${RMDIR} ${DESTDIR}/${INST_INCDIR}/qlibc
+
+ clean:
+ ${RM} -f ${QLIBC_OBJS}
--- /dev/null
+Allow to explicitly disable openssl and mysql
+
+AC_ARG_WITH() is being incorrectly used: the third argument indicates
+the action that needs to be taken when a value was passed, when not
+the option is enabled. Therefore, the result of the existing code was
+that when you passed --without-mysql or --without-openssl, the
+$withval variable would get the value 'yes', which is obviously wrong.
+
+Instead, we simply empty this third argument, because $withval is
+already properly filled with 'yes' or 'no' by the AC_ARG_WITH()
+function.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -170,7 +170,7 @@
+ ## --with section
+ ##
+
+-AC_ARG_WITH([openssl],[AS_HELP_STRING([--with-openssl], [This will enable HTTPS support in qhttpclient extension API. When it's enabled, user applications will need to link openssl library with -lssl option.])],[withval=yes],[withval=no])
++AC_ARG_WITH([openssl],[AS_HELP_STRING([--with-openssl], [This will enable HTTPS support in qhttpclient extension API. When it's enabled, user applications will need to link openssl library with -lssl option.])],[],[withval=no])
+ if test "$withval" = yes; then
+ if test "$with_openssl" = yes; then
+ with_openssl="/usr/include"
+@@ -185,7 +185,7 @@
+ fi
+ fi
+
+-AC_ARG_WITH([mysql],[AS_HELP_STRING([--with-mysql], [This will enable MySQL database support in qdatabase extension API. When it's enabled, user applications need to link mysql client library. (ex: -lmysqlclient)])],[withval=yes],[withval=no])
++AC_ARG_WITH([mysql],[AS_HELP_STRING([--with-mysql], [This will enable MySQL database support in qdatabase extension API. When it's enabled, user applications need to link mysql client library. (ex: -lmysqlclient)])],[],[withval=no])
+ if test "$withval" = yes; then
+ if test "$with_mysql" = yes; then
+ with_mysql="/usr/include/mysql"
+++ /dev/null
-Remove absolute paths to host locations
-
-Signed-off-by: Sagaert Johan <sagaert.johan@skynet.be>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -85,10 +85,8 @@
-
- ## Set path
- PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
--CPPFLAGS="$CPPFLAGS -I/usr/include -I/usr/local/include"
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
--LDFLAGS="$LDFLAGS -L/usr/lib -L/usr/local/lib"
-
- ## Set autoconf setting
- #AC_CANONICAL_TARGET
+++ /dev/null
-Make sure the Makefile obeys $(DESTDIR)
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/src/Makefile.in
-===================================================================
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -120,48 +120,48 @@
- install: ${INSTALL_TARGETS}
-
- install-qlibc: qlibc
-- ${MKDIR_P} ${INST_INCDIR}/qlibc
-- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibc.h ${INST_INCDIR}/qlibc/qlibc.h
-- ${MKDIR_P} ${INST_LIBDIR}
-- ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_LIBNAME} ${INST_LIBDIR}/${QLIBC_LIBNAME}
-- ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_SLIBREALNAME} ${INST_LIBDIR}/${QLIBC_SLIBREALNAME}
-- ( cd ${INST_LIBDIR}; ${LN_S} -f ${QLIBC_SLIBREALNAME} ${QLIBC_SLIBNAME} )
-+ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc
-+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibc.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibc.h
-+ ${MKDIR_P} ${DESTDIR}/${INST_LIBDIR}
-+ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_LIBNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBC_LIBNAME}
-+ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_SLIBREALNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBREALNAME}
-+ ( cd ${DESTDIR}/${INST_LIBDIR}; ${LN_S} -f ${QLIBC_SLIBREALNAME} ${QLIBC_SLIBNAME} )
-
- uninstall-qlibc:
-- ${RM} -f ${INST_INCDIR}/qlibc/qlibc.h
-- ${RM} -f ${INST_LIBDIR}/${QLIBC_LIBNAME}
-- ${RM} -f ${INST_LIBDIR}/${QLIBC_SLIBREALNAME}
-- ${RM} -f ${INST_LIBDIR}/${QLIBC_SLIBNAME}
-+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibc.h
-+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_LIBNAME}
-+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBREALNAME}
-+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBNAME}
-
- install-qlibcext: qlibcext
-- ${MKDIR_P} ${INST_INCDIR}/qlibc
-- ${MKDIR_P} ${INST_INCDIR}/qlibc/qlibcext/
-- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext.h ${INST_INCDIR}/qlibc/qlibcext.h
-- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qconfig.h ${INST_INCDIR}/qlibc/qlibcext/qconfig.h
-- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qaconf.h ${INST_INCDIR}/qlibc/qlibcext/qaconf.h
-- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qlog.h ${INST_INCDIR}/qlibc/qlibcext/qlog.h
-- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qhttpclient.h ${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h
-- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qdatabase.h ${INST_INCDIR}/qlibc/qlibcext/qdatabase.h
-- ${MKDIR_P} ${INST_LIBDIR}
-- ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_LIBNAME} ${INST_LIBDIR}/${QLIBCEXT_LIBNAME}
-- ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_SLIBREALNAME} ${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME}
-- ( cd ${INST_LIBDIR}; ${LN_S} -f ${QLIBCEXT_SLIBREALNAME} ${QLIBCEXT_SLIBNAME} )
-+ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc
-+ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/
-+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext.h
-+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qconfig.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qconfig.h
-+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qaconf.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qaconf.h
-+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qlog.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qlog.h
-+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qhttpclient.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h
-+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qdatabase.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qdatabase.h
-+ ${MKDIR_P} ${DESTDIR}/${INST_LIBDIR}
-+ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_LIBNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_LIBNAME}
-+ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_SLIBREALNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME}
-+ ( cd ${DESTDIR}/${INST_LIBDIR}; ${LN_S} -f ${QLIBCEXT_SLIBREALNAME} ${QLIBCEXT_SLIBNAME} )
-
- uninstall-qlibcext:
-- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext.h
-- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qconfig.h
-- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qaconf.h
-- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qlog.h
-- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h
-- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qdatabase.h
-- ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_LIBNAME}
-- ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME}
-- ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_SLIBNAME}
-+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext.h
-+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qconfig.h
-+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qaconf.h
-+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qlog.h
-+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h
-+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qdatabase.h
-+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_LIBNAME}
-+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME}
-+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBNAME}
-
- deinstall: uninstall
- uninstall: uninstall-qlibc uninstall-qlibcext
-- ${RMDIR} ${INST_INCDIR}/qlibc/qlibcext
-- ${RMDIR} ${INST_INCDIR}/qlibc
-+ ${RMDIR} ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext
-+ ${RMDIR} ${DESTDIR}/${INST_INCDIR}/qlibc
-
- clean:
- ${RM} -f ${QLIBC_OBJS}
+++ /dev/null
-Allow to explicitly disable openssl and mysql
-
-AC_ARG_WITH() is being incorrectly used: the third argument indicates
-the action that needs to be taken when a value was passed, when not
-the option is enabled. Therefore, the result of the existing code was
-that when you passed --without-mysql or --without-openssl, the
-$withval variable would get the value 'yes', which is obviously wrong.
-
-Instead, we simply empty this third argument, because $withval is
-already properly filled with 'yes' or 'no' by the AC_ARG_WITH()
-function.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -170,7 +170,7 @@
- ## --with section
- ##
-
--AC_ARG_WITH([openssl],[AS_HELP_STRING([--with-openssl], [This will enable HTTPS support in qhttpclient extension API. When it's enabled, user applications will need to link openssl library with -lssl option.])],[withval=yes],[withval=no])
-+AC_ARG_WITH([openssl],[AS_HELP_STRING([--with-openssl], [This will enable HTTPS support in qhttpclient extension API. When it's enabled, user applications will need to link openssl library with -lssl option.])],[],[withval=no])
- if test "$withval" = yes; then
- if test "$with_openssl" = yes; then
- with_openssl="/usr/include"
-@@ -185,7 +185,7 @@
- fi
- fi
-
--AC_ARG_WITH([mysql],[AS_HELP_STRING([--with-mysql], [This will enable MySQL database support in qdatabase extension API. When it's enabled, user applications need to link mysql client library. (ex: -lmysqlclient)])],[withval=yes],[withval=no])
-+AC_ARG_WITH([mysql],[AS_HELP_STRING([--with-mysql], [This will enable MySQL database support in qdatabase extension API. When it's enabled, user applications need to link mysql client library. (ex: -lmysqlclient)])],[],[withval=no])
- if test "$withval" = yes; then
- if test "$with_mysql" = yes; then
- with_mysql="/usr/include/mysql"
--- /dev/null
+Fix -hostprefix behaviour
+
+When -hostprefix ./configure option is used, Qt installs all its
+headers, libraries and binaries inside the given host prefix, instead
+of the prefix. This is used by Buildroot to make sure that all Qt
+libraries and headers are installed in $(STAGING_DIR).
+
+Qt ./configure script also allows to tune the installation location of
+various elements, for examples the plugins through the -plugindir
+option. Unfortunately, this option only impact the installation path
+on the target, but not on the host when -hostprefix is used.
+
+This patch modifies Qt ./configure script so that HOST_*PATH_STR
+variables are composed of the host prefix concatenated with the path
+of installation on the target. This way, the plugin installation local
+in the $(STAGING_DIR) and on the target remains the same.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+---
+ configure | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+Index: qt-everywhere-opensource-src-4.8.1/configure
+===================================================================
+--- qt-everywhere-opensource-src-4.8.1.orig/configure
++++ qt-everywhere-opensource-src-4.8.1/configure
+@@ -4661,15 +4661,15 @@
+
+
+ if [ ! -z "$QT_HOST_PREFIX" ]; then
+- HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
+- HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
+- HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
+- HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
+- HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
+- HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
+- HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/IMPORTS"`
+- HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
+- HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
++ HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX/$QT_INSTALL_PREFIX"`
++ HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/$QT_INSTALL_DOCS"`
++ HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/$QT_INSTALL_HEADERS"`
++ HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/$QT_INSTALL_LIBS"`
++ HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/$QT_INSTALL_BINS"`
++ HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/$QT_INSTALL_PLUGINS"`
++ HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/$QT_INSTALL_IMPORTS"`
++ HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX/$QT_INSTALL_DATA"`
++ HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/$QT_INSTALL_TRANSLATIONS"`
+ HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
+ HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
+ HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
--- /dev/null
+Patch to remove obsolete powervr headers and instead use the headers provided
+on the system.
+
+Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
+---
+Index: qt-4.8.5/src/3rdparty/powervr/pvr2d.h
+===================================================================
+--- qt-4.8.5.orig/src/3rdparty/powervr/pvr2d.h 2013-07-08 11:24:33.010516867 -0500
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,502 +0,0 @@
+-/*!****************************************************************************
+-@File pvr2d.h
+-@Title PVR2D external header file
+-@Author Imagination Technologies
+-@Copyright Copyright (c) by Imagination Technologies Limited.
+- This specification is protected by copyright laws and contains
+- material proprietary to Imagination Technologies Limited.
+- You may use and distribute this specification free of charge for implementing
+- the functionality therein, without altering or removing any trademark, copyright,
+- or other notice from the specification.
+-@Platform Generic
+-@Description PVR2D definitions for PVR2D clients
+-******************************************************************************/
+-
+-
+-/******************************************************************************
+-Modifications :-
+-$Log: pvr2d.h $
+-******************************************************************************/
+-
+-#ifndef _PVR2D_H_
+-#define _PVR2D_H_
+-
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-/* PVR2D Platform-specific definitions */
+-#define PVR2D_EXPORT
+-#define PVR2D_IMPORT
+-
+-
+-#define PVR2D_REV_MAJOR 2
+-#define PVR2D_REV_MINOR 1
+-
+-typedef enum
+-{
+- PVR2D_FALSE = 0,
+- PVR2D_TRUE
+-} PVR2D_BOOL;
+-
+-
+-/* error codes */
+-typedef enum
+-{
+- PVR2D_OK = 0,
+- PVR2DERROR_INVALID_PARAMETER = -1,
+- PVR2DERROR_DEVICE_UNAVAILABLE = -2,
+- PVR2DERROR_INVALID_CONTEXT = -3,
+- PVR2DERROR_MEMORY_UNAVAILABLE = -4,
+- PVR2DERROR_DEVICE_NOT_PRESENT = -5,
+- PVR2DERROR_IOCTL_ERROR = -6,
+- PVR2DERROR_GENERIC_ERROR = -7,
+- PVR2DERROR_BLT_NOTCOMPLETE = -8,
+- PVR2DERROR_HW_FEATURE_NOT_SUPPORTED = -9,
+- PVR2DERROR_NOT_YET_IMPLEMENTED = -10,
+- PVR2DERROR_MAPPING_FAILED = -11
+-}PVR2DERROR;
+-
+-
+-/* pixel formats */
+-typedef enum
+-{
+- PVR2D_1BPP = 0,
+- PVR2D_RGB565,
+- PVR2D_ARGB4444,
+- PVR2D_RGB888,
+- PVR2D_ARGB8888,
+- PVR2D_ARGB1555,
+- PVR2D_ALPHA8,
+- PVR2D_ALPHA4,
+- PVR2D_PAL2,
+- PVR2D_PAL4,
+- PVR2D_PAL8,
+- PVR2D_VGAEMU
+-
+-}PVR2DFORMAT;
+-
+-
+-/* wrap surface type */
+-typedef enum
+-{
+- PVR2D_WRAPFLAG_NONCONTIGUOUS = 0,
+- PVR2D_WRAPFLAG_CONTIGUOUS = 1,
+-
+-}PVR2DWRAPFLAGS;
+-
+-/* flags for control information of additional blits */
+-typedef enum
+-{
+- PVR2D_BLIT_DISABLE_ALL = 0x0000, /* disable all additional controls */
+- PVR2D_BLIT_CK_ENABLE = 0x0001, /* enable colour key */
+- PVR2D_BLIT_GLOBAL_ALPHA_ENABLE = 0x0002, /* enable standard global alpha */
+- PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x0004, /* enable per-pixel alpha bleding */
+- PVR2D_BLIT_PAT_SURFACE_ENABLE = 0x0008, /* enable pattern surf (disable fill) */
+- PVR2D_BLIT_FULLY_SPECIFIED_ALPHA_ENABLE = 0x0010, /* enable fully specified alpha */
+- PVR2D_BLIT_ROT_90 = 0x0020, /* apply 90 degree rotation to the blt */
+- PVR2D_BLIT_ROT_180 = 0x0040, /* apply 180 degree rotation to the blt */
+- PVR2D_BLIT_ROT_270 = 0x0080, /* apply 270 degree rotation to the blt */
+- PVR2D_BLIT_COPYORDER_TL2BR = 0x0100, /* copy order overrides */
+- PVR2D_BLIT_COPYORDER_BR2TL = 0x0200,
+- PVR2D_BLIT_COPYORDER_TR2BL = 0x0400,
+- PVR2D_BLIT_COPYORDER_BL2TR = 0x0800,
+- PVR2D_BLIT_COLKEY_SOURCE = 0x1000, /* Key colour is on the source surface */
+- PVR2D_BLIT_COLKEY_DEST = 0x2000 /* Key colour is on the destination surface */
+-
+-} PVR2DBLITFLAGS;
+-
+-/* standard alpha-blending functions, AlphaBlendingFunc field of PVR2DBLTINFO */
+-typedef enum
+-{
+- PVR2D_ALPHA_OP_SRC_DSTINV = 1, /* source alpha : Cdst = Csrc*Asrc + Cdst*(1-Asrc) */
+- PVR2D_ALPHA_OP_SRCP_DSTINV = 2 /* premultiplied source alpha : Cdst = Csrc + Cdst*(1-Asrc) */
+-} PVR2D_ALPHABLENDFUNC;
+-
+-/* blend ops for fully specified alpha */
+-typedef enum
+-{
+- PVR2D_BLEND_OP_ZERO = 0,
+- PVR2D_BLEND_OP_ONE = 1,
+- PVR2D_BLEND_OP_SRC = 2,
+- PVR2D_BLEND_OP_DST = 3,
+- PVR2D_BLEND_OP_GLOBAL = 4,
+- PVR2D_BLEND_OP_SRC_PLUS_GLOBAL = 5,
+- PVR2D_BLEND_OP_DST_PLUS_GLOBAL = 6
+-}PVR2D_BLEND_OP;
+-
+-
+-typedef void* PVR2D_HANDLE;
+-
+-
+-/* Fully specified alpha blend : pAlpha field of PVR2DBLTINFO structure */
+-/* a fully specified Alpha Blend operation is defined as */
+-/* DST (ALPHA) = (ALPHA_1 * SRC (ALPHA)) + (ALPHA_3 * DST (ALPHA)) */
+-/* DST (RGB) = (ALPHA_2 * SRC (RGB)) + (ALPHA_4 * DST (RGB)) */
+-/* if the pre-multiplication stage is enabled then the equations become the following: */
+-/* PRE_MUL = ((SRC(A)) * (Global Alpha Value)) */
+-/* DST (ALPHA) = (ALPHA_1 * SRC (ALPHA)) + (PRE_MUL * DST (ALPHA)) */
+-/* DST (RGB) = (ALPHA_2 * SRC (RGB)) + (PRE_MUL * DST (RGB)) */
+-/* if the transparent source alpha stage is enabled then a source alpha of zero forces the */
+-/* source to be transparent for that pixel regardless of the blend equation being used. */
+-typedef struct _PVR2D_ALPHABLT
+-{
+- PVR2D_BLEND_OP eAlpha1;
+- PVR2D_BOOL bAlpha1Invert;
+- PVR2D_BLEND_OP eAlpha2;
+- PVR2D_BOOL bAlpha2Invert;
+- PVR2D_BLEND_OP eAlpha3;
+- PVR2D_BOOL bAlpha3Invert;
+- PVR2D_BLEND_OP eAlpha4;
+- PVR2D_BOOL bAlpha4Invert;
+- PVR2D_BOOL bPremulAlpha; /* enable pre-multiplication stage */
+- PVR2D_BOOL bTransAlpha; /* enable transparent source alpha stage */
+- PVR2D_BOOL bUpdateAlphaLookup; /* enable and update the 1555-Lookup alpha table */
+- unsigned char uAlphaLookup0; /* 8 bit alpha when A=0 in a 1555-Lookup surface */
+- unsigned char uAlphaLookup1; /* 8 bit alpha when A=1 in a 1555-Lookup surface */
+- unsigned char uGlobalRGB; /* Global Alpha Value for RGB, 0=transparent 255=opaque */
+- unsigned char uGlobalA; /* Global Alpha Value for Alpha */
+-
+-} PVR2D_ALPHABLT, *PPVR2D_ALPHABLT;
+-
+-
+-/* surface memory info structure */
+-typedef struct _PVR2DMEMINFO
+-{
+- void *pBase;
+- unsigned long ui32MemSize;
+- unsigned long ui32DevAddr;
+- unsigned long ulFlags;
+- void *hPrivateData;
+- void *hPrivateMapData;
+-
+-}PVR2DMEMINFO, *PPVR2DMEMINFO;
+-
+-
+-#define PVR2D_MAX_DEVICE_NAME 20
+-
+-typedef struct _PVR2DDEVICEINFO
+-{
+- unsigned long ulDevID;
+- char szDeviceName[PVR2D_MAX_DEVICE_NAME];
+-}PVR2DDEVICEINFO;
+-
+-
+-typedef struct _PVR2DISPLAYINFO
+-{
+- unsigned long ulMaxFlipChains;
+- unsigned long ulMaxBuffersInChain;
+- PVR2DFORMAT eFormat;
+- unsigned long ulWidth;
+- unsigned long ulHeight;
+- long lStride;
+- unsigned long ulMinFlipInterval;
+- unsigned long ulMaxFlipInterval;
+-
+-}PVR2DDISPLAYINFO;
+-
+-
+-typedef struct _PVR2DBLTINFO
+-{
+- unsigned long CopyCode; /* rop code */
+- unsigned long Colour; /* fill colour */
+- unsigned long ColourKey; /* colour key */
+- unsigned char GlobalAlphaValue; /* global alpha blending */
+- unsigned char AlphaBlendingFunc; /* per-pixel alpha-blending function */
+-
+- PVR2DBLITFLAGS BlitFlags; /* additional blit control information */
+-
+- PVR2DMEMINFO *pDstMemInfo; /* destination memory */
+- unsigned long DstOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
+- long DstStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
+- long DstX, DstY; /* pixel offset from start of dest surface to start of blt rectangle */
+- long DSizeX,DSizeY; /* blt size */
+- PVR2DFORMAT DstFormat; /* dest format */
+- unsigned long DstSurfWidth; /* size of dest surface in pixels */
+- unsigned long DstSurfHeight; /* size of dest surface in pixels */
+-
+- PVR2DMEMINFO *pSrcMemInfo; /* source mem, (source fields are also used for patterns) */
+- unsigned long SrcOffset; /* byte offset from start of allocation to src/pat surface pixel 0,0 */
+- long SrcStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
+- long SrcX, SrcY; /* pixel offset from start of surface to start of source rectangle */
+- /* for patterns this is the start offset within the pattern */
+- long SizeX,SizeY; /* source rectangle size or pattern size in pixels */
+- PVR2DFORMAT SrcFormat; /* source/pattern format */
+- PVR2DMEMINFO *pPalMemInfo; /* source/pattern palette memory containing argb8888 colour table */
+- unsigned long PalOffset; /* byte offset from start of allocation to start of palette */
+- unsigned long SrcSurfWidth; /* size of source surface in pixels */
+- unsigned long SrcSurfHeight; /* size of source surface in pixels */
+-
+- PVR2DMEMINFO *pMaskMemInfo; /* mask memory, 1bpp format implied */
+- unsigned long MaskOffset; /* byte offset from start of allocation to mask surface pixel 0,0 */
+- long MaskStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
+- long MaskX, MaskY; /* mask rect top left (mask size = blt size) */
+- unsigned long MaskSurfWidth; /* size of mask surface in pixels */
+- unsigned long MaskSurfHeight; /* size of mask surface in pixels */
+-
+- PPVR2D_ALPHABLT pAlpha; /* fully specified alpha blend */
+-
+-}PVR2DBLTINFO, *PPVR2DBLTINFO;
+-
+-typedef struct _PVR2DRECT
+-{
+- long left, top;
+- long right, bottom;
+-} PVR2DRECT;
+-
+-typedef struct
+-{
+- PVR2DMEMINFO *pSurfMemInfo; /* surface memory */
+- unsigned long SurfOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
+- long Stride; /* signed stride */
+- PVR2DFORMAT Format;
+- unsigned long SurfWidth; /* surface size in pixels */
+- unsigned long SurfHeight;
+-
+-} PVR2D_SURFACE, *PPVR2D_SURFACE;
+-
+-typedef struct
+-{
+- unsigned long *pUseCode; /* USSE code */
+- unsigned long UseCodeSize; /* usse code size in bytes */
+-
+-} PVR2D_USECODE, *PPVR2D_USECODE;
+-
+-typedef struct
+-{
+- PVR2D_SURFACE sDst; /* destination surface */
+- PVR2D_SURFACE sSrc; /* source surface */
+- PVR2DRECT rcDest; /* destination rectangle */
+- PVR2DRECT rcSource; /* source rectangle */
+- PVR2D_HANDLE hUseCode; /* custom USE code (NULL implies source copy) */
+- unsigned long UseParams[2]; /* per-blt params for use code */
+-
+-} PVR2D_3DBLT, *PPVR2D_3DBLT;
+-
+-
+-#define MAKE_COPY_BLIT(src,soff,dest,doff,sx,sy,dx,dy,sz)
+-
+-typedef void* PVR2DCONTEXTHANDLE;
+-typedef void* PVR2DFLIPCHAINHANDLE;
+-
+-
+-// CopyCode field of PVR2DBLTINFO structure:
+-// the CopyCode field of the PVR2DBLTINFO structure should contain a rop3 or rop4 code.
+-// a rop3 is an 8 bit code that describes a blt with three inputs : source dest and pattern
+-// rop4 is a 16 bit code that describes a blt with four inputs : source dest pattern and mask
+-// common rop3 codes are defined below
+-// a colour fill blt is processed in the pattern channel as a constant colour with a rop code of 0xF0
+-// PVR2D_BLIT_PAT_SURFACE_ENABLE defines whether the pattern channel is a surface or a fill colour.
+-// a rop4 is defined by two rop3 codes, and the 1 bit-per-pixel mask surface defines which is used.
+-// a common rop4 is 0xAAF0 which is the mask copy blt used for text glyphs.
+-// CopyCode is taken to be a rop4 when pMaskMemInfo is non zero, otherwise it is assumed to be a rop3
+-// use the PVR2DMASKROP4 macro below to construct a rop4 from two rop3's
+-// rop3a is the rop used when mask pixel = 1, and rop3b when mask = 0
+-#define PVR2DROP4(rop3b, rop3a) ((rop3b<<8)|rop3a)
+-
+-/* common rop codes */
+-#define PVR2DROPclear 0x00 /* 0 (whiteness) */
+-#define PVR2DROPset 0xFF /* 1 (blackness) */
+-#define PVR2DROPnoop 0xAA /* dst (used for masked blts) */
+-
+-/* source and dest rop codes */
+-#define PVR2DROPand 0x88 /* src AND dst */
+-#define PVR2DROPandReverse 0x44 /* src AND NOT dst */
+-#define PVR2DROPcopy 0xCC /* src (used for source copy and alpha blts) */
+-#define PVR2DROPandInverted 0x22 /* NOT src AND dst */
+-#define PVR2DROPxor 0x66 /* src XOR dst */
+-#define PVR2DROPor 0xEE /* src OR dst */
+-#define PVR2DROPnor 0x11 /* NOT src AND NOT dst */
+-#define PVR2DROPequiv 0x99 /* NOT src XOR dst */
+-#define PVR2DROPinvert 0x55 /* NOT dst */
+-#define PVR2DROPorReverse 0xDD /* src OR NOT dst */
+-#define PVR2DROPcopyInverted 0x33 /* NOT src */
+-#define PVR2DROPorInverted 0xBB /* NOT src OR dst */
+-#define PVR2DROPnand 0x77 /* NOT src OR NOT dst */
+-
+-/* pattern rop codes */
+-#define PVR2DPATROPand 0xA0 /* pat AND dst */
+-#define PVR2DPATROPandReverse 0x50 /* pat AND NOT dst */
+-#define PVR2DPATROPcopy 0xF0 /* pat (used for solid color fills and pattern blts) */
+-#define PVR2DPATROPandInverted 0x0A /* NOT pat AND dst */
+-#define PVR2DPATROPxor 0x5A /* pat XOR dst */
+-#define PVR2DPATROPor 0xFA /* pat OR dst */
+-#define PVR2DPATROPnor 0x05 /* NOT pat AND NOT dst */
+-#define PVR2DPATROPequiv 0xA5 /* NOT pat XOR dst */
+-#define PVR2DPATROPinvert 0x55 /* NOT dst */
+-#define PVR2DPATROPorReverse 0xF5 /* pat OR NOT dst */
+-#define PVR2DPATROPcopyInverted 0x0F /* NOT pat */
+-#define PVR2DPATROPorInverted 0xAF /* NOT pat OR dst */
+-#define PVR2DPATROPnand 0x5F /* NOT pat OR NOT dst */
+-
+-/* common rop4 codes */
+-#define PVR2DROP4MaskedCopy PVR2DROP4(PVR2DROPnoop,PVR2DROPcopy) /* masked source copy blt (used for rounded window corners etc) */
+-#define PVR2DROP4MaskedFill PVR2DROP4(PVR2DROPnoop,PVR2DPATROPcopy) /* masked colour fill blt (used for text) */
+-
+-/* Legacy support */
+-#define PVR2DROP3_PATMASK PVR2DPATROPcopy
+-#define PVR2DROP3_SRCMASK PVR2DROPcopy
+-
+-/* pixmap memory alignment */
+-#define PVR2D_ALIGNMENT_4 4 /* DWORD alignment */
+-#define PVR2D_ALIGNMENT_ANY 0 /* no alignment */
+-#define PVR2D_ALIGNMENT_PALETTE 16 /* 16 byte alignment is required for palettes */
+-
+-/* Heap number for PVR2DGetFrameBuffer */
+-#define PVR2D_FB_PRIMARY_SURFACE 0
+-
+-#define PVR2D_PRESENT_PROPERTY_SRCSTRIDE (1 << 0)
+-#define PVR2D_PRESENT_PROPERTY_DSTSIZE (1 << 1)
+-#define PVR2D_PRESENT_PROPERTY_DSTPOS (1 << 2)
+-#define PVR2D_PRESENT_PROPERTY_CLIPRECTS (1 << 3)
+-#define PVR2D_PRESENT_PROPERTY_INTERVAL (1 << 4)
+-
+-
+-#define PVR2D_CREATE_FLIPCHAIN_SHARED (1 << 0)
+-#define PVR2D_CREATE_FLIPCHAIN_QUERY (1 << 1)
+-
+-/* Functions that the library exports */
+-
+-PVR2D_IMPORT
+-int PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DCreateDeviceContext(unsigned long ulDevID,
+- PVR2DCONTEXTHANDLE* phContext,
+- unsigned long ulFlags);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DDestroyDeviceContext(PVR2DCONTEXTHANDLE hContext);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DGetDeviceInfo(PVR2DCONTEXTHANDLE hContext,
+- PVR2DDISPLAYINFO *pDisplayInfo);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DGetScreenMode(PVR2DCONTEXTHANDLE hContext,
+- PVR2DFORMAT *pFormat,
+- long *plWidth,
+- long *plHeight,
+- long *plStride,
+- int *piRefreshRate);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DGetFrameBuffer(PVR2DCONTEXTHANDLE hContext,
+- int nHeap,
+- PVR2DMEMINFO **ppsMemInfo);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DMemAlloc(PVR2DCONTEXTHANDLE hContext,
+- unsigned long ulBytes,
+- unsigned long ulAlign,
+- unsigned long ulFlags,
+- PVR2DMEMINFO **ppsMemInfo);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DMemWrap(PVR2DCONTEXTHANDLE hContext,
+- void *pMem,
+- unsigned long ulFlags,
+- unsigned long ulBytes,
+- unsigned long alPageAddress[],
+- PVR2DMEMINFO **ppsMemInfo);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DMemMap(PVR2DCONTEXTHANDLE hContext,
+- unsigned long ulFlags,
+- void *hPrivateMapData,
+- PVR2DMEMINFO **ppsDstMem);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DMemFree(PVR2DCONTEXTHANDLE hContext,
+- PVR2DMEMINFO *psMemInfo);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DBlt(PVR2DCONTEXTHANDLE hContext,
+- PVR2DBLTINFO *pBltInfo);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DBltClipped(PVR2DCONTEXTHANDLE hContext,
+- PVR2DBLTINFO *pBltInfo,
+- unsigned long ulNumClipRects,
+- PVR2DRECT *pClipRects);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DQueryBlitsComplete(PVR2DCONTEXTHANDLE hContext,
+- PVR2DMEMINFO *pMemInfo,
+- unsigned int uiWaitForComplete);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DSetPresentBltProperties(PVR2DCONTEXTHANDLE hContext,
+- unsigned long ulPropertyMask,
+- long lSrcStride,
+- unsigned long ulDstWidth,
+- unsigned long ulDstHeight,
+- long lDstXPos,
+- long lDstYPos,
+- unsigned long ulNumClipRects,
+- PVR2DRECT *pClipRects,
+- unsigned long ulSwapInterval);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DPresentBlt(PVR2DCONTEXTHANDLE hContext,
+- PVR2DMEMINFO *pMemInfo,
+- long lRenderID);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DCreateFlipChain(PVR2DCONTEXTHANDLE hContext,
+- unsigned long ulFlags,
+- unsigned long ulNumBuffers,
+- unsigned long ulWidth,
+- unsigned long ulHeight,
+- PVR2DFORMAT eFormat,
+- long *plStride,
+- unsigned long *pulFlipChainID,
+- PVR2DFLIPCHAINHANDLE *phFlipChain);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DDestroyFlipChain(PVR2DCONTEXTHANDLE hContext,
+- PVR2DFLIPCHAINHANDLE hFlipChain);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DGetFlipChainBuffers(PVR2DCONTEXTHANDLE hContext,
+- PVR2DFLIPCHAINHANDLE hFlipChain,
+- unsigned long *pulNumBuffers,
+- PVR2DMEMINFO *psMemInfo[]);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DSetPresentFlipProperties(PVR2DCONTEXTHANDLE hContext,
+- PVR2DFLIPCHAINHANDLE hFlipChain,
+- unsigned long ulPropertyMask,
+- long lDstXPos,
+- long lDstYPos,
+- unsigned long ulNumClipRects,
+- PVR2DRECT *pClipRects,
+- unsigned long ulSwapInterval);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DPresentFlip(PVR2DCONTEXTHANDLE hContext,
+- PVR2DFLIPCHAINHANDLE hFlipChain,
+- PVR2DMEMINFO *psMemInfo,
+- long lRenderID);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DGetAPIRev(long *lRevMajor, long *lRevMinor);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DLoadUseCode (const PVR2DCONTEXTHANDLE hContext, const unsigned char *pUseCode,
+- const unsigned long UseCodeSize, PVR2D_HANDLE *pUseCodeHandle);
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DFreeUseCode (const PVR2DCONTEXTHANDLE hContext, const PVR2D_HANDLE hUseCodeHandle);
+-
+-PVR2D_IMPORT
+-PVR2DERROR PVR2DBlt3D (const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT pBlt3D);
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-
+-#endif /* _PVR2D_H_ */
+-
+-/******************************************************************************
+- End of file (pvr2d.h)
+-******************************************************************************/
+Index: qt-4.8.5/src/3rdparty/powervr/wsegl.h
+===================================================================
+--- qt-4.8.5.orig/src/3rdparty/powervr/wsegl.h 2013-07-08 11:24:33.010516867 -0500
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,240 +0,0 @@
+-/******************************************************************************
+- Name : wsegl.h
+- Copyright : Copyright (c) Imagination Technologies Limited.
+- This specification is protected by copyright laws and contains
+- material proprietary to Imagination Technologies Limited.
+- You may use and distribute this specification free of charge for implementing
+- the functionality therein, without altering or removing any trademark, copyright,
+- or other notice from the specification.
+- Platform : ANSI
+-*****************************************************************************/
+-
+-
+-#if !defined(__WSEGL_H__)
+-#define __WSEGL_H__
+-
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-/*
+-// WSEGL Platform-specific definitions
+-*/
+-#define WSEGL_EXPORT
+-#define WSEGL_IMPORT
+-
+-/*
+-// WSEGL API Version Number
+-*/
+-
+-#define WSEGL_VERSION 1
+-#define WSEGL_DEFAULT_DISPLAY 0
+-#define WSEGL_DEFAULT_NATIVE_ENGINE 0
+-
+-#define WSEGL_FALSE 0
+-#define WSEGL_TRUE 1
+-#define WSEGL_NULL 0
+-
+-#define WSEGL_UNREFERENCED_PARAMETER(param) (param) = (param)
+-
+-/*
+-// WSEGL handles
+-*/
+-typedef void *WSEGLDisplayHandle;
+-typedef void *WSEGLDrawableHandle;
+-
+-/*
+-// Display capability type
+-*/
+-typedef enum WSEGLCapsType_TAG
+-{
+- WSEGL_NO_CAPS = 0,
+- WSEGL_CAP_MIN_SWAP_INTERVAL = 1, /* System default value = 1 */
+- WSEGL_CAP_MAX_SWAP_INTERVAL = 2, /* System default value = 1 */
+- WSEGL_CAP_WINDOWS_USE_HW_SYNC = 3, /* System default value = 0 (FALSE) */
+- WSEGL_CAP_PIXMAPS_USE_HW_SYNC = 4, /* System default value = 0 (FALSE) */
+-
+-} WSEGLCapsType;
+-
+-/*
+-// Display capability
+-*/
+-typedef struct WSEGLCaps_TAG
+-{
+- WSEGLCapsType eCapsType;
+- unsigned long ui32CapsValue;
+-
+-} WSEGLCaps;
+-
+-/*
+-// Drawable type
+-*/
+-#define WSEGL_NO_DRAWABLE 0x0
+-#define WSEGL_DRAWABLE_WINDOW 0x1
+-#define WSEGL_DRAWABLE_PIXMAP 0x2
+-
+-
+-/*
+-// Pixel format of display/drawable
+-*/
+-typedef enum WSEGLPixelFormat_TAG
+-{
+- WSEGL_PIXELFORMAT_565 = 0,
+- WSEGL_PIXELFORMAT_4444 = 1,
+- WSEGL_PIXELFORMAT_8888 = 2,
+- WSEGL_PIXELFORMAT_1555 = 3
+-
+-} WSEGLPixelFormat;
+-
+-/*
+-// Transparent of display/drawable
+-*/
+-typedef enum WSEGLTransparentType_TAG
+-{
+- WSEGL_OPAQUE = 0,
+- WSEGL_COLOR_KEY = 1,
+-
+-} WSEGLTransparentType;
+-
+-/*
+-// Display/drawable configuration
+-*/
+-typedef struct WSEGLConfig_TAG
+-{
+- /*
+- // Type of drawables this configuration applies to -
+- // OR'd values of drawable types.
+- */
+- unsigned long ui32DrawableType;
+-
+- /* Pixel format */
+- WSEGLPixelFormat ePixelFormat;
+-
+- /* Native Renderable - set to WSEGL_TRUE if native renderable */
+- unsigned long ulNativeRenderable;
+-
+- /* FrameBuffer Level Parameter */
+- unsigned long ulFrameBufferLevel;
+-
+- /* Native Visual ID */
+- unsigned long ulNativeVisualID;
+-
+- /* Native Visual */
+- void *hNativeVisual;
+-
+- /* Transparent Type */
+- WSEGLTransparentType eTransparentType;
+-
+- /* Transparent Color - only used if transparent type is COLOR_KEY */
+- unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
+-
+-
+-} WSEGLConfig;
+-
+-/*
+-// WSEGL errors
+-*/
+-typedef enum WSEGLError_TAG
+-{
+- WSEGL_SUCCESS = 0,
+- WSEGL_CANNOT_INITIALISE = 1,
+- WSEGL_BAD_NATIVE_DISPLAY = 2,
+- WSEGL_BAD_NATIVE_WINDOW = 3,
+- WSEGL_BAD_NATIVE_PIXMAP = 4,
+- WSEGL_BAD_NATIVE_ENGINE = 5,
+- WSEGL_BAD_DRAWABLE = 6,
+- WSEGL_BAD_CONFIG = 7,
+- WSEGL_OUT_OF_MEMORY = 8
+-
+-} WSEGLError;
+-
+-/*
+-// Drawable orientation (in degrees anti-clockwise)
+-*/
+-typedef enum WSEGLRotationAngle_TAG
+-{
+- WSEGL_ROTATE_0 = 0,
+- WSEGL_ROTATE_90 = 1,
+- WSEGL_ROTATE_180 = 2,
+- WSEGL_ROTATE_270 = 3
+-
+-} WSEGLRotationAngle;
+-
+-/*
+-// Drawable information required by OpenGL-ES driver
+-*/
+-typedef struct WSEGLDrawableParams_TAG
+-{
+- /* Width in pixels of the drawable */
+- unsigned long ui32Width;
+-
+- /* Height in pixels of the drawable */
+- unsigned long ui32Height;
+-
+- /* Stride in pixels of the drawable */
+- unsigned long ui32Stride;
+-
+- /* Pixel format of the drawable */
+- WSEGLPixelFormat ePixelFormat;
+-
+- /* User space cpu virtual address of the drawable */
+- void *pvLinearAddress;
+-
+- /* HW address of the drawable */
+- unsigned long ui32HWAddress;
+-
+- /* Private data for the drawable */
+- void *hPrivateData;
+-
+-} WSEGLDrawableParams;
+-
+-
+-/*
+-// Table of function pointers that is returned by WSEGL_GetFunctionTablePointer()
+-//
+-// The first entry in the table is the version number of the wsegl.h header file that
+-// the module has been written against, and should therefore be set to WSEGL_VERSION
+-*/
+-typedef struct WSEGL_FunctionTable_TAG
+-{
+- unsigned long ui32WSEGLVersion;
+-
+- WSEGLError (*pfnWSEGL_IsDisplayValid)(NativeDisplayType);
+-
+- WSEGLError (*pfnWSEGL_InitialiseDisplay)(NativeDisplayType, WSEGLDisplayHandle *, const WSEGLCaps **, WSEGLConfig **);
+-
+- WSEGLError (*pfnWSEGL_CloseDisplay)(WSEGLDisplayHandle);
+-
+- WSEGLError (*pfnWSEGL_CreateWindowDrawable)(WSEGLDisplayHandle, WSEGLConfig *, WSEGLDrawableHandle *, NativeWindowType, WSEGLRotationAngle *);
+-
+- WSEGLError (*pfnWSEGL_CreatePixmapDrawable)(WSEGLDisplayHandle, WSEGLConfig *, WSEGLDrawableHandle *, NativePixmapType, WSEGLRotationAngle *);
+-
+- WSEGLError (*pfnWSEGL_DeleteDrawable)(WSEGLDrawableHandle);
+-
+- WSEGLError (*pfnWSEGL_SwapDrawable)(WSEGLDrawableHandle, unsigned long);
+-
+- WSEGLError (*pfnWSEGL_SwapControlInterval)(WSEGLDrawableHandle, unsigned long);
+-
+- WSEGLError (*pfnWSEGL_WaitNative)(WSEGLDrawableHandle, unsigned long);
+-
+- WSEGLError (*pfnWSEGL_CopyFromDrawable)(WSEGLDrawableHandle, NativePixmapType);
+-
+- WSEGLError (*pfnWSEGL_CopyFromPBuffer)(void *, unsigned long, unsigned long, unsigned long, WSEGLPixelFormat, NativePixmapType);
+-
+- WSEGLError (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle, WSEGLDrawableParams *, WSEGLDrawableParams *);
+-
+-
+-} WSEGL_FunctionTable;
+-
+-
+-WSEGL_IMPORT const WSEGL_FunctionTable *WSEGL_GetFunctionTablePointer(void);
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-
+-#endif /* __WSEGL_H__ */
+-
+-/******************************************************************************
+- End of file (wsegl.h)
+-******************************************************************************/
+Index: qt-4.8.5/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
+===================================================================
+--- qt-4.8.5.orig/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c 2013-07-08 11:24:33.010516867 -0500
++++ qt-4.8.5/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c 2013-07-08 11:28:26.142521123 -0500
+@@ -39,7 +39,7 @@
+ **
+ ****************************************************************************/
+
+-#include <GLES/eglplatform.h>
++#include <EGL/eglplatform.h>
+ #include <wsegl.h>
+ #include <pvr2d.h>
+ #include <string.h>
+@@ -379,6 +379,20 @@
+ return WSEGL_SUCCESS;
+ }
+
++/* Function stub for ConnectDrawable() */
++static WSEGLError wseglConnectDrawable(WSEGLDrawableHandle hDrawable)
++{
++ WSEGL_UNREFERENCED_PARAMETER(hDrawable);
++ return WSEGL_SUCCESS;
++}
++
++/* Function stub for DisconnectDrawable() */
++static WSEGLError wseglDisconnectDrawable(WSEGLDrawableHandle hDrawable)
++{
++ WSEGL_UNREFERENCED_PARAMETER(hDrawable);
++ return WSEGL_SUCCESS;
++}
++
+ static WSEGL_FunctionTable const wseglFunctions = {
+ WSEGL_VERSION,
+ wseglIsDisplayValid,
+@@ -392,7 +406,9 @@
+ wseglWaitNative,
+ wseglCopyFromDrawable,
+ wseglCopyFromPBuffer,
+- wseglGetDrawableParameters
++ wseglGetDrawableParameters,
++ wseglConnectDrawable,
++ wseglDisconnectDrawable
+ };
+
+ /* Return the table of WSEGL functions to the EGL implementation */
--- /dev/null
+From d4d07dac01796b2aa0fb501c14865cab7e42b3a9 Mon Sep 17 00:00:00 2001
+From: Mischa Jonker <mischa.jonker@synopsys.com>
+Date: Sun, 4 Nov 2012 11:42:04 +0100
+Subject: [PATCH] Fix const-related build error in generic atomic ops
+
+It's still not entirely const-correct though. In all other architectures
+this is obfuscated through the use of inline asm (which the compiler
+doesn't check). This patch obfuscates through const_cast
+---
+ src/corelib/arch/generic/qatomic_generic_unix.cpp | 8 ++++----
+ src/corelib/arch/qatomic_generic.h | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/corelib/arch/generic/qatomic_generic_unix.cpp b/src/corelib/arch/generic/qatomic_generic_unix.cpp
+index 1c6cbf0..6fce81d 100644
+--- a/src/corelib/arch/generic/qatomic_generic_unix.cpp
++++ b/src/corelib/arch/generic/qatomic_generic_unix.cpp
+@@ -85,13 +85,13 @@ int QBasicAtomicInt_fetchAndAddOrdered(volatile int *_q_value, int valueToAdd)
+
+ Q_CORE_EXPORT
+ bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *_q_value,
+- void *expectedValue,
+- void *newValue)
++ const void *expectedValue,
++ const void *newValue)
+ {
+ bool returnValue = false;
+ pthread_mutex_lock(&qAtomicMutex);
+ if (*_q_value == expectedValue) {
+- *_q_value = newValue;
++ *_q_value = const_cast<void*>(newValue);
+ returnValue = true;
+ }
+ pthread_mutex_unlock(&qAtomicMutex);
+diff --git a/src/corelib/arch/qatomic_generic.h b/src/corelib/arch/qatomic_generic.h
+index 621a767..4c14679 100644
+--- a/src/corelib/arch/qatomic_generic.h
++++ b/src/corelib/arch/qatomic_generic.h
+@@ -105,7 +105,7 @@ Q_CORE_EXPORT bool QBasicAtomicInt_testAndSetOrdered(volatile int *, int, int);
+ Q_CORE_EXPORT int QBasicAtomicInt_fetchAndStoreOrdered(volatile int *, int);
+ Q_CORE_EXPORT int QBasicAtomicInt_fetchAndAddOrdered(volatile int *, int);
+
+-Q_CORE_EXPORT bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *, void *, void *);
++Q_CORE_EXPORT bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *, const void *, const void *);
+ Q_CORE_EXPORT void *QBasicAtomicPointer_fetchAndStoreOrdered(void * volatile *, void *);
+ Q_CORE_EXPORT void *QBasicAtomicPointer_fetchAndAddOrdered(void * volatile *, qptrdiff);
+
+--
+1.7.0.4
+
--- /dev/null
+Add pthred_getattr_np / phread_attr_getstrack alternatives for uClibc
+
+Based on https://dev.openwrt.org/log/packages/Xorg/lib/qt4/patches/100-fix-webkit-for-uclibc.patch?rev=20371
+
+Signed-off-by: Johan Sagaert <sagaert.johan@skynet.be>
+---
+ src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp | 61 ++++++++++
+ 1 file changed, 61 insertions(+)
+
+Index: qt-everywhere-opensource-src-4.8.1/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
+===================================================================
+--- qt-everywhere-opensource-src-4.8.1.orig/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
++++ qt-everywhere-opensource-src-4.8.1/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
+@@ -70,6 +70,23 @@
+ #endif
+ #include <unistd.h>
+
++#if defined(QT_LINUXBASE)
++#include <dlfcn.h>
++#endif
++
++#if defined(__UCLIBC__)
++// versions of uClibc 0.9.32 and below with linuxthreads.old do not have
++// pthread_getattr_np or pthread_attr_getstack.
++#if __UCLIBC_MAJOR__ == 0 && \
++ (__UCLIBC_MINOR__ < 9 || \
++ (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ <= 32)) && \
++ defined(__LINUXTHREADS_OLD__)
++#define UCLIBC_USE_PROC_SELF_MAPS 1
++#include <stdio_ext.h>
++extern int *__libc_stack_end;
++#endif
++#endif
++
+ #if OS(SOLARIS)
+ #include <thread.h>
+ #else
+@@ -648,6 +665,37 @@
+ get_thread_info(find_thread(NULL), &threadInfo);
+ return threadInfo.stack_end;
+ #elif OS(UNIX)
++#ifdef UCLIBC_USE_PROC_SELF_MAPS
++ // Read /proc/self/maps and locate the line whose address
++ // range contains __libc_stack_end.
++ FILE *file = fopen("/proc/self/maps", "r");
++ if (!file)
++ return 0;
++ __fsetlocking(file, FSETLOCKING_BYCALLER);
++ char *line = NULL;
++ size_t lineLen = 0;
++ while (!feof_unlocked(file)) {
++ if (getdelim(&line, &lineLen, '\n', file) <= 0)
++ break;
++
++ long from;
++ long to;
++ if (sscanf (line, "%lx-%lx", &from, &to) != 2)
++ continue;
++ if (from <= (long)__libc_stack_end && (long)__libc_stack_end < to) {
++ fclose(file);
++ free(line);
++#ifdef _STACK_GROWS_UP
++ return (void *)from;
++#else
++ return (void *)to;
++#endif
++ }
++ }
++ fclose(file);
++ free(line);
++ return 0;
++#else
+ AtomicallyInitializedStatic(Mutex&, mutex = *new Mutex);
+ MutexLocker locker(mutex);
+ static void* stackBase = 0;
+@@ -655,11 +703,23 @@
+ static pthread_t stackThread;
+ pthread_t thread = pthread_self();
+ if (stackBase == 0 || thread != stackThread) {
++
++#if defined(QT_LINUXBASE)
++ // LinuxBase is missing pthread_getattr_np - resolve it once at runtime instead
++ // see http://bugs.linuxbase.org/show_bug.cgi?id=2364
++ typedef int (*GetAttrPtr)(pthread_t, pthread_attr_t *);
++ static int (*pthread_getattr_np_ptr)(pthread_t, pthread_attr_t *) = 0;
++ if (!pthread_getattr_np_ptr)
++ *(void **)&pthread_getattr_np_ptr = dlsym(RTLD_DEFAULT, "pthread_getattr_np");
++#endif
+ pthread_attr_t sattr;
+ pthread_attr_init(&sattr);
+ #if HAVE(PTHREAD_NP_H) || OS(NETBSD)
+ // e.g. on FreeBSD 5.4, neundorf@kde.org
+ pthread_attr_get_np(thread, &sattr);
++#elif defined(QT_LINUXBASE)
++ if (pthread_getattr_np_ptr)
++ pthread_getattr_np_ptr(thread, &sattr);
+ #else
+ // FIXME: this function is non-portable; other POSIX systems may have different np alternatives
+ pthread_getattr_np(thread, &sattr);
+@@ -671,6 +731,7 @@
+ stackThread = thread;
+ }
+ return static_cast<char*>(stackBase) + stackSize;
++#endif
+ #else
+ #error Need a way to get the stack base on this platform
+ #endif
--- /dev/null
+[PATCH] fix build with script+dbus enabled, but no gui
+
+The script/qtdbus plugin doesn't need gui support, so don't try to
+link it against libQtGui.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/plugins/script/qtdbus/qtdbus.pro | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: qt-4.7.3/src/plugins/script/qtdbus/qtdbus.pro
+===================================================================
+--- qt-4.7.3.orig/src/plugins/script/qtdbus/qtdbus.pro
++++ qt-4.7.3/src/plugins/script/qtdbus/qtdbus.pro
+@@ -1,6 +1,6 @@
+ TARGET = qtscriptdbus
+ include(../../qpluginbase.pri)
+-QT = core gui script
++QT = core script
+ CONFIG += qdbus
+
+ SOURCES += main.cpp
--- /dev/null
+From 6f88b27de256266947a7f6a3e70e18510754aab2 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Sat, 14 Apr 2012 20:36:07 +0200
+Subject: [PATCH] mkspecs/common/posix: fix !largefile builds on uClibc
+
+uClibc doesn't even define O_LARGEFILE when not configured with large file
+support, so ensure this define is only used when Qt is built with
+-largefile, otherwise the build fails with:
+
+io/qtemporaryfile.cpp: In function 'bool createFileFromTemplate(
+ NativeFileHandle&, QFileSystemEntry::NativePath&, size_t, size_t,
+ QSystemError&)':
+io/qtemporaryfile.cpp:197:57: error: 'O_LARGEFILE' was not declared in
+ this scope
+
+Reported-Upstream: https://bugreports.qt-project.org/browse/QTBUG-25321
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ mkspecs/common/posix/qplatformdefs.h | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/mkspecs/common/posix/qplatformdefs.h b/mkspecs/common/posix/qplatformdefs.h
+index daecc00..8a796cf 100644
+--- a/mkspecs/common/posix/qplatformdefs.h
++++ b/mkspecs/common/posix/qplatformdefs.h
+@@ -123,7 +123,12 @@
+ #define QT_READ ::read
+ #define QT_WRITE ::write
+
++#ifdef QT_LARGEFILE_SUPPORT
+ #define QT_OPEN_LARGEFILE O_LARGEFILE
++#else
++#define QT_OPEN_LARGEFILE 0
++#endif
++
+ #define QT_OPEN_RDONLY O_RDONLY
+ #define QT_OPEN_WRONLY O_WRONLY
+ #define QT_OPEN_RDWR O_RDWR
+--
+1.7.8.3
+
+++ /dev/null
-Fix -hostprefix behaviour
-
-When -hostprefix ./configure option is used, Qt installs all its
-headers, libraries and binaries inside the given host prefix, instead
-of the prefix. This is used by Buildroot to make sure that all Qt
-libraries and headers are installed in $(STAGING_DIR).
-
-Qt ./configure script also allows to tune the installation location of
-various elements, for examples the plugins through the -plugindir
-option. Unfortunately, this option only impact the installation path
-on the target, but not on the host when -hostprefix is used.
-
-This patch modifies Qt ./configure script so that HOST_*PATH_STR
-variables are composed of the host prefix concatenated with the path
-of installation on the target. This way, the plugin installation local
-in the $(STAGING_DIR) and on the target remains the same.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
- configure | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-Index: qt-everywhere-opensource-src-4.8.1/configure
-===================================================================
---- qt-everywhere-opensource-src-4.8.1.orig/configure
-+++ qt-everywhere-opensource-src-4.8.1/configure
-@@ -4661,15 +4661,15 @@
-
-
- if [ ! -z "$QT_HOST_PREFIX" ]; then
-- HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
-- HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
-- HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
-- HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
-- HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
-- HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
-- HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/IMPORTS"`
-- HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
-- HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
-+ HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX/$QT_INSTALL_PREFIX"`
-+ HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/$QT_INSTALL_DOCS"`
-+ HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/$QT_INSTALL_HEADERS"`
-+ HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/$QT_INSTALL_LIBS"`
-+ HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/$QT_INSTALL_BINS"`
-+ HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/$QT_INSTALL_PLUGINS"`
-+ HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/$QT_INSTALL_IMPORTS"`
-+ HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX/$QT_INSTALL_DATA"`
-+ HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/$QT_INSTALL_TRANSLATIONS"`
- HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
- HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
- HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
+++ /dev/null
-Patch to remove obsolete powervr headers and instead use the headers provided
-on the system.
-
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
----
-Index: qt-4.8.5/src/3rdparty/powervr/pvr2d.h
-===================================================================
---- qt-4.8.5.orig/src/3rdparty/powervr/pvr2d.h 2013-07-08 11:24:33.010516867 -0500
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,502 +0,0 @@
--/*!****************************************************************************
--@File pvr2d.h
--@Title PVR2D external header file
--@Author Imagination Technologies
--@Copyright Copyright (c) by Imagination Technologies Limited.
-- This specification is protected by copyright laws and contains
-- material proprietary to Imagination Technologies Limited.
-- You may use and distribute this specification free of charge for implementing
-- the functionality therein, without altering or removing any trademark, copyright,
-- or other notice from the specification.
--@Platform Generic
--@Description PVR2D definitions for PVR2D clients
--******************************************************************************/
--
--
--/******************************************************************************
--Modifications :-
--$Log: pvr2d.h $
--******************************************************************************/
--
--#ifndef _PVR2D_H_
--#define _PVR2D_H_
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
--/* PVR2D Platform-specific definitions */
--#define PVR2D_EXPORT
--#define PVR2D_IMPORT
--
--
--#define PVR2D_REV_MAJOR 2
--#define PVR2D_REV_MINOR 1
--
--typedef enum
--{
-- PVR2D_FALSE = 0,
-- PVR2D_TRUE
--} PVR2D_BOOL;
--
--
--/* error codes */
--typedef enum
--{
-- PVR2D_OK = 0,
-- PVR2DERROR_INVALID_PARAMETER = -1,
-- PVR2DERROR_DEVICE_UNAVAILABLE = -2,
-- PVR2DERROR_INVALID_CONTEXT = -3,
-- PVR2DERROR_MEMORY_UNAVAILABLE = -4,
-- PVR2DERROR_DEVICE_NOT_PRESENT = -5,
-- PVR2DERROR_IOCTL_ERROR = -6,
-- PVR2DERROR_GENERIC_ERROR = -7,
-- PVR2DERROR_BLT_NOTCOMPLETE = -8,
-- PVR2DERROR_HW_FEATURE_NOT_SUPPORTED = -9,
-- PVR2DERROR_NOT_YET_IMPLEMENTED = -10,
-- PVR2DERROR_MAPPING_FAILED = -11
--}PVR2DERROR;
--
--
--/* pixel formats */
--typedef enum
--{
-- PVR2D_1BPP = 0,
-- PVR2D_RGB565,
-- PVR2D_ARGB4444,
-- PVR2D_RGB888,
-- PVR2D_ARGB8888,
-- PVR2D_ARGB1555,
-- PVR2D_ALPHA8,
-- PVR2D_ALPHA4,
-- PVR2D_PAL2,
-- PVR2D_PAL4,
-- PVR2D_PAL8,
-- PVR2D_VGAEMU
--
--}PVR2DFORMAT;
--
--
--/* wrap surface type */
--typedef enum
--{
-- PVR2D_WRAPFLAG_NONCONTIGUOUS = 0,
-- PVR2D_WRAPFLAG_CONTIGUOUS = 1,
--
--}PVR2DWRAPFLAGS;
--
--/* flags for control information of additional blits */
--typedef enum
--{
-- PVR2D_BLIT_DISABLE_ALL = 0x0000, /* disable all additional controls */
-- PVR2D_BLIT_CK_ENABLE = 0x0001, /* enable colour key */
-- PVR2D_BLIT_GLOBAL_ALPHA_ENABLE = 0x0002, /* enable standard global alpha */
-- PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x0004, /* enable per-pixel alpha bleding */
-- PVR2D_BLIT_PAT_SURFACE_ENABLE = 0x0008, /* enable pattern surf (disable fill) */
-- PVR2D_BLIT_FULLY_SPECIFIED_ALPHA_ENABLE = 0x0010, /* enable fully specified alpha */
-- PVR2D_BLIT_ROT_90 = 0x0020, /* apply 90 degree rotation to the blt */
-- PVR2D_BLIT_ROT_180 = 0x0040, /* apply 180 degree rotation to the blt */
-- PVR2D_BLIT_ROT_270 = 0x0080, /* apply 270 degree rotation to the blt */
-- PVR2D_BLIT_COPYORDER_TL2BR = 0x0100, /* copy order overrides */
-- PVR2D_BLIT_COPYORDER_BR2TL = 0x0200,
-- PVR2D_BLIT_COPYORDER_TR2BL = 0x0400,
-- PVR2D_BLIT_COPYORDER_BL2TR = 0x0800,
-- PVR2D_BLIT_COLKEY_SOURCE = 0x1000, /* Key colour is on the source surface */
-- PVR2D_BLIT_COLKEY_DEST = 0x2000 /* Key colour is on the destination surface */
--
--} PVR2DBLITFLAGS;
--
--/* standard alpha-blending functions, AlphaBlendingFunc field of PVR2DBLTINFO */
--typedef enum
--{
-- PVR2D_ALPHA_OP_SRC_DSTINV = 1, /* source alpha : Cdst = Csrc*Asrc + Cdst*(1-Asrc) */
-- PVR2D_ALPHA_OP_SRCP_DSTINV = 2 /* premultiplied source alpha : Cdst = Csrc + Cdst*(1-Asrc) */
--} PVR2D_ALPHABLENDFUNC;
--
--/* blend ops for fully specified alpha */
--typedef enum
--{
-- PVR2D_BLEND_OP_ZERO = 0,
-- PVR2D_BLEND_OP_ONE = 1,
-- PVR2D_BLEND_OP_SRC = 2,
-- PVR2D_BLEND_OP_DST = 3,
-- PVR2D_BLEND_OP_GLOBAL = 4,
-- PVR2D_BLEND_OP_SRC_PLUS_GLOBAL = 5,
-- PVR2D_BLEND_OP_DST_PLUS_GLOBAL = 6
--}PVR2D_BLEND_OP;
--
--
--typedef void* PVR2D_HANDLE;
--
--
--/* Fully specified alpha blend : pAlpha field of PVR2DBLTINFO structure */
--/* a fully specified Alpha Blend operation is defined as */
--/* DST (ALPHA) = (ALPHA_1 * SRC (ALPHA)) + (ALPHA_3 * DST (ALPHA)) */
--/* DST (RGB) = (ALPHA_2 * SRC (RGB)) + (ALPHA_4 * DST (RGB)) */
--/* if the pre-multiplication stage is enabled then the equations become the following: */
--/* PRE_MUL = ((SRC(A)) * (Global Alpha Value)) */
--/* DST (ALPHA) = (ALPHA_1 * SRC (ALPHA)) + (PRE_MUL * DST (ALPHA)) */
--/* DST (RGB) = (ALPHA_2 * SRC (RGB)) + (PRE_MUL * DST (RGB)) */
--/* if the transparent source alpha stage is enabled then a source alpha of zero forces the */
--/* source to be transparent for that pixel regardless of the blend equation being used. */
--typedef struct _PVR2D_ALPHABLT
--{
-- PVR2D_BLEND_OP eAlpha1;
-- PVR2D_BOOL bAlpha1Invert;
-- PVR2D_BLEND_OP eAlpha2;
-- PVR2D_BOOL bAlpha2Invert;
-- PVR2D_BLEND_OP eAlpha3;
-- PVR2D_BOOL bAlpha3Invert;
-- PVR2D_BLEND_OP eAlpha4;
-- PVR2D_BOOL bAlpha4Invert;
-- PVR2D_BOOL bPremulAlpha; /* enable pre-multiplication stage */
-- PVR2D_BOOL bTransAlpha; /* enable transparent source alpha stage */
-- PVR2D_BOOL bUpdateAlphaLookup; /* enable and update the 1555-Lookup alpha table */
-- unsigned char uAlphaLookup0; /* 8 bit alpha when A=0 in a 1555-Lookup surface */
-- unsigned char uAlphaLookup1; /* 8 bit alpha when A=1 in a 1555-Lookup surface */
-- unsigned char uGlobalRGB; /* Global Alpha Value for RGB, 0=transparent 255=opaque */
-- unsigned char uGlobalA; /* Global Alpha Value for Alpha */
--
--} PVR2D_ALPHABLT, *PPVR2D_ALPHABLT;
--
--
--/* surface memory info structure */
--typedef struct _PVR2DMEMINFO
--{
-- void *pBase;
-- unsigned long ui32MemSize;
-- unsigned long ui32DevAddr;
-- unsigned long ulFlags;
-- void *hPrivateData;
-- void *hPrivateMapData;
--
--}PVR2DMEMINFO, *PPVR2DMEMINFO;
--
--
--#define PVR2D_MAX_DEVICE_NAME 20
--
--typedef struct _PVR2DDEVICEINFO
--{
-- unsigned long ulDevID;
-- char szDeviceName[PVR2D_MAX_DEVICE_NAME];
--}PVR2DDEVICEINFO;
--
--
--typedef struct _PVR2DISPLAYINFO
--{
-- unsigned long ulMaxFlipChains;
-- unsigned long ulMaxBuffersInChain;
-- PVR2DFORMAT eFormat;
-- unsigned long ulWidth;
-- unsigned long ulHeight;
-- long lStride;
-- unsigned long ulMinFlipInterval;
-- unsigned long ulMaxFlipInterval;
--
--}PVR2DDISPLAYINFO;
--
--
--typedef struct _PVR2DBLTINFO
--{
-- unsigned long CopyCode; /* rop code */
-- unsigned long Colour; /* fill colour */
-- unsigned long ColourKey; /* colour key */
-- unsigned char GlobalAlphaValue; /* global alpha blending */
-- unsigned char AlphaBlendingFunc; /* per-pixel alpha-blending function */
--
-- PVR2DBLITFLAGS BlitFlags; /* additional blit control information */
--
-- PVR2DMEMINFO *pDstMemInfo; /* destination memory */
-- unsigned long DstOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
-- long DstStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
-- long DstX, DstY; /* pixel offset from start of dest surface to start of blt rectangle */
-- long DSizeX,DSizeY; /* blt size */
-- PVR2DFORMAT DstFormat; /* dest format */
-- unsigned long DstSurfWidth; /* size of dest surface in pixels */
-- unsigned long DstSurfHeight; /* size of dest surface in pixels */
--
-- PVR2DMEMINFO *pSrcMemInfo; /* source mem, (source fields are also used for patterns) */
-- unsigned long SrcOffset; /* byte offset from start of allocation to src/pat surface pixel 0,0 */
-- long SrcStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
-- long SrcX, SrcY; /* pixel offset from start of surface to start of source rectangle */
-- /* for patterns this is the start offset within the pattern */
-- long SizeX,SizeY; /* source rectangle size or pattern size in pixels */
-- PVR2DFORMAT SrcFormat; /* source/pattern format */
-- PVR2DMEMINFO *pPalMemInfo; /* source/pattern palette memory containing argb8888 colour table */
-- unsigned long PalOffset; /* byte offset from start of allocation to start of palette */
-- unsigned long SrcSurfWidth; /* size of source surface in pixels */
-- unsigned long SrcSurfHeight; /* size of source surface in pixels */
--
-- PVR2DMEMINFO *pMaskMemInfo; /* mask memory, 1bpp format implied */
-- unsigned long MaskOffset; /* byte offset from start of allocation to mask surface pixel 0,0 */
-- long MaskStride; /* signed stride, the number of bytes from pixel 0,0 to 0,1 */
-- long MaskX, MaskY; /* mask rect top left (mask size = blt size) */
-- unsigned long MaskSurfWidth; /* size of mask surface in pixels */
-- unsigned long MaskSurfHeight; /* size of mask surface in pixels */
--
-- PPVR2D_ALPHABLT pAlpha; /* fully specified alpha blend */
--
--}PVR2DBLTINFO, *PPVR2DBLTINFO;
--
--typedef struct _PVR2DRECT
--{
-- long left, top;
-- long right, bottom;
--} PVR2DRECT;
--
--typedef struct
--{
-- PVR2DMEMINFO *pSurfMemInfo; /* surface memory */
-- unsigned long SurfOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
-- long Stride; /* signed stride */
-- PVR2DFORMAT Format;
-- unsigned long SurfWidth; /* surface size in pixels */
-- unsigned long SurfHeight;
--
--} PVR2D_SURFACE, *PPVR2D_SURFACE;
--
--typedef struct
--{
-- unsigned long *pUseCode; /* USSE code */
-- unsigned long UseCodeSize; /* usse code size in bytes */
--
--} PVR2D_USECODE, *PPVR2D_USECODE;
--
--typedef struct
--{
-- PVR2D_SURFACE sDst; /* destination surface */
-- PVR2D_SURFACE sSrc; /* source surface */
-- PVR2DRECT rcDest; /* destination rectangle */
-- PVR2DRECT rcSource; /* source rectangle */
-- PVR2D_HANDLE hUseCode; /* custom USE code (NULL implies source copy) */
-- unsigned long UseParams[2]; /* per-blt params for use code */
--
--} PVR2D_3DBLT, *PPVR2D_3DBLT;
--
--
--#define MAKE_COPY_BLIT(src,soff,dest,doff,sx,sy,dx,dy,sz)
--
--typedef void* PVR2DCONTEXTHANDLE;
--typedef void* PVR2DFLIPCHAINHANDLE;
--
--
--// CopyCode field of PVR2DBLTINFO structure:
--// the CopyCode field of the PVR2DBLTINFO structure should contain a rop3 or rop4 code.
--// a rop3 is an 8 bit code that describes a blt with three inputs : source dest and pattern
--// rop4 is a 16 bit code that describes a blt with four inputs : source dest pattern and mask
--// common rop3 codes are defined below
--// a colour fill blt is processed in the pattern channel as a constant colour with a rop code of 0xF0
--// PVR2D_BLIT_PAT_SURFACE_ENABLE defines whether the pattern channel is a surface or a fill colour.
--// a rop4 is defined by two rop3 codes, and the 1 bit-per-pixel mask surface defines which is used.
--// a common rop4 is 0xAAF0 which is the mask copy blt used for text glyphs.
--// CopyCode is taken to be a rop4 when pMaskMemInfo is non zero, otherwise it is assumed to be a rop3
--// use the PVR2DMASKROP4 macro below to construct a rop4 from two rop3's
--// rop3a is the rop used when mask pixel = 1, and rop3b when mask = 0
--#define PVR2DROP4(rop3b, rop3a) ((rop3b<<8)|rop3a)
--
--/* common rop codes */
--#define PVR2DROPclear 0x00 /* 0 (whiteness) */
--#define PVR2DROPset 0xFF /* 1 (blackness) */
--#define PVR2DROPnoop 0xAA /* dst (used for masked blts) */
--
--/* source and dest rop codes */
--#define PVR2DROPand 0x88 /* src AND dst */
--#define PVR2DROPandReverse 0x44 /* src AND NOT dst */
--#define PVR2DROPcopy 0xCC /* src (used for source copy and alpha blts) */
--#define PVR2DROPandInverted 0x22 /* NOT src AND dst */
--#define PVR2DROPxor 0x66 /* src XOR dst */
--#define PVR2DROPor 0xEE /* src OR dst */
--#define PVR2DROPnor 0x11 /* NOT src AND NOT dst */
--#define PVR2DROPequiv 0x99 /* NOT src XOR dst */
--#define PVR2DROPinvert 0x55 /* NOT dst */
--#define PVR2DROPorReverse 0xDD /* src OR NOT dst */
--#define PVR2DROPcopyInverted 0x33 /* NOT src */
--#define PVR2DROPorInverted 0xBB /* NOT src OR dst */
--#define PVR2DROPnand 0x77 /* NOT src OR NOT dst */
--
--/* pattern rop codes */
--#define PVR2DPATROPand 0xA0 /* pat AND dst */
--#define PVR2DPATROPandReverse 0x50 /* pat AND NOT dst */
--#define PVR2DPATROPcopy 0xF0 /* pat (used for solid color fills and pattern blts) */
--#define PVR2DPATROPandInverted 0x0A /* NOT pat AND dst */
--#define PVR2DPATROPxor 0x5A /* pat XOR dst */
--#define PVR2DPATROPor 0xFA /* pat OR dst */
--#define PVR2DPATROPnor 0x05 /* NOT pat AND NOT dst */
--#define PVR2DPATROPequiv 0xA5 /* NOT pat XOR dst */
--#define PVR2DPATROPinvert 0x55 /* NOT dst */
--#define PVR2DPATROPorReverse 0xF5 /* pat OR NOT dst */
--#define PVR2DPATROPcopyInverted 0x0F /* NOT pat */
--#define PVR2DPATROPorInverted 0xAF /* NOT pat OR dst */
--#define PVR2DPATROPnand 0x5F /* NOT pat OR NOT dst */
--
--/* common rop4 codes */
--#define PVR2DROP4MaskedCopy PVR2DROP4(PVR2DROPnoop,PVR2DROPcopy) /* masked source copy blt (used for rounded window corners etc) */
--#define PVR2DROP4MaskedFill PVR2DROP4(PVR2DROPnoop,PVR2DPATROPcopy) /* masked colour fill blt (used for text) */
--
--/* Legacy support */
--#define PVR2DROP3_PATMASK PVR2DPATROPcopy
--#define PVR2DROP3_SRCMASK PVR2DROPcopy
--
--/* pixmap memory alignment */
--#define PVR2D_ALIGNMENT_4 4 /* DWORD alignment */
--#define PVR2D_ALIGNMENT_ANY 0 /* no alignment */
--#define PVR2D_ALIGNMENT_PALETTE 16 /* 16 byte alignment is required for palettes */
--
--/* Heap number for PVR2DGetFrameBuffer */
--#define PVR2D_FB_PRIMARY_SURFACE 0
--
--#define PVR2D_PRESENT_PROPERTY_SRCSTRIDE (1 << 0)
--#define PVR2D_PRESENT_PROPERTY_DSTSIZE (1 << 1)
--#define PVR2D_PRESENT_PROPERTY_DSTPOS (1 << 2)
--#define PVR2D_PRESENT_PROPERTY_CLIPRECTS (1 << 3)
--#define PVR2D_PRESENT_PROPERTY_INTERVAL (1 << 4)
--
--
--#define PVR2D_CREATE_FLIPCHAIN_SHARED (1 << 0)
--#define PVR2D_CREATE_FLIPCHAIN_QUERY (1 << 1)
--
--/* Functions that the library exports */
--
--PVR2D_IMPORT
--int PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DCreateDeviceContext(unsigned long ulDevID,
-- PVR2DCONTEXTHANDLE* phContext,
-- unsigned long ulFlags);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DDestroyDeviceContext(PVR2DCONTEXTHANDLE hContext);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DGetDeviceInfo(PVR2DCONTEXTHANDLE hContext,
-- PVR2DDISPLAYINFO *pDisplayInfo);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DGetScreenMode(PVR2DCONTEXTHANDLE hContext,
-- PVR2DFORMAT *pFormat,
-- long *plWidth,
-- long *plHeight,
-- long *plStride,
-- int *piRefreshRate);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DGetFrameBuffer(PVR2DCONTEXTHANDLE hContext,
-- int nHeap,
-- PVR2DMEMINFO **ppsMemInfo);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DMemAlloc(PVR2DCONTEXTHANDLE hContext,
-- unsigned long ulBytes,
-- unsigned long ulAlign,
-- unsigned long ulFlags,
-- PVR2DMEMINFO **ppsMemInfo);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DMemWrap(PVR2DCONTEXTHANDLE hContext,
-- void *pMem,
-- unsigned long ulFlags,
-- unsigned long ulBytes,
-- unsigned long alPageAddress[],
-- PVR2DMEMINFO **ppsMemInfo);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DMemMap(PVR2DCONTEXTHANDLE hContext,
-- unsigned long ulFlags,
-- void *hPrivateMapData,
-- PVR2DMEMINFO **ppsDstMem);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DMemFree(PVR2DCONTEXTHANDLE hContext,
-- PVR2DMEMINFO *psMemInfo);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DBlt(PVR2DCONTEXTHANDLE hContext,
-- PVR2DBLTINFO *pBltInfo);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DBltClipped(PVR2DCONTEXTHANDLE hContext,
-- PVR2DBLTINFO *pBltInfo,
-- unsigned long ulNumClipRects,
-- PVR2DRECT *pClipRects);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DQueryBlitsComplete(PVR2DCONTEXTHANDLE hContext,
-- PVR2DMEMINFO *pMemInfo,
-- unsigned int uiWaitForComplete);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DSetPresentBltProperties(PVR2DCONTEXTHANDLE hContext,
-- unsigned long ulPropertyMask,
-- long lSrcStride,
-- unsigned long ulDstWidth,
-- unsigned long ulDstHeight,
-- long lDstXPos,
-- long lDstYPos,
-- unsigned long ulNumClipRects,
-- PVR2DRECT *pClipRects,
-- unsigned long ulSwapInterval);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DPresentBlt(PVR2DCONTEXTHANDLE hContext,
-- PVR2DMEMINFO *pMemInfo,
-- long lRenderID);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DCreateFlipChain(PVR2DCONTEXTHANDLE hContext,
-- unsigned long ulFlags,
-- unsigned long ulNumBuffers,
-- unsigned long ulWidth,
-- unsigned long ulHeight,
-- PVR2DFORMAT eFormat,
-- long *plStride,
-- unsigned long *pulFlipChainID,
-- PVR2DFLIPCHAINHANDLE *phFlipChain);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DDestroyFlipChain(PVR2DCONTEXTHANDLE hContext,
-- PVR2DFLIPCHAINHANDLE hFlipChain);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DGetFlipChainBuffers(PVR2DCONTEXTHANDLE hContext,
-- PVR2DFLIPCHAINHANDLE hFlipChain,
-- unsigned long *pulNumBuffers,
-- PVR2DMEMINFO *psMemInfo[]);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DSetPresentFlipProperties(PVR2DCONTEXTHANDLE hContext,
-- PVR2DFLIPCHAINHANDLE hFlipChain,
-- unsigned long ulPropertyMask,
-- long lDstXPos,
-- long lDstYPos,
-- unsigned long ulNumClipRects,
-- PVR2DRECT *pClipRects,
-- unsigned long ulSwapInterval);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DPresentFlip(PVR2DCONTEXTHANDLE hContext,
-- PVR2DFLIPCHAINHANDLE hFlipChain,
-- PVR2DMEMINFO *psMemInfo,
-- long lRenderID);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DGetAPIRev(long *lRevMajor, long *lRevMinor);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DLoadUseCode (const PVR2DCONTEXTHANDLE hContext, const unsigned char *pUseCode,
-- const unsigned long UseCodeSize, PVR2D_HANDLE *pUseCodeHandle);
--PVR2D_IMPORT
--PVR2DERROR PVR2DFreeUseCode (const PVR2DCONTEXTHANDLE hContext, const PVR2D_HANDLE hUseCodeHandle);
--
--PVR2D_IMPORT
--PVR2DERROR PVR2DBlt3D (const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT pBlt3D);
--
--#ifdef __cplusplus
--}
--#endif
--
--#endif /* _PVR2D_H_ */
--
--/******************************************************************************
-- End of file (pvr2d.h)
--******************************************************************************/
-Index: qt-4.8.5/src/3rdparty/powervr/wsegl.h
-===================================================================
---- qt-4.8.5.orig/src/3rdparty/powervr/wsegl.h 2013-07-08 11:24:33.010516867 -0500
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,240 +0,0 @@
--/******************************************************************************
-- Name : wsegl.h
-- Copyright : Copyright (c) Imagination Technologies Limited.
-- This specification is protected by copyright laws and contains
-- material proprietary to Imagination Technologies Limited.
-- You may use and distribute this specification free of charge for implementing
-- the functionality therein, without altering or removing any trademark, copyright,
-- or other notice from the specification.
-- Platform : ANSI
--*****************************************************************************/
--
--
--#if !defined(__WSEGL_H__)
--#define __WSEGL_H__
--
--#ifdef __cplusplus
--extern "C" {
--#endif
--
--/*
--// WSEGL Platform-specific definitions
--*/
--#define WSEGL_EXPORT
--#define WSEGL_IMPORT
--
--/*
--// WSEGL API Version Number
--*/
--
--#define WSEGL_VERSION 1
--#define WSEGL_DEFAULT_DISPLAY 0
--#define WSEGL_DEFAULT_NATIVE_ENGINE 0
--
--#define WSEGL_FALSE 0
--#define WSEGL_TRUE 1
--#define WSEGL_NULL 0
--
--#define WSEGL_UNREFERENCED_PARAMETER(param) (param) = (param)
--
--/*
--// WSEGL handles
--*/
--typedef void *WSEGLDisplayHandle;
--typedef void *WSEGLDrawableHandle;
--
--/*
--// Display capability type
--*/
--typedef enum WSEGLCapsType_TAG
--{
-- WSEGL_NO_CAPS = 0,
-- WSEGL_CAP_MIN_SWAP_INTERVAL = 1, /* System default value = 1 */
-- WSEGL_CAP_MAX_SWAP_INTERVAL = 2, /* System default value = 1 */
-- WSEGL_CAP_WINDOWS_USE_HW_SYNC = 3, /* System default value = 0 (FALSE) */
-- WSEGL_CAP_PIXMAPS_USE_HW_SYNC = 4, /* System default value = 0 (FALSE) */
--
--} WSEGLCapsType;
--
--/*
--// Display capability
--*/
--typedef struct WSEGLCaps_TAG
--{
-- WSEGLCapsType eCapsType;
-- unsigned long ui32CapsValue;
--
--} WSEGLCaps;
--
--/*
--// Drawable type
--*/
--#define WSEGL_NO_DRAWABLE 0x0
--#define WSEGL_DRAWABLE_WINDOW 0x1
--#define WSEGL_DRAWABLE_PIXMAP 0x2
--
--
--/*
--// Pixel format of display/drawable
--*/
--typedef enum WSEGLPixelFormat_TAG
--{
-- WSEGL_PIXELFORMAT_565 = 0,
-- WSEGL_PIXELFORMAT_4444 = 1,
-- WSEGL_PIXELFORMAT_8888 = 2,
-- WSEGL_PIXELFORMAT_1555 = 3
--
--} WSEGLPixelFormat;
--
--/*
--// Transparent of display/drawable
--*/
--typedef enum WSEGLTransparentType_TAG
--{
-- WSEGL_OPAQUE = 0,
-- WSEGL_COLOR_KEY = 1,
--
--} WSEGLTransparentType;
--
--/*
--// Display/drawable configuration
--*/
--typedef struct WSEGLConfig_TAG
--{
-- /*
-- // Type of drawables this configuration applies to -
-- // OR'd values of drawable types.
-- */
-- unsigned long ui32DrawableType;
--
-- /* Pixel format */
-- WSEGLPixelFormat ePixelFormat;
--
-- /* Native Renderable - set to WSEGL_TRUE if native renderable */
-- unsigned long ulNativeRenderable;
--
-- /* FrameBuffer Level Parameter */
-- unsigned long ulFrameBufferLevel;
--
-- /* Native Visual ID */
-- unsigned long ulNativeVisualID;
--
-- /* Native Visual */
-- void *hNativeVisual;
--
-- /* Transparent Type */
-- WSEGLTransparentType eTransparentType;
--
-- /* Transparent Color - only used if transparent type is COLOR_KEY */
-- unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
--
--
--} WSEGLConfig;
--
--/*
--// WSEGL errors
--*/
--typedef enum WSEGLError_TAG
--{
-- WSEGL_SUCCESS = 0,
-- WSEGL_CANNOT_INITIALISE = 1,
-- WSEGL_BAD_NATIVE_DISPLAY = 2,
-- WSEGL_BAD_NATIVE_WINDOW = 3,
-- WSEGL_BAD_NATIVE_PIXMAP = 4,
-- WSEGL_BAD_NATIVE_ENGINE = 5,
-- WSEGL_BAD_DRAWABLE = 6,
-- WSEGL_BAD_CONFIG = 7,
-- WSEGL_OUT_OF_MEMORY = 8
--
--} WSEGLError;
--
--/*
--// Drawable orientation (in degrees anti-clockwise)
--*/
--typedef enum WSEGLRotationAngle_TAG
--{
-- WSEGL_ROTATE_0 = 0,
-- WSEGL_ROTATE_90 = 1,
-- WSEGL_ROTATE_180 = 2,
-- WSEGL_ROTATE_270 = 3
--
--} WSEGLRotationAngle;
--
--/*
--// Drawable information required by OpenGL-ES driver
--*/
--typedef struct WSEGLDrawableParams_TAG
--{
-- /* Width in pixels of the drawable */
-- unsigned long ui32Width;
--
-- /* Height in pixels of the drawable */
-- unsigned long ui32Height;
--
-- /* Stride in pixels of the drawable */
-- unsigned long ui32Stride;
--
-- /* Pixel format of the drawable */
-- WSEGLPixelFormat ePixelFormat;
--
-- /* User space cpu virtual address of the drawable */
-- void *pvLinearAddress;
--
-- /* HW address of the drawable */
-- unsigned long ui32HWAddress;
--
-- /* Private data for the drawable */
-- void *hPrivateData;
--
--} WSEGLDrawableParams;
--
--
--/*
--// Table of function pointers that is returned by WSEGL_GetFunctionTablePointer()
--//
--// The first entry in the table is the version number of the wsegl.h header file that
--// the module has been written against, and should therefore be set to WSEGL_VERSION
--*/
--typedef struct WSEGL_FunctionTable_TAG
--{
-- unsigned long ui32WSEGLVersion;
--
-- WSEGLError (*pfnWSEGL_IsDisplayValid)(NativeDisplayType);
--
-- WSEGLError (*pfnWSEGL_InitialiseDisplay)(NativeDisplayType, WSEGLDisplayHandle *, const WSEGLCaps **, WSEGLConfig **);
--
-- WSEGLError (*pfnWSEGL_CloseDisplay)(WSEGLDisplayHandle);
--
-- WSEGLError (*pfnWSEGL_CreateWindowDrawable)(WSEGLDisplayHandle, WSEGLConfig *, WSEGLDrawableHandle *, NativeWindowType, WSEGLRotationAngle *);
--
-- WSEGLError (*pfnWSEGL_CreatePixmapDrawable)(WSEGLDisplayHandle, WSEGLConfig *, WSEGLDrawableHandle *, NativePixmapType, WSEGLRotationAngle *);
--
-- WSEGLError (*pfnWSEGL_DeleteDrawable)(WSEGLDrawableHandle);
--
-- WSEGLError (*pfnWSEGL_SwapDrawable)(WSEGLDrawableHandle, unsigned long);
--
-- WSEGLError (*pfnWSEGL_SwapControlInterval)(WSEGLDrawableHandle, unsigned long);
--
-- WSEGLError (*pfnWSEGL_WaitNative)(WSEGLDrawableHandle, unsigned long);
--
-- WSEGLError (*pfnWSEGL_CopyFromDrawable)(WSEGLDrawableHandle, NativePixmapType);
--
-- WSEGLError (*pfnWSEGL_CopyFromPBuffer)(void *, unsigned long, unsigned long, unsigned long, WSEGLPixelFormat, NativePixmapType);
--
-- WSEGLError (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle, WSEGLDrawableParams *, WSEGLDrawableParams *);
--
--
--} WSEGL_FunctionTable;
--
--
--WSEGL_IMPORT const WSEGL_FunctionTable *WSEGL_GetFunctionTablePointer(void);
--
--#ifdef __cplusplus
--}
--#endif
--
--#endif /* __WSEGL_H__ */
--
--/******************************************************************************
-- End of file (wsegl.h)
--******************************************************************************/
-Index: qt-4.8.5/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
-===================================================================
---- qt-4.8.5.orig/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c 2013-07-08 11:24:33.010516867 -0500
-+++ qt-4.8.5/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c 2013-07-08 11:28:26.142521123 -0500
-@@ -39,7 +39,7 @@
- **
- ****************************************************************************/
-
--#include <GLES/eglplatform.h>
-+#include <EGL/eglplatform.h>
- #include <wsegl.h>
- #include <pvr2d.h>
- #include <string.h>
-@@ -379,6 +379,20 @@
- return WSEGL_SUCCESS;
- }
-
-+/* Function stub for ConnectDrawable() */
-+static WSEGLError wseglConnectDrawable(WSEGLDrawableHandle hDrawable)
-+{
-+ WSEGL_UNREFERENCED_PARAMETER(hDrawable);
-+ return WSEGL_SUCCESS;
-+}
-+
-+/* Function stub for DisconnectDrawable() */
-+static WSEGLError wseglDisconnectDrawable(WSEGLDrawableHandle hDrawable)
-+{
-+ WSEGL_UNREFERENCED_PARAMETER(hDrawable);
-+ return WSEGL_SUCCESS;
-+}
-+
- static WSEGL_FunctionTable const wseglFunctions = {
- WSEGL_VERSION,
- wseglIsDisplayValid,
-@@ -392,7 +406,9 @@
- wseglWaitNative,
- wseglCopyFromDrawable,
- wseglCopyFromPBuffer,
-- wseglGetDrawableParameters
-+ wseglGetDrawableParameters,
-+ wseglConnectDrawable,
-+ wseglDisconnectDrawable
- };
-
- /* Return the table of WSEGL functions to the EGL implementation */
+++ /dev/null
-From d4d07dac01796b2aa0fb501c14865cab7e42b3a9 Mon Sep 17 00:00:00 2001
-From: Mischa Jonker <mischa.jonker@synopsys.com>
-Date: Sun, 4 Nov 2012 11:42:04 +0100
-Subject: [PATCH] Fix const-related build error in generic atomic ops
-
-It's still not entirely const-correct though. In all other architectures
-this is obfuscated through the use of inline asm (which the compiler
-doesn't check). This patch obfuscates through const_cast
----
- src/corelib/arch/generic/qatomic_generic_unix.cpp | 8 ++++----
- src/corelib/arch/qatomic_generic.h | 2 +-
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/corelib/arch/generic/qatomic_generic_unix.cpp b/src/corelib/arch/generic/qatomic_generic_unix.cpp
-index 1c6cbf0..6fce81d 100644
---- a/src/corelib/arch/generic/qatomic_generic_unix.cpp
-+++ b/src/corelib/arch/generic/qatomic_generic_unix.cpp
-@@ -85,13 +85,13 @@ int QBasicAtomicInt_fetchAndAddOrdered(volatile int *_q_value, int valueToAdd)
-
- Q_CORE_EXPORT
- bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *_q_value,
-- void *expectedValue,
-- void *newValue)
-+ const void *expectedValue,
-+ const void *newValue)
- {
- bool returnValue = false;
- pthread_mutex_lock(&qAtomicMutex);
- if (*_q_value == expectedValue) {
-- *_q_value = newValue;
-+ *_q_value = const_cast<void*>(newValue);
- returnValue = true;
- }
- pthread_mutex_unlock(&qAtomicMutex);
-diff --git a/src/corelib/arch/qatomic_generic.h b/src/corelib/arch/qatomic_generic.h
-index 621a767..4c14679 100644
---- a/src/corelib/arch/qatomic_generic.h
-+++ b/src/corelib/arch/qatomic_generic.h
-@@ -105,7 +105,7 @@ Q_CORE_EXPORT bool QBasicAtomicInt_testAndSetOrdered(volatile int *, int, int);
- Q_CORE_EXPORT int QBasicAtomicInt_fetchAndStoreOrdered(volatile int *, int);
- Q_CORE_EXPORT int QBasicAtomicInt_fetchAndAddOrdered(volatile int *, int);
-
--Q_CORE_EXPORT bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *, void *, void *);
-+Q_CORE_EXPORT bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *, const void *, const void *);
- Q_CORE_EXPORT void *QBasicAtomicPointer_fetchAndStoreOrdered(void * volatile *, void *);
- Q_CORE_EXPORT void *QBasicAtomicPointer_fetchAndAddOrdered(void * volatile *, qptrdiff);
-
---
-1.7.0.4
-
+++ /dev/null
-Add pthred_getattr_np / phread_attr_getstrack alternatives for uClibc
-
-Based on https://dev.openwrt.org/log/packages/Xorg/lib/qt4/patches/100-fix-webkit-for-uclibc.patch?rev=20371
-
-Signed-off-by: Johan Sagaert <sagaert.johan@skynet.be>
----
- src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp | 61 ++++++++++
- 1 file changed, 61 insertions(+)
-
-Index: qt-everywhere-opensource-src-4.8.1/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
-===================================================================
---- qt-everywhere-opensource-src-4.8.1.orig/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
-+++ qt-everywhere-opensource-src-4.8.1/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp
-@@ -70,6 +70,23 @@
- #endif
- #include <unistd.h>
-
-+#if defined(QT_LINUXBASE)
-+#include <dlfcn.h>
-+#endif
-+
-+#if defined(__UCLIBC__)
-+// versions of uClibc 0.9.32 and below with linuxthreads.old do not have
-+// pthread_getattr_np or pthread_attr_getstack.
-+#if __UCLIBC_MAJOR__ == 0 && \
-+ (__UCLIBC_MINOR__ < 9 || \
-+ (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ <= 32)) && \
-+ defined(__LINUXTHREADS_OLD__)
-+#define UCLIBC_USE_PROC_SELF_MAPS 1
-+#include <stdio_ext.h>
-+extern int *__libc_stack_end;
-+#endif
-+#endif
-+
- #if OS(SOLARIS)
- #include <thread.h>
- #else
-@@ -648,6 +665,37 @@
- get_thread_info(find_thread(NULL), &threadInfo);
- return threadInfo.stack_end;
- #elif OS(UNIX)
-+#ifdef UCLIBC_USE_PROC_SELF_MAPS
-+ // Read /proc/self/maps and locate the line whose address
-+ // range contains __libc_stack_end.
-+ FILE *file = fopen("/proc/self/maps", "r");
-+ if (!file)
-+ return 0;
-+ __fsetlocking(file, FSETLOCKING_BYCALLER);
-+ char *line = NULL;
-+ size_t lineLen = 0;
-+ while (!feof_unlocked(file)) {
-+ if (getdelim(&line, &lineLen, '\n', file) <= 0)
-+ break;
-+
-+ long from;
-+ long to;
-+ if (sscanf (line, "%lx-%lx", &from, &to) != 2)
-+ continue;
-+ if (from <= (long)__libc_stack_end && (long)__libc_stack_end < to) {
-+ fclose(file);
-+ free(line);
-+#ifdef _STACK_GROWS_UP
-+ return (void *)from;
-+#else
-+ return (void *)to;
-+#endif
-+ }
-+ }
-+ fclose(file);
-+ free(line);
-+ return 0;
-+#else
- AtomicallyInitializedStatic(Mutex&, mutex = *new Mutex);
- MutexLocker locker(mutex);
- static void* stackBase = 0;
-@@ -655,11 +703,23 @@
- static pthread_t stackThread;
- pthread_t thread = pthread_self();
- if (stackBase == 0 || thread != stackThread) {
-+
-+#if defined(QT_LINUXBASE)
-+ // LinuxBase is missing pthread_getattr_np - resolve it once at runtime instead
-+ // see http://bugs.linuxbase.org/show_bug.cgi?id=2364
-+ typedef int (*GetAttrPtr)(pthread_t, pthread_attr_t *);
-+ static int (*pthread_getattr_np_ptr)(pthread_t, pthread_attr_t *) = 0;
-+ if (!pthread_getattr_np_ptr)
-+ *(void **)&pthread_getattr_np_ptr = dlsym(RTLD_DEFAULT, "pthread_getattr_np");
-+#endif
- pthread_attr_t sattr;
- pthread_attr_init(&sattr);
- #if HAVE(PTHREAD_NP_H) || OS(NETBSD)
- // e.g. on FreeBSD 5.4, neundorf@kde.org
- pthread_attr_get_np(thread, &sattr);
-+#elif defined(QT_LINUXBASE)
-+ if (pthread_getattr_np_ptr)
-+ pthread_getattr_np_ptr(thread, &sattr);
- #else
- // FIXME: this function is non-portable; other POSIX systems may have different np alternatives
- pthread_getattr_np(thread, &sattr);
-@@ -671,6 +731,7 @@
- stackThread = thread;
- }
- return static_cast<char*>(stackBase) + stackSize;
-+#endif
- #else
- #error Need a way to get the stack base on this platform
- #endif
+++ /dev/null
-[PATCH] fix build with script+dbus enabled, but no gui
-
-The script/qtdbus plugin doesn't need gui support, so don't try to
-link it against libQtGui.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/plugins/script/qtdbus/qtdbus.pro | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: qt-4.7.3/src/plugins/script/qtdbus/qtdbus.pro
-===================================================================
---- qt-4.7.3.orig/src/plugins/script/qtdbus/qtdbus.pro
-+++ qt-4.7.3/src/plugins/script/qtdbus/qtdbus.pro
-@@ -1,6 +1,6 @@
- TARGET = qtscriptdbus
- include(../../qpluginbase.pri)
--QT = core gui script
-+QT = core script
- CONFIG += qdbus
-
- SOURCES += main.cpp
+++ /dev/null
-From 6f88b27de256266947a7f6a3e70e18510754aab2 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Sat, 14 Apr 2012 20:36:07 +0200
-Subject: [PATCH] mkspecs/common/posix: fix !largefile builds on uClibc
-
-uClibc doesn't even define O_LARGEFILE when not configured with large file
-support, so ensure this define is only used when Qt is built with
--largefile, otherwise the build fails with:
-
-io/qtemporaryfile.cpp: In function 'bool createFileFromTemplate(
- NativeFileHandle&, QFileSystemEntry::NativePath&, size_t, size_t,
- QSystemError&)':
-io/qtemporaryfile.cpp:197:57: error: 'O_LARGEFILE' was not declared in
- this scope
-
-Reported-Upstream: https://bugreports.qt-project.org/browse/QTBUG-25321
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- mkspecs/common/posix/qplatformdefs.h | 5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/mkspecs/common/posix/qplatformdefs.h b/mkspecs/common/posix/qplatformdefs.h
-index daecc00..8a796cf 100644
---- a/mkspecs/common/posix/qplatformdefs.h
-+++ b/mkspecs/common/posix/qplatformdefs.h
-@@ -123,7 +123,12 @@
- #define QT_READ ::read
- #define QT_WRITE ::write
-
-+#ifdef QT_LARGEFILE_SUPPORT
- #define QT_OPEN_LARGEFILE O_LARGEFILE
-+#else
-+#define QT_OPEN_LARGEFILE 0
-+#endif
-+
- #define QT_OPEN_RDONLY O_RDONLY
- #define QT_OPEN_WRONLY O_WRONLY
- #define QT_OPEN_RDWR O_RDWR
---
-1.7.8.3
-
--- /dev/null
+Add a Buildroot 'device' to ease cross-compilation
+
+Qt5 has a mechanism to support "device" profiles, so that people can
+specify the compiler, compiler flags and so on for a specific device.
+
+We leverage this mechanism in the Buildroot packaging of qt5 to
+simplify cross-compilation: we have our own "device" definition, which
+allows us to easily pass the cross-compiler paths and flags from our
+qt5.mk.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/mkspecs/devices/linux-buildroot-g++/qmake.conf
+===================================================================
+--- /dev/null
++++ b/mkspecs/devices/linux-buildroot-g++/qmake.conf
+@@ -0,0 +1,16 @@
++include(../common/linux_device_pre.conf)
++
++# modifications to g++-unix.conf
++QMAKE_CC = $${BR_CCACHE} $${CROSS_COMPILE}gcc
++QMAKE_CXX = $${BR_CCACHE} $${CROSS_COMPILE}g++
++
++#modifications to gcc-base.conf
++QMAKE_CFLAGS += $${BR_COMPILER_CFLAGS}
++QMAKE_CXXFLAGS += $${BR_COMPILER_CXXFLAGS}
++QMAKE_CXXFLAGS_RELEASE += -O3
++CONFIG += nostrip
++
++QMAKE_LIBS += -lrt -lpthread -ldl
++
++include(../common/linux_device_post.conf)
++load(qt_config)
+Index: b/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h
+===================================================================
+--- /dev/null
++++ b/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h
+@@ -0,0 +1 @@
++#include "../../linux-g++/qplatformdefs.h"
--- /dev/null
+From 6f88b27de256266947a7f6a3e70e18510754aab2 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Sat, 14 Apr 2012 20:36:07 +0200
+Subject: [PATCH] mkspecs/common/posix: fix !largefile builds on uClibc
+
+uClibc doesn't even define O_LARGEFILE when not configured with large file
+support, so ensure this define is only used when Qt is built with
+-largefile, otherwise the build fails with:
+
+io/qtemporaryfile.cpp: In function 'bool createFileFromTemplate(
+ NativeFileHandle&, QFileSystemEntry::NativePath&, size_t, size_t,
+ QSystemError&)':
+io/qtemporaryfile.cpp:197:57: error: 'O_LARGEFILE' was not declared in
+ this scope
+
+Moved to qt5 by Thomas Petazzoni.
+
+Reported-Upstream: https://bugreports.qt-project.org/browse/QTBUG-25321
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+
+Index: b/mkspecs/common/posix/qplatformdefs.h
+===================================================================
+--- a/mkspecs/common/posix/qplatformdefs.h
++++ b/mkspecs/common/posix/qplatformdefs.h
+@@ -123,7 +123,11 @@
+ #define QT_READ ::read
+ #define QT_WRITE ::write
+
++#ifdef QT_LARGEFILE_SUPPORT
+ #define QT_OPEN_LARGEFILE O_LARGEFILE
++#else
++#define QT_OPEN_LARGEFILE 0
++#endif
+ #define QT_OPEN_RDONLY O_RDONLY
+ #define QT_OPEN_WRONLY O_WRONLY
+ #define QT_OPEN_RDWR O_RDWR
+++ /dev/null
-Add a Buildroot 'device' to ease cross-compilation
-
-Qt5 has a mechanism to support "device" profiles, so that people can
-specify the compiler, compiler flags and so on for a specific device.
-
-We leverage this mechanism in the Buildroot packaging of qt5 to
-simplify cross-compilation: we have our own "device" definition, which
-allows us to easily pass the cross-compiler paths and flags from our
-qt5.mk.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/mkspecs/devices/linux-buildroot-g++/qmake.conf
-===================================================================
---- /dev/null
-+++ b/mkspecs/devices/linux-buildroot-g++/qmake.conf
-@@ -0,0 +1,16 @@
-+include(../common/linux_device_pre.conf)
-+
-+# modifications to g++-unix.conf
-+QMAKE_CC = $${BR_CCACHE} $${CROSS_COMPILE}gcc
-+QMAKE_CXX = $${BR_CCACHE} $${CROSS_COMPILE}g++
-+
-+#modifications to gcc-base.conf
-+QMAKE_CFLAGS += $${BR_COMPILER_CFLAGS}
-+QMAKE_CXXFLAGS += $${BR_COMPILER_CXXFLAGS}
-+QMAKE_CXXFLAGS_RELEASE += -O3
-+CONFIG += nostrip
-+
-+QMAKE_LIBS += -lrt -lpthread -ldl
-+
-+include(../common/linux_device_post.conf)
-+load(qt_config)
-Index: b/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h
-===================================================================
---- /dev/null
-+++ b/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h
-@@ -0,0 +1 @@
-+#include "../../linux-g++/qplatformdefs.h"
+++ /dev/null
-From 6f88b27de256266947a7f6a3e70e18510754aab2 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Sat, 14 Apr 2012 20:36:07 +0200
-Subject: [PATCH] mkspecs/common/posix: fix !largefile builds on uClibc
-
-uClibc doesn't even define O_LARGEFILE when not configured with large file
-support, so ensure this define is only used when Qt is built with
--largefile, otherwise the build fails with:
-
-io/qtemporaryfile.cpp: In function 'bool createFileFromTemplate(
- NativeFileHandle&, QFileSystemEntry::NativePath&, size_t, size_t,
- QSystemError&)':
-io/qtemporaryfile.cpp:197:57: error: 'O_LARGEFILE' was not declared in
- this scope
-
-Moved to qt5 by Thomas Petazzoni.
-
-Reported-Upstream: https://bugreports.qt-project.org/browse/QTBUG-25321
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-
-Index: b/mkspecs/common/posix/qplatformdefs.h
-===================================================================
---- a/mkspecs/common/posix/qplatformdefs.h
-+++ b/mkspecs/common/posix/qplatformdefs.h
-@@ -123,7 +123,11 @@
- #define QT_READ ::read
- #define QT_WRITE ::write
-
-+#ifdef QT_LARGEFILE_SUPPORT
- #define QT_OPEN_LARGEFILE O_LARGEFILE
-+#else
-+#define QT_OPEN_LARGEFILE 0
-+#endif
- #define QT_OPEN_RDONLY O_RDONLY
- #define QT_OPEN_WRONLY O_WRONLY
- #define QT_OPEN_RDWR O_RDWR
--- /dev/null
+This patch improves the qt5webkit examples build for 2 aspects:
+
+# Allows to build even if qt5base examples are not enabled
+# Builds xmlpatterns example only if the qt5xmlpattern package has been built
+
+Signed-off-by: Massimo Callegari <massimocallegari@yahoo.it>
+
+Index: b/examples/webkitwidgets/webkitwidgets.pro
+===================================================================
+--- /dev/null
++++ b/examples/webkitwidgets/webkitwidgets.pro
+@@ -8,5 +8,6 @@
+ framecapture \
+ browser \
+ embedded \
+- scroller \
+- xmlpatterns
++ scroller
++
++qtHaveModule(xmlpatterns): SUBDIRS += xmlpatterns
+Index: b/qtwebkit-examples.pro
+===================================================================
+--- /dev/null
++++ b/qtwebkit-examples.pro
+@@ -3,3 +3,4 @@
+ load(qt_parts)
+
+ SUBDIRS += doc
++SUBDIRS += examples
+
+++ /dev/null
-This patch improves the qt5webkit examples build for 2 aspects:
-
-# Allows to build even if qt5base examples are not enabled
-# Builds xmlpatterns example only if the qt5xmlpattern package has been built
-
-Signed-off-by: Massimo Callegari <massimocallegari@yahoo.it>
-
-Index: b/examples/webkitwidgets/webkitwidgets.pro
-===================================================================
---- /dev/null
-+++ b/examples/webkitwidgets/webkitwidgets.pro
-@@ -8,5 +8,6 @@
- framecapture \
- browser \
- embedded \
-- scroller \
-- xmlpatterns
-+ scroller
-+
-+qtHaveModule(xmlpatterns): SUBDIRS += xmlpatterns
-Index: b/qtwebkit-examples.pro
-===================================================================
---- /dev/null
-+++ b/qtwebkit-examples.pro
-@@ -3,3 +3,4 @@
- load(qt_parts)
-
- SUBDIRS += doc
-+SUBDIRS += examples
-
--- /dev/null
+From 4dd7cad8c95484a882eaa2aeaa74595a3dd93a07 Mon Sep 17 00:00:00 2001
+From: Stephan Hoffmann <sho@relinux.de>
+Date: Sun, 2 Dec 2012 13:36:41 +0100
+Subject: [PATCH] TuioServer.cpp: add missing include
+
+If usleep() is used the header <unistd.h> has to be included
+
+Signed-off-by: Stephan Hoffmann <sho@relinux.de>
+---
+ src/3rdparty/tuio/TuioServer.cpp | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/3rdparty/tuio/TuioServer.cpp b/src/3rdparty/tuio/TuioServer.cpp
+index f17bef9..851144c 100644
+--- a/src/3rdparty/tuio/TuioServer.cpp
++++ b/src/3rdparty/tuio/TuioServer.cpp
+@@ -25,6 +25,8 @@ using namespace TUIO;
+ using namespace osc;
+
+ #ifndef WIN32
++#include <unistd.h>
++
+ static void* ThreadFunc( void* obj )
+ #else
+ static DWORD WINAPI ThreadFunc( LPVOID obj )
+--
+1.7.0.4
+
--- /dev/null
+[PATCH] don't append _d to library name when Qt is built with debug support
+
+qtuio appends _d to the library name when Qt was built with debug support,
+breaking linking step for examples and staging/target install.
+
+There's no real advantage to the _d suffix, so simply fix it by removing
+the logic appending _d.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ src/qTUIO.pro | 5 -----
+ 1 file changed, 5 deletions(-)
+
+Index: qtuio-abe4973ff6/src/qTUIO.pro
+===================================================================
+--- qtuio-abe4973ff6.orig/src/qTUIO.pro
++++ qtuio-abe4973ff6/src/qTUIO.pro
+@@ -16,11 +16,6 @@
+ win32:LIBS += ws2_32.lib \
+ winmm.lib
+
+-# Changes the name of the target, when is debug mode
+-CONFIG( debug, debug|release ) {
+- TARGET = $${TARGET}_d
+- BUILD_NAME = debug
+-}
+ CONFIG( release, debug|release ):BUILD_NAME = release
+
+ # Temporary folders for the auxiliar files
+++ /dev/null
-From 4dd7cad8c95484a882eaa2aeaa74595a3dd93a07 Mon Sep 17 00:00:00 2001
-From: Stephan Hoffmann <sho@relinux.de>
-Date: Sun, 2 Dec 2012 13:36:41 +0100
-Subject: [PATCH] TuioServer.cpp: add missing include
-
-If usleep() is used the header <unistd.h> has to be included
-
-Signed-off-by: Stephan Hoffmann <sho@relinux.de>
----
- src/3rdparty/tuio/TuioServer.cpp | 2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/src/3rdparty/tuio/TuioServer.cpp b/src/3rdparty/tuio/TuioServer.cpp
-index f17bef9..851144c 100644
---- a/src/3rdparty/tuio/TuioServer.cpp
-+++ b/src/3rdparty/tuio/TuioServer.cpp
-@@ -25,6 +25,8 @@ using namespace TUIO;
- using namespace osc;
-
- #ifndef WIN32
-+#include <unistd.h>
-+
- static void* ThreadFunc( void* obj )
- #else
- static DWORD WINAPI ThreadFunc( LPVOID obj )
---
-1.7.0.4
-
+++ /dev/null
-[PATCH] don't append _d to library name when Qt is built with debug support
-
-qtuio appends _d to the library name when Qt was built with debug support,
-breaking linking step for examples and staging/target install.
-
-There's no real advantage to the _d suffix, so simply fix it by removing
-the logic appending _d.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/qTUIO.pro | 5 -----
- 1 file changed, 5 deletions(-)
-
-Index: qtuio-abe4973ff6/src/qTUIO.pro
-===================================================================
---- qtuio-abe4973ff6.orig/src/qTUIO.pro
-+++ qtuio-abe4973ff6/src/qTUIO.pro
-@@ -16,11 +16,6 @@
- win32:LIBS += ws2_32.lib \
- winmm.lib
-
--# Changes the name of the target, when is debug mode
--CONFIG( debug, debug|release ) {
-- TARGET = $${TARGET}_d
-- BUILD_NAME = debug
--}
- CONFIG( release, debug|release ):BUILD_NAME = release
-
- # Temporary folders for the auxiliar files
--- /dev/null
+Add definitions for IPCTL_FORWARDING and IP6CTL_FORWARDING.
+
+Inspired from
+http://svn.gnumonks.org/trunk/grouter/build/src/quagga/quagga/quagga-0.99.1-forward_sysctl-2.6.14.patch
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: quagga-0.99.16/zebra/ipforward_sysctl.c
+===================================================================
+--- quagga-0.99.16.orig/zebra/ipforward_sysctl.c 2010-06-20 23:40:45.000000000 +0200
++++ quagga-0.99.16/zebra/ipforward_sysctl.c 2010-06-20 23:41:37.000000000 +0200
+@@ -31,6 +31,15 @@
+
+ #define MIB_SIZ 4
+
++/* Fix for recent (2.6.14) kernel headers */
++#ifndef IPCTL_FORWARDING
++#define IPCTL_FORWARDING NET_IPV4_FORWARD
++#endif
++
++#ifndef IP6CTL_FORWARDING
++#define IP6CTL_FORWARDING NET_IPV6_FORWARDING
++#endif
++
+ extern struct zebra_privs_t zserv_privs;
+
+ /* IPv4 forwarding control MIB. */
+++ /dev/null
-Add definitions for IPCTL_FORWARDING and IP6CTL_FORWARDING.
-
-Inspired from
-http://svn.gnumonks.org/trunk/grouter/build/src/quagga/quagga/quagga-0.99.1-forward_sysctl-2.6.14.patch
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: quagga-0.99.16/zebra/ipforward_sysctl.c
-===================================================================
---- quagga-0.99.16.orig/zebra/ipforward_sysctl.c 2010-06-20 23:40:45.000000000 +0200
-+++ quagga-0.99.16/zebra/ipforward_sysctl.c 2010-06-20 23:41:37.000000000 +0200
-@@ -31,6 +31,15 @@
-
- #define MIB_SIZ 4
-
-+/* Fix for recent (2.6.14) kernel headers */
-+#ifndef IPCTL_FORWARDING
-+#define IPCTL_FORWARDING NET_IPV4_FORWARD
-+#endif
-+
-+#ifndef IP6CTL_FORWARDING
-+#define IP6CTL_FORWARDING NET_IPV6_FORWARDING
-+#endif
-+
- extern struct zebra_privs_t zserv_privs;
-
- /* IPv4 forwarding control MIB. */
--- /dev/null
+Remove useless check at build time
+
+At build time, Qwt looks whether the Qwt libraries are already
+installed in the destination directory, to avoid confusion between
+libraries installed system-wide and locally-built shared
+libraries. However, this behaviour conflicts with how Buildroot builds
+and installs libraries, so get rid of it.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: qwt-6.0.0/qwtbuild.pri
+===================================================================
+--- qwt-6.0.0.orig/qwtbuild.pri 2011-09-12 19:37:35.663275952 +0200
++++ qwt-6.0.0/qwtbuild.pri 2011-09-12 19:37:41.913275949 +0200
+@@ -53,17 +53,3 @@
+ !debug_and_release {
+ OBJECTS_DIR = obj
+ }
+-
+-unix {
+-
+- exists( $${QMAKE_LIBDIR_QT}/libqwt.* ) {
+-
+- # On some Linux distributions the Qwt libraries are installed
+- # in the same directory as the Qt libraries. Unfortunately
+- # qmake always adds QMAKE_LIBDIR_QT at the beginning of the
+- # linker path, so that the installed libraries will be
+- # used instead of the local ones.
+-
+- error( "local build will conflict with $${QMAKE_LIBDIR_QT}/libqwt.*" )
+- }
+-}
+++ /dev/null
-Remove useless check at build time
-
-At build time, Qwt looks whether the Qwt libraries are already
-installed in the destination directory, to avoid confusion between
-libraries installed system-wide and locally-built shared
-libraries. However, this behaviour conflicts with how Buildroot builds
-and installs libraries, so get rid of it.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: qwt-6.0.0/qwtbuild.pri
-===================================================================
---- qwt-6.0.0.orig/qwtbuild.pri 2011-09-12 19:37:35.663275952 +0200
-+++ qwt-6.0.0/qwtbuild.pri 2011-09-12 19:37:41.913275949 +0200
-@@ -53,17 +53,3 @@
- !debug_and_release {
- OBJECTS_DIR = obj
- }
--
--unix {
--
-- exists( $${QMAKE_LIBDIR_QT}/libqwt.* ) {
--
-- # On some Linux distributions the Qwt libraries are installed
-- # in the same directory as the Qt libraries. Unfortunately
-- # qmake always adds QMAKE_LIBDIR_QT at the beginning of the
-- # linker path, so that the installed libraries will be
-- # used instead of the local ones.
--
-- error( "local build will conflict with $${QMAKE_LIBDIR_QT}/libqwt.*" )
-- }
--}
--- /dev/null
+diff -urpN rdesktop-1.5.0-orig/xwin.c rdesktop-1.5.0/xwin.c
+--- rdesktop-1.5.0-orig/xwin.c 2007-01-17 12:01:18.000000000 +0100
++++ rdesktop-1.5.0/xwin.c 2007-01-17 12:05:02.000000000 +0100
+@@ -1461,7 +1461,7 @@ select_visual(int screen_num)
+ }
+
+ /* we use a colourmap, so the default visual should do */
+- g_owncolmap = True;
++// g_owncolmap = True;
+ g_visual = vmatches[0].visual;
+ g_depth = vmatches[0].depth;
+ }
+@@ -1568,7 +1568,7 @@ ui_init(void)
+ {
+ g_xcolmap =
+ XCreateColormap(g_display, RootWindowOfScreen(g_screen), g_visual,
+- AllocNone);
++ (g_depth <= 8) ? AllocAll : AllocNone);
+ if (g_depth <= 8)
+ warning("Display colour depth is %d bit: you may want to use -C for a private colourmap.\n", g_depth);
+ }
+++ /dev/null
-diff -urpN rdesktop-1.5.0-orig/xwin.c rdesktop-1.5.0/xwin.c
---- rdesktop-1.5.0-orig/xwin.c 2007-01-17 12:01:18.000000000 +0100
-+++ rdesktop-1.5.0/xwin.c 2007-01-17 12:05:02.000000000 +0100
-@@ -1461,7 +1461,7 @@ select_visual(int screen_num)
- }
-
- /* we use a colourmap, so the default visual should do */
-- g_owncolmap = True;
-+// g_owncolmap = True;
- g_visual = vmatches[0].visual;
- g_depth = vmatches[0].depth;
- }
-@@ -1568,7 +1568,7 @@ ui_init(void)
- {
- g_xcolmap =
- XCreateColormap(g_display, RootWindowOfScreen(g_screen), g_visual,
-- AllocNone);
-+ (g_depth <= 8) ? AllocAll : AllocNone);
- if (g_depth <= 8)
- warning("Display colour depth is %d bit: you may want to use -C for a private colourmap.\n", g_depth);
- }
--- /dev/null
+link readline directly to ncurses since it needs symbols from it
+
+upstream readline does this on purpose (no direct linking), but
+it doesn't make much sense in a Linux world
+
+--- a/support/shobj-conf
++++ b/support/shobj-conf
+@@ -42,7 +42,7 @@
+ SHOBJ_LIBS=
+
+ SHLIB_XLDFLAGS=
+-SHLIB_LIBS=
++SHLIB_LIBS=-lncurses
+
+ SHLIB_DOT='.'
+ SHLIB_LIBPREF='lib'
+++ /dev/null
-link readline directly to ncurses since it needs symbols from it
-
-upstream readline does this on purpose (no direct linking), but
-it doesn't make much sense in a Linux world
-
---- a/support/shobj-conf
-+++ b/support/shobj-conf
-@@ -42,7 +42,7 @@
- SHOBJ_LIBS=
-
- SHLIB_XLDFLAGS=
--SHLIB_LIBS=
-+SHLIB_LIBS=-lncurses
-
- SHLIB_DOT='.'
- SHLIB_LIBPREF='lib'
--- /dev/null
+diff -Nura rp-pppoe-3.11.orig/src/configure rp-pppoe-3.11/src/configure
+--- rp-pppoe-3.11.orig/src/configure 2012-08-21 10:01:10.536440032 -0300
++++ rp-pppoe-3.11/src/configure 2012-08-21 10:01:45.353442397 -0300
+@@ -4517,7 +4517,7 @@
+ modprobe pppoe > /dev/null 2>&1
+ fi
+ if test "$cross_compiling" = yes; then :
+- ac_cv_linux_kernel_pppoe=no; $ECHO "cross-compiling, default: "
++ ac_cv_linux_kernel_pppoe=yes; $ECHO "cross-compiling, default: "
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+diff -Nura rp-pppoe-3.11.orig/src/pppoe-server.c rp-pppoe-3.11/src/pppoe-server.c
+--- rp-pppoe-3.11.orig/src/pppoe-server.c 2012-08-21 10:01:10.535440032 -0300
++++ rp-pppoe-3.11/src/pppoe-server.c 2012-08-21 10:02:02.597443569 -0300
+@@ -20,6 +20,9 @@
+
+ #include "config.h"
+
++/* Patched hack to make this cross compile */
++#define HAVE_LINUX_KERNEL_PPPOE 1
++
+ #if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
+ #define _POSIX_SOURCE 1 /* For sigaction defines */
+ #endif
+++ /dev/null
-diff -Nura rp-pppoe-3.11.orig/src/configure rp-pppoe-3.11/src/configure
---- rp-pppoe-3.11.orig/src/configure 2012-08-21 10:01:10.536440032 -0300
-+++ rp-pppoe-3.11/src/configure 2012-08-21 10:01:45.353442397 -0300
-@@ -4517,7 +4517,7 @@
- modprobe pppoe > /dev/null 2>&1
- fi
- if test "$cross_compiling" = yes; then :
-- ac_cv_linux_kernel_pppoe=no; $ECHO "cross-compiling, default: "
-+ ac_cv_linux_kernel_pppoe=yes; $ECHO "cross-compiling, default: "
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-diff -Nura rp-pppoe-3.11.orig/src/pppoe-server.c rp-pppoe-3.11/src/pppoe-server.c
---- rp-pppoe-3.11.orig/src/pppoe-server.c 2012-08-21 10:01:10.535440032 -0300
-+++ rp-pppoe-3.11/src/pppoe-server.c 2012-08-21 10:02:02.597443569 -0300
-@@ -20,6 +20,9 @@
-
- #include "config.h"
-
-+/* Patched hack to make this cross compile */
-+#define HAVE_LINUX_KERNEL_PPPOE 1
-+
- #if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
- #define _POSIX_SOURCE 1 /* For sigaction defines */
- #endif
--- /dev/null
+From 249e25c5cc675c212ca4e4a3342bff8f59285b1a Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Sat, 10 Nov 2012 22:03:43 +0100
+Subject: [PATCH] Remove yellow pages support
+
+This support requires yellow pages support in libtirpc, which isn't
+available. As most Buildroot users are most likely never going to need
+such feature, get rid of it.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ src/security.c | 18 ------------------
+ 1 file changed, 18 deletions(-)
+
+diff --git a/src/security.c b/src/security.c
+index d272f74..8d5863c 100644
+--- a/src/security.c
++++ b/src/security.c
+@@ -23,9 +23,6 @@
+ #include <rpcsvc/mount.h>
+ #include <rpcsvc/rquota.h>
+ #include <rpcsvc/nfs_prot.h>
+-#include <rpcsvc/yp.h>
+-#include <rpcsvc/ypclnt.h>
+-#include <rpcsvc/yppasswd.h>
+
+ #include "rpcbind.h"
+
+@@ -308,24 +305,9 @@ check_callit(SVCXPRT *xprt, struct r_rmtcall_args *args, int versnum /*__unused*
+ args->rmt_proc != MOUNTPROC_UMNT)
+ break;
+ goto deny;
+- case YPBINDPROG:
+- if (args->rmt_proc != YPBINDPROC_SETDOM)
+- break;
+- /* FALLTHROUGH */
+- case YPPASSWDPROG:
+ case NFS_PROGRAM:
+ case RQUOTAPROG:
+ goto deny;
+- case YPPROG:
+- switch (args->rmt_proc) {
+- case YPPROC_ALL:
+- case YPPROC_MATCH:
+- case YPPROC_FIRST:
+- case YPPROC_NEXT:
+- goto deny;
+- default:
+- break;
+- }
+ default:
+ break;
+ }
+--
+2.0.0
+
--- /dev/null
+From 5a1826d116ae986cb464d3503e0ae9ceaba3a687 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Sat, 10 Nov 2012 22:24:56 +0100
+Subject: [PATCH] Make IPv6 configurable
+
+Add an autoconf check that verifies whether IPv6 is available or not,
+and define the INET6 macro if available, instead of hardcoding it in
+src/Makefile.am.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile.am | 1 -
+ configure.in | 3 +++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index d10c906..c983a3e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -3,7 +3,6 @@ AM_CPPFLAGS = \
+ -DPORTMAP \
+ -DFACILITY=LOG_MAIL \
+ -DSEVERITY=LOG_INFO \
+- -DINET6 \
+ -DRPCBIND_STATEDIR="\"$(statedir)\"" \
+ -DRPCBIND_USER="\"$(rpcuser)\"" \
+ -D_GNU_SOURCE \
+diff --git a/configure.ac b/configure.ac
+index 2b67720..f144c8e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -36,4 +36,7 @@ AS_IF([test x$enable_libwrap = xyes], [
+
+ AC_SEARCH_LIBS([pthread_create], [pthread])
+
++AC_CHECK_HEADER(netinet/ip6.h,
++ AC_DEFINE(INET6, 1, [Define to 1 if IPv6 is available]))
++
+ AC_OUTPUT([Makefile])
+--
+2.0.0
+
+++ /dev/null
-From 249e25c5cc675c212ca4e4a3342bff8f59285b1a Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sat, 10 Nov 2012 22:03:43 +0100
-Subject: [PATCH] Remove yellow pages support
-
-This support requires yellow pages support in libtirpc, which isn't
-available. As most Buildroot users are most likely never going to need
-such feature, get rid of it.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- src/security.c | 18 ------------------
- 1 file changed, 18 deletions(-)
-
-diff --git a/src/security.c b/src/security.c
-index d272f74..8d5863c 100644
---- a/src/security.c
-+++ b/src/security.c
-@@ -23,9 +23,6 @@
- #include <rpcsvc/mount.h>
- #include <rpcsvc/rquota.h>
- #include <rpcsvc/nfs_prot.h>
--#include <rpcsvc/yp.h>
--#include <rpcsvc/ypclnt.h>
--#include <rpcsvc/yppasswd.h>
-
- #include "rpcbind.h"
-
-@@ -308,24 +305,9 @@ check_callit(SVCXPRT *xprt, struct r_rmtcall_args *args, int versnum /*__unused*
- args->rmt_proc != MOUNTPROC_UMNT)
- break;
- goto deny;
-- case YPBINDPROG:
-- if (args->rmt_proc != YPBINDPROC_SETDOM)
-- break;
-- /* FALLTHROUGH */
-- case YPPASSWDPROG:
- case NFS_PROGRAM:
- case RQUOTAPROG:
- goto deny;
-- case YPPROG:
-- switch (args->rmt_proc) {
-- case YPPROC_ALL:
-- case YPPROC_MATCH:
-- case YPPROC_FIRST:
-- case YPPROC_NEXT:
-- goto deny;
-- default:
-- break;
-- }
- default:
- break;
- }
---
-2.0.0
-
+++ /dev/null
-From 5a1826d116ae986cb464d3503e0ae9ceaba3a687 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sat, 10 Nov 2012 22:24:56 +0100
-Subject: [PATCH] Make IPv6 configurable
-
-Add an autoconf check that verifies whether IPv6 is available or not,
-and define the INET6 macro if available, instead of hardcoding it in
-src/Makefile.am.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile.am | 1 -
- configure.in | 3 +++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index d10c906..c983a3e 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -3,7 +3,6 @@ AM_CPPFLAGS = \
- -DPORTMAP \
- -DFACILITY=LOG_MAIL \
- -DSEVERITY=LOG_INFO \
-- -DINET6 \
- -DRPCBIND_STATEDIR="\"$(statedir)\"" \
- -DRPCBIND_USER="\"$(rpcuser)\"" \
- -D_GNU_SOURCE \
-diff --git a/configure.ac b/configure.ac
-index 2b67720..f144c8e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -36,4 +36,7 @@ AS_IF([test x$enable_libwrap = xyes], [
-
- AC_SEARCH_LIBS([pthread_create], [pthread])
-
-+AC_CHECK_HEADER(netinet/ip6.h,
-+ AC_DEFINE(INET6, 1, [Define to 1 if IPv6 is available]))
-+
- AC_OUTPUT([Makefile])
---
-2.0.0
-
--- /dev/null
+Add .pc files for the OpenGLESv2, EGL and bcm_host libraries
+
+Those pkg-config files make it easier for Qt5 to find those libraries
+and the appropriate link flags.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+Index: b/interface/khronos/egl/egl.pc.in
+===================================================================
+--- /dev/null
++++ b/interface/khronos/egl/egl.pc.in
+@@ -0,0 +1,11 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: egl
++Description: RasberryPi implementation of EGL
++Version: 10
++Libs: -L${libdir} -lEGL -lGLESv2 -lbcm_host -lvchostif
++Cflags: -I${includedir}/ -I${includedir}/interface/vcos/pthreads/ \
++ -I${includedir}/interface/vmcs_host/linux/
+Index: b/interface/khronos/CMakeLists.txt
+===================================================================
+--- a/interface/khronos/CMakeLists.txt
++++ b/interface/khronos/CMakeLists.txt
+@@ -74,3 +74,11 @@
+
+ install(TARGETS EGL GLESv2 OpenVG WFC khrn_client DESTINATION lib)
+ install(TARGETS EGL_static GLESv2_static khrn_static DESTINATION lib)
++configure_file("${CMAKE_CURRENT_SOURCE_DIR}/egl/egl.pc.in"
++ "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc" @ONLY)
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc"
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
++configure_file("${CMAKE_CURRENT_SOURCE_DIR}/glxx/glesv2.pc.in"
++ "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc" @ONLY)
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc"
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
+Index: b/interface/khronos/glxx/glesv2.pc.in
+===================================================================
+--- /dev/null
++++ b/interface/khronos/glxx/glesv2.pc.in
+@@ -0,0 +1,10 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: glesv2
++Description: RasberryPi implementation of OpenGL ESv2
++Version: 2.0
++Libs: -L${libdir} -lGLESv2
++Cflags: -I${includedir}/
+Index: b/host_applications/linux/libs/bcm_host/CMakeLists.txt
+===================================================================
+--- a/host_applications/linux/libs/bcm_host/CMakeLists.txt
++++ b/host_applications/linux/libs/bcm_host/CMakeLists.txt
+@@ -20,3 +20,7 @@
+
+ install(TARGETS bcm_host DESTINATION lib)
+
++configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bcm_host.pc.in"
++ "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc" @ONLY)
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc"
++ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
+Index: b/host_applications/linux/libs/bcm_host/bcm_host.pc.in
+===================================================================
+--- /dev/null
++++ b/host_applications/linux/libs/bcm_host/bcm_host.pc.in
+@@ -0,0 +1,10 @@
++prefix=/usr
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: bcm_host
++Description: Broadcom VideoCore host API library
++Version: 1
++Libs: -L${libdir} -lbcm_host -lvcos -lvchiq_arm
++Cflags: -I${includedir} -I${includedir}/interface/vmcs_host/linux -I${includedir}/interface/vcos/pthreads -DUSE_VCHIQ_ARM
--- /dev/null
+From fec2560cfcb8d3398e4f1ccc3de7923365873676 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 5 Jan 2013 16:04:55 +0100
+Subject: [PATCH] makefiles/cmake/vmcs.cmake: allow to override
+ VMCS_INSTALL_PREFIX
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ makefiles/cmake/vmcs.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/makefiles/cmake/vmcs.cmake b/makefiles/cmake/vmcs.cmake
+index 0f8641b..cc70cca 100644
+--- a/makefiles/cmake/vmcs.cmake
++++ b/makefiles/cmake/vmcs.cmake
+@@ -9,7 +9,7 @@ INCLUDE(CPack)
+ # Where shall we install?
+ if (ANDROID)
+ SET(VMCS_INSTALL_PREFIX "/vendor/brcm/islands" CACHE PATH "Prefix prepended to install directories" FORCE)
+-else()
++elseif(NOT DEFINED VMCS_INSTALL_PREFIX)
+ SET(VMCS_INSTALL_PREFIX "/opt/vc" CACHE PATH "Prefix prepended to install directories" FORCE)
+ endif()
+
+--
+1.8.1
--- /dev/null
+interface: remove faulty assert() to make weston happy at runtime
+
+This was removed after a discussion on IRC with the weston guys
+('daniels' on irc.freenode.net/#wayland).
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+Upstream status: no, will be pushed by weston guys later.
+If not, I'll do it.
+
+diff -durN rpi-userland-77d32cd.orig/interface/vmcs_host/vc_vchi_dispmanx.c rpi-userland-77d32cd/interface/vmcs_host/vc_vchi_dispmanx.c
+--- rpi-userland-77d32cd.orig/interface/vmcs_host/vc_vchi_dispmanx.c 2013-10-04 17:43:44.000000000 +0200
++++ rpi-userland-77d32cd/interface/vmcs_host/vc_vchi_dispmanx.c 2013-10-08 22:28:51.611433539 +0200
+@@ -1187,7 +1187,6 @@
+ continue;
+
+ if(dispmanx_client.update_callback ) {
+- vcos_assert( dispmanx_client.pending_update_handle == (DISPMANX_UPDATE_HANDLE_T) dispmanx_client.notify_buffer[1]);
+ dispmanx_client.update_callback((DISPMANX_UPDATE_HANDLE_T) dispmanx_client.notify_buffer[1], dispmanx_client.update_callback_param);
+ }
+ }
--- /dev/null
+From 198d93fab0659f7a548329d742de8b3e27cfd977 Mon Sep 17 00:00:00 2001
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Fri, 12 Sep 2014 18:28:51 +0200
+Subject: [PATCH] Combined musl compile fixes
+
+The individual patches and their descriptions can be found here:
+https://github.com/raspberrypi/userland/pull/201
+
+Upstream status: accepted (4333d6d)
+However, bumping to that revision is currently not an option since that
+also pulls in 66338d3 which breaks Weston:
+http://lists.busybox.net/pipermail/buildroot/2014-October/109309.html
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ containers/CMakeLists.txt | 2 +-
+ host_applications/linux/apps/hello_pi/CMakeLists.txt | 2 +-
+ host_applications/linux/apps/hello_pi/libs/vgfont/Makefile | 1 -
+ interface/vcos/pthreads/vcos_platform.h | 3 ---
+ interface/vcos/pthreads/vcos_pthreads.c | 2 +-
+ interface/vmcs_host/linux/vcfilesys.c | 4 ++--
+ 6 files changed, 5 insertions(+), 9 deletions(-)
+
+diff --git a/containers/CMakeLists.txt b/containers/CMakeLists.txt
+index 721f74f..a29a885 100644
+--- a/containers/CMakeLists.txt
++++ b/containers/CMakeLists.txt
+@@ -13,7 +13,7 @@ add_definitions(-DDL_PATH_PREFIX="${VMCS_PLUGIN_DIR}/")
+
+ SET( GCC_COMPILER_FLAGS -Wall -g -O2 -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wcast-qual -Wwrite-strings -Wundef )
+ SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wextra )#-Wno-missing-field-initializers )
+-SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -D__STDC_VERSION__=199901L )
++SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -std=c99 -D_POSIX_C_SOURCE=199309L )
+ SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wno-missing-field-initializers )
+ SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wno-unused-value )
+
+diff --git a/host_applications/linux/apps/hello_pi/CMakeLists.txt b/host_applications/linux/apps/hello_pi/CMakeLists.txt
+index ab4dae3..f2c6aef 100644
+--- a/host_applications/linux/apps/hello_pi/CMakeLists.txt
++++ b/host_applications/linux/apps/hello_pi/CMakeLists.txt
+@@ -24,7 +24,7 @@ add_subdirectory(hello_teapot)
+
+ if(BUILD_FONT)
+ set(VGFONT_SRCS libs/vgfont/font.c libs/vgfont/vgft.c libs/vgfont/graphics.c)
+-set_source_files_properties(${VGFONT_SRCS} PROPERTIES COMPILE_DEFINITIONS "_HAVE_TIMER_T")
++set_source_files_properties(${VGFONT_SRCS} PROPERTIES COMPILE_DEFINITIONS)
+ add_library(vgfont ${VGFONT_SRCS})
+
+ add_subdirectory(hello_font)
+diff --git a/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile b/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
+index d04fb08..1e2a22b 100755
+--- a/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
++++ b/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
+@@ -2,7 +2,6 @@ OBJS=font.o vgft.o graphics.o
+ LIB=libvgfont.a
+
+ INCLUDES+=-I$(SDKSTAGE)/usr/include/freetype2 -I$(SDKSTAGE)/usr/include -I$(SDKSTAGE)/usr/include/arm-linux-gnueabi
+-CFLAGS+=-D_HAVE_TIMER_T
+
+ include ../../Makefile.include
+
+diff --git a/interface/vcos/pthreads/vcos_platform.h b/interface/vcos/pthreads/vcos_platform.h
+index 468098b..2095e25 100755
+--- a/interface/vcos/pthreads/vcos_platform.h
++++ b/interface/vcos/pthreads/vcos_platform.h
+@@ -120,9 +120,6 @@ typedef struct
+
+ #define VCOS_ONCE_INIT PTHREAD_ONCE_INIT
+
+-#if defined(__arm__) && !defined(_HAVE_TIMER_T) && !defined(ANDROID)
+-typedef __timer_t timer_t;
+-#endif
+ typedef struct VCOS_TIMER_T
+ {
+ pthread_t thread; /**< id of the timer thread */
+diff --git a/interface/vcos/pthreads/vcos_pthreads.c b/interface/vcos/pthreads/vcos_pthreads.c
+index 668f647..fdc8bc4 100644
+--- a/interface/vcos/pthreads/vcos_pthreads.c
++++ b/interface/vcos/pthreads/vcos_pthreads.c
+@@ -33,7 +33,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <sys/time.h>
+-#include <sys/param.h>
++#include <linux/param.h>
+
+ /* Cygwin doesn't always have prctl.h and it doesn't have PR_SET_NAME */
+ #if defined( __linux__ )
+diff --git a/interface/vmcs_host/linux/vcfilesys.c b/interface/vmcs_host/linux/vcfilesys.c
+index ab65e3e..53c7486 100644
+--- a/interface/vmcs_host/linux/vcfilesys.c
++++ b/interface/vmcs_host/linux/vcfilesys.c
+@@ -49,7 +49,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #include <ctype.h>
+ #include <limits.h>
+
+-#if !defined(ANDROID) && !defined( __USE_FILE_OFFSET64 )
++#if defined(__GLIBC__) && !defined( __USE_FILE_OFFSET64 )
+ #error "__USE_FILE_OFFSET64 isn't defined"
+ #endif
+
+@@ -916,7 +916,7 @@ int vc_hostfs_set_attr(const char *path, fattributes_t attr)
+
+ if (pathbuf)
+ {
+- __mode_t mode = 0;
++ mode_t mode = 0;
+ struct stat sb;
+
+ backslash_to_slash(pathbuf);
+--
+1.8.4.5
+
+++ /dev/null
-Add .pc files for the OpenGLESv2, EGL and bcm_host libraries
-
-Those pkg-config files make it easier for Qt5 to find those libraries
-and the appropriate link flags.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-Index: b/interface/khronos/egl/egl.pc.in
-===================================================================
---- /dev/null
-+++ b/interface/khronos/egl/egl.pc.in
-@@ -0,0 +1,11 @@
-+prefix=@CMAKE_INSTALL_PREFIX@
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: egl
-+Description: RasberryPi implementation of EGL
-+Version: 10
-+Libs: -L${libdir} -lEGL -lGLESv2 -lbcm_host -lvchostif
-+Cflags: -I${includedir}/ -I${includedir}/interface/vcos/pthreads/ \
-+ -I${includedir}/interface/vmcs_host/linux/
-Index: b/interface/khronos/CMakeLists.txt
-===================================================================
---- a/interface/khronos/CMakeLists.txt
-+++ b/interface/khronos/CMakeLists.txt
-@@ -74,3 +74,11 @@
-
- install(TARGETS EGL GLESv2 OpenVG WFC khrn_client DESTINATION lib)
- install(TARGETS EGL_static GLESv2_static khrn_static DESTINATION lib)
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/egl/egl.pc.in"
-+ "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc"
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/glxx/glesv2.pc.in"
-+ "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc"
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-Index: b/interface/khronos/glxx/glesv2.pc.in
-===================================================================
---- /dev/null
-+++ b/interface/khronos/glxx/glesv2.pc.in
-@@ -0,0 +1,10 @@
-+prefix=@CMAKE_INSTALL_PREFIX@
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: glesv2
-+Description: RasberryPi implementation of OpenGL ESv2
-+Version: 2.0
-+Libs: -L${libdir} -lGLESv2
-+Cflags: -I${includedir}/
-Index: b/host_applications/linux/libs/bcm_host/CMakeLists.txt
-===================================================================
---- a/host_applications/linux/libs/bcm_host/CMakeLists.txt
-+++ b/host_applications/linux/libs/bcm_host/CMakeLists.txt
-@@ -20,3 +20,7 @@
-
- install(TARGETS bcm_host DESTINATION lib)
-
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bcm_host.pc.in"
-+ "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc"
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-Index: b/host_applications/linux/libs/bcm_host/bcm_host.pc.in
-===================================================================
---- /dev/null
-+++ b/host_applications/linux/libs/bcm_host/bcm_host.pc.in
-@@ -0,0 +1,10 @@
-+prefix=/usr
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: bcm_host
-+Description: Broadcom VideoCore host API library
-+Version: 1
-+Libs: -L${libdir} -lbcm_host -lvcos -lvchiq_arm
-+Cflags: -I${includedir} -I${includedir}/interface/vmcs_host/linux -I${includedir}/interface/vcos/pthreads -DUSE_VCHIQ_ARM
+++ /dev/null
-From fec2560cfcb8d3398e4f1ccc3de7923365873676 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 5 Jan 2013 16:04:55 +0100
-Subject: [PATCH] makefiles/cmake/vmcs.cmake: allow to override
- VMCS_INSTALL_PREFIX
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- makefiles/cmake/vmcs.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/makefiles/cmake/vmcs.cmake b/makefiles/cmake/vmcs.cmake
-index 0f8641b..cc70cca 100644
---- a/makefiles/cmake/vmcs.cmake
-+++ b/makefiles/cmake/vmcs.cmake
-@@ -9,7 +9,7 @@ INCLUDE(CPack)
- # Where shall we install?
- if (ANDROID)
- SET(VMCS_INSTALL_PREFIX "/vendor/brcm/islands" CACHE PATH "Prefix prepended to install directories" FORCE)
--else()
-+elseif(NOT DEFINED VMCS_INSTALL_PREFIX)
- SET(VMCS_INSTALL_PREFIX "/opt/vc" CACHE PATH "Prefix prepended to install directories" FORCE)
- endif()
-
---
-1.8.1
+++ /dev/null
-interface: remove faulty assert() to make weston happy at runtime
-
-This was removed after a discussion on IRC with the weston guys
-('daniels' on irc.freenode.net/#wayland).
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
-Upstream status: no, will be pushed by weston guys later.
-If not, I'll do it.
-
-diff -durN rpi-userland-77d32cd.orig/interface/vmcs_host/vc_vchi_dispmanx.c rpi-userland-77d32cd/interface/vmcs_host/vc_vchi_dispmanx.c
---- rpi-userland-77d32cd.orig/interface/vmcs_host/vc_vchi_dispmanx.c 2013-10-04 17:43:44.000000000 +0200
-+++ rpi-userland-77d32cd/interface/vmcs_host/vc_vchi_dispmanx.c 2013-10-08 22:28:51.611433539 +0200
-@@ -1187,7 +1187,6 @@
- continue;
-
- if(dispmanx_client.update_callback ) {
-- vcos_assert( dispmanx_client.pending_update_handle == (DISPMANX_UPDATE_HANDLE_T) dispmanx_client.notify_buffer[1]);
- dispmanx_client.update_callback((DISPMANX_UPDATE_HANDLE_T) dispmanx_client.notify_buffer[1], dispmanx_client.update_callback_param);
- }
- }
+++ /dev/null
-From 198d93fab0659f7a548329d742de8b3e27cfd977 Mon Sep 17 00:00:00 2001
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Fri, 12 Sep 2014 18:28:51 +0200
-Subject: [PATCH] Combined musl compile fixes
-
-The individual patches and their descriptions can be found here:
-https://github.com/raspberrypi/userland/pull/201
-
-Upstream status: accepted (4333d6d)
-However, bumping to that revision is currently not an option since that
-also pulls in 66338d3 which breaks Weston:
-http://lists.busybox.net/pipermail/buildroot/2014-October/109309.html
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- containers/CMakeLists.txt | 2 +-
- host_applications/linux/apps/hello_pi/CMakeLists.txt | 2 +-
- host_applications/linux/apps/hello_pi/libs/vgfont/Makefile | 1 -
- interface/vcos/pthreads/vcos_platform.h | 3 ---
- interface/vcos/pthreads/vcos_pthreads.c | 2 +-
- interface/vmcs_host/linux/vcfilesys.c | 4 ++--
- 6 files changed, 5 insertions(+), 9 deletions(-)
-
-diff --git a/containers/CMakeLists.txt b/containers/CMakeLists.txt
-index 721f74f..a29a885 100644
---- a/containers/CMakeLists.txt
-+++ b/containers/CMakeLists.txt
-@@ -13,7 +13,7 @@ add_definitions(-DDL_PATH_PREFIX="${VMCS_PLUGIN_DIR}/")
-
- SET( GCC_COMPILER_FLAGS -Wall -g -O2 -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wcast-qual -Wwrite-strings -Wundef )
- SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wextra )#-Wno-missing-field-initializers )
--SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -D__STDC_VERSION__=199901L )
-+SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -std=c99 -D_POSIX_C_SOURCE=199309L )
- SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wno-missing-field-initializers )
- SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wno-unused-value )
-
-diff --git a/host_applications/linux/apps/hello_pi/CMakeLists.txt b/host_applications/linux/apps/hello_pi/CMakeLists.txt
-index ab4dae3..f2c6aef 100644
---- a/host_applications/linux/apps/hello_pi/CMakeLists.txt
-+++ b/host_applications/linux/apps/hello_pi/CMakeLists.txt
-@@ -24,7 +24,7 @@ add_subdirectory(hello_teapot)
-
- if(BUILD_FONT)
- set(VGFONT_SRCS libs/vgfont/font.c libs/vgfont/vgft.c libs/vgfont/graphics.c)
--set_source_files_properties(${VGFONT_SRCS} PROPERTIES COMPILE_DEFINITIONS "_HAVE_TIMER_T")
-+set_source_files_properties(${VGFONT_SRCS} PROPERTIES COMPILE_DEFINITIONS)
- add_library(vgfont ${VGFONT_SRCS})
-
- add_subdirectory(hello_font)
-diff --git a/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile b/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
-index d04fb08..1e2a22b 100755
---- a/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
-+++ b/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
-@@ -2,7 +2,6 @@ OBJS=font.o vgft.o graphics.o
- LIB=libvgfont.a
-
- INCLUDES+=-I$(SDKSTAGE)/usr/include/freetype2 -I$(SDKSTAGE)/usr/include -I$(SDKSTAGE)/usr/include/arm-linux-gnueabi
--CFLAGS+=-D_HAVE_TIMER_T
-
- include ../../Makefile.include
-
-diff --git a/interface/vcos/pthreads/vcos_platform.h b/interface/vcos/pthreads/vcos_platform.h
-index 468098b..2095e25 100755
---- a/interface/vcos/pthreads/vcos_platform.h
-+++ b/interface/vcos/pthreads/vcos_platform.h
-@@ -120,9 +120,6 @@ typedef struct
-
- #define VCOS_ONCE_INIT PTHREAD_ONCE_INIT
-
--#if defined(__arm__) && !defined(_HAVE_TIMER_T) && !defined(ANDROID)
--typedef __timer_t timer_t;
--#endif
- typedef struct VCOS_TIMER_T
- {
- pthread_t thread; /**< id of the timer thread */
-diff --git a/interface/vcos/pthreads/vcos_pthreads.c b/interface/vcos/pthreads/vcos_pthreads.c
-index 668f647..fdc8bc4 100644
---- a/interface/vcos/pthreads/vcos_pthreads.c
-+++ b/interface/vcos/pthreads/vcos_pthreads.c
-@@ -33,7 +33,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #include <stdlib.h>
- #include <stdio.h>
- #include <sys/time.h>
--#include <sys/param.h>
-+#include <linux/param.h>
-
- /* Cygwin doesn't always have prctl.h and it doesn't have PR_SET_NAME */
- #if defined( __linux__ )
-diff --git a/interface/vmcs_host/linux/vcfilesys.c b/interface/vmcs_host/linux/vcfilesys.c
-index ab65e3e..53c7486 100644
---- a/interface/vmcs_host/linux/vcfilesys.c
-+++ b/interface/vmcs_host/linux/vcfilesys.c
-@@ -49,7 +49,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #include <ctype.h>
- #include <limits.h>
-
--#if !defined(ANDROID) && !defined( __USE_FILE_OFFSET64 )
-+#if defined(__GLIBC__) && !defined( __USE_FILE_OFFSET64 )
- #error "__USE_FILE_OFFSET64 isn't defined"
- #endif
-
-@@ -916,7 +916,7 @@ int vc_hostfs_set_attr(const char *path, fattributes_t attr)
-
- if (pathbuf)
- {
-- __mode_t mode = 0;
-+ mode_t mode = 0;
- struct stat sb;
-
- backslash_to_slash(pathbuf);
---
-1.8.4.5
-
--- /dev/null
+[PATCH] rpm: fix build on uClibc with !LFS
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ rpmio/fts.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+Index: rpm-5.2.0/rpmio/fts.c
+===================================================================
+--- rpm-5.2.0.orig/rpmio/fts.c
++++ rpm-5.2.0/rpmio/fts.c
+@@ -47,6 +47,10 @@ static char sccsid[] = "@(#)fts.c 8.6 (B
+ #else
+ #if defined(__UCLIBC__)
+ # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
++# include <features.h>
++# ifndef __UCLIBC_HAS_LFS__
++# define stat64 stat
++# endif
+ #endif
+ #if defined(hpux) || defined(__hpux)
+ # define _INCLUDE_POSIX_SOURCE
--- /dev/null
+Bugfix included upstream
+
+diff -u --new-file --recursive rpm-5.2.0_vanilla/lib/depends.c rpm-5.2.0_depends-fix/lib/depends.c
+--- rpm-5.2.0_vanilla/lib/depends.c 2009-05-23 01:23:46.000000000 +0000
++++ rpm-5.2.0_depends-fix/lib/depends.c 2009-09-22 06:33:37.950783501 +0000
+@@ -2371,11 +2371,11 @@
+
+ memset(selected, 0, sizeof(*selected) * ts->orderCount);
+
+- if ((requires = rpmteDS(p, RPMTAG_REQUIRENAME)) != NULL) {
+-
+ /* Avoid narcisstic relations. */
+ selected[rpmtsiOc(pi)] = 1;
+
++ if ((requires = rpmteDS(p, RPMTAG_REQUIRENAME)) != NULL) {
++
+ /* T2. Next "q <- p" relation. */
+
+ /* First, do pre-requisites. */
--- /dev/null
+diff -ru rpm-5.2.0_vanilla/tools/Makefile.am rpm-5.2.0_exclude-some-tools/tools/Makefile.am
+--- rpm-5.2.0_vanilla/tools/Makefile.am 2009-06-03 01:24:42.000000000 +0000
++++ rpm-5.2.0_exclude-some-tools/tools/Makefile.am 2009-12-20 07:47:13.000000000 +0000
+@@ -45,9 +45,7 @@
+ bin_PROGRAMS = rpm2cpio
+
+ pkgbindir = @USRLIBRPM@/bin
+-pkgbin_PROGRAMS = \
+- rpmcache rpmdigest grep mtree rpmrepo rpmspecdump wget \
+- rpmcmp rpmdeps @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@
++pkgbin_PROGRAMS =
+ dist_man_MANS = rpmgrep.1
+
+ debugedit_SOURCES = debugedit.c hashtab.c
+diff -ru rpm-5.2.0_vanilla/tools/Makefile.in rpm-5.2.0_exclude-some-tools/tools/Makefile.in
+--- rpm-5.2.0_vanilla/tools/Makefile.in 2009-07-07 21:14:06.000000000 +0000
++++ rpm-5.2.0_exclude-some-tools/tools/Makefile.in 2009-12-20 07:47:37.000000000 +0000
+@@ -39,11 +39,7 @@
+ target_triplet = @target@
+ EXTRA_PROGRAMS = rpmkey$(EXEEXT) debugedit$(EXEEXT)
+ bin_PROGRAMS = rpm2cpio$(EXEEXT)
+-pkgbin_PROGRAMS = rpmcache$(EXEEXT) rpmdigest$(EXEEXT) grep$(EXEEXT) \
+- mtree$(EXEEXT) rpmrepo$(EXEEXT) rpmspecdump$(EXEEXT) \
+- wget$(EXEEXT) rpmcmp$(EXEEXT) rpmdeps$(EXEEXT) \
+- @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@ $(am__EXEEXT_1) \
+- $(am__EXEEXT_2)
++pkgbin_PROGRAMS =
+ @WITH_XAR_TRUE@am__append_1 = txar
+ @WITH_DB_INTERNAL_TRUE@@WITH_DB_TOOLS_INTEGRATED_TRUE@am__append_2 = db_tool
+ @WITH_DB_INTERNAL_TRUE@@WITH_DB_RPC_TRUE@@WITH_DB_TOOLS_INTEGRATED_TRUE@am__append_3 = \
--- /dev/null
+diff -ru rpm-5.2.0_vanilla/db/env/env_open.c rpm-5.2.0_test/db/env/env_open.c
+--- rpm-5.2.0_vanilla/db/env/env_open.c 2008-05-28 01:23:27.000000000 +0000
++++ rpm-5.2.0_test/db/env/env_open.c 2009-12-24 14:54:55.000000000 +0000
+@@ -124,7 +124,7 @@
+ }
+ }
+
+-#ifdef HAVE_MUTEX_THREAD_ONLY
++#ifdef NK_HAVE_MUTEX_THREAD_ONLY
+ /*
+ * Currently we support one kind of mutex that is intra-process only,
+ * POSIX 1003.1 pthreads, because a variety of systems don't support
--- /dev/null
+Reduce parentdirs we use, parentdirs are used for ordering
+Included upstream
+diff -u --new-file --recursive rpm-5.1.9_vanilla/lib/depends.c rpm-5.1.9_no-parentdirs/lib/depends.c
+--- rpm-5.1.9_vanilla/lib/depends.c 2009-04-12 19:46:17.000000000 +0000
++++ rpm-5.1.9_no-parentdirs/lib/depends.c 2009-06-13 15:21:43.504999639 +0000
+@@ -2257,7 +2257,7 @@
+ #define isAuto(_x) ((_x) & _autobits)
+
+ /*@unchecked@*/
+-static int slashDepth = 100; /* #slashes pemitted in parentdir deps. */
++static int slashDepth = 2; /* #slashes pemitted in parentdir deps. */
+
+ static int countSlashes(const char * dn)
+ /*@*/
--- /dev/null
+Included upstream
+--- x/lib/depends.c 2009/05/15 13:40:58 1.445
++++ y/lib/depends.c 2009/08/22 22:12:02 1.446
+@@ -2216,9 +2216,6 @@
+ {
+ rpmte q, qprev;
+
+- /* Mark the package as queued. */
+- rpmteTSI(p)->tsi_queued = 1;
+-
+ if ((*rp) == NULL) { /* 1st element */
+ /*@-dependenttrans@*/ /* FIX: double indirection */
+ (*rp) = (*qp) = p;
+@@ -2238,6 +2235,12 @@
+ /* XXX Insure removed after added. */
+ if (rpmteType(p) == TR_REMOVED && rpmteType(p) != rpmteType(q))
+ continue;
++
++ /* XXX Follow all previous generations in the queue. */
++ if (rpmteTSI(p)->tsi_queued > rpmteTSI(q)->tsi_queued)
++ continue;
++
++ /* XXX Within a generation, queue behind more "important". */
+ if (rpmteTSI(q)->tsi_qcnt <= rpmteTSI(p)->tsi_qcnt)
+ break;
+ }
+@@ -2521,6 +2524,9 @@
+
+ if (rpmteTSI(p)->tsi_count != 0)
+ continue;
++
++ /* Mark the package as queued. */
++ rpmteTSI(p)->tsi_queued = orderingCount + 1;
+ rpmteTSI(p)->tsi_suc = NULL;
+ addQ(p, &q, &r, prefcolor);
+ qlen++;
+@@ -2584,6 +2590,8 @@
+ (void) rpmteSetParent(p, q);
+ (void) rpmteSetDegree(q, rpmteDegree(q)+1);
+
++ /* Mark the package as queued. */
++ rpmteTSI(p)->tsi_queued = orderingCount + 1;
+ /* XXX TODO: add control bit. */
+ rpmteTSI(p)->tsi_suc = NULL;
+ /*@-nullstate@*/ /* XXX FIX: rpmteTSI(q)->tsi_suc can be NULL. */
--- /dev/null
+Avoid looking up files or directories that this package provides
+Included upstream
+diff -u --new-file --recursive rpm-5.2.0_vanilla/lib/depends.c rpm-5.2.0_parentdir-vs-requires/lib/depends.c
+--- rpm-5.2.0_vanilla/lib/depends.c 2009-05-23 01:23:46.000000000 +0000
++++ rpm-5.2.0_parentdir-vs-requires/lib/depends.c 2009-09-22 17:00:24.880956271 +0000
+@@ -2095,6 +2095,7 @@
+ rpmtsi qi; rpmte q;
+ tsortInfo tsi;
+ nsType NSType = rpmdsNSType(requires);
++ const char * N = rpmdsN(requires);
+ fnpyKey key;
+ int teType = rpmteType(p);
+ alKey pkgKey;
+@@ -2128,6 +2129,23 @@
+ break;
+ }
+
++ /* Avoid looking up files/directories that are "owned" by _THIS_ package. */
++ if (*N == '/') {
++ rpmfi fi = rpmteFI(p, RPMTAG_BASENAMES);
++ int bingo = 0;
++
++ fi = rpmfiInit(fi, 0);
++ while (rpmfiNext(fi) >= 0) {
++ const char * fn = rpmfiFN(fi);
++ if (strcmp(N, fn))
++ continue;
++ bingo = 1;
++ break;
++ }
++ if (bingo)
++ return 0;
++ }
++
+ pkgKey = RPMAL_NOMATCH;
+ key = rpmalSatisfiesDepend(al, requires, &pkgKey);
+
--- /dev/null
+Buildroot specific
+diff -ru rpm-5.1.9_vanilla/xz/configure rpm-5.1.9_short-circuit-c99/xz/configure
+--- rpm-5.1.9_vanilla/xz/configure 2009-04-18 16:47:23.000000000 +0000
++++ rpm-5.1.9_short-circuit-c99/xz/configure 2009-08-04 08:25:59.000000000 +0000
+@@ -4970,214 +4970,7 @@
+ am__fastdepCC_FALSE=
+ fi
+
+-
+- { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5
+-$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+-if test "${ac_cv_prog_cc_c99+set}" = set; then
+- $as_echo_n "(cached) " >&6
+-else
+- ac_cv_prog_cc_c99=no
+-ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-#include <stdarg.h>
+-#include <stdbool.h>
+-#include <stdlib.h>
+-#include <wchar.h>
+-#include <stdio.h>
+-
+-// Check varargs macros. These examples are taken from C99 6.10.3.5.
+-#define debug(...) fprintf (stderr, __VA_ARGS__)
+-#define showlist(...) puts (#__VA_ARGS__)
+-#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+-static void
+-test_varargs_macros (void)
+-{
+- int x = 1234;
+- int y = 5678;
+- debug ("Flag");
+- debug ("X = %d\n", x);
+- showlist (The first, second, and third items.);
+- report (x>y, "x is %d but y is %d", x, y);
+-}
+-
+-// Check long long types.
+-#define BIG64 18446744073709551615ull
+-#define BIG32 4294967295ul
+-#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+-#if !BIG_OK
+- your preprocessor is broken;
+-#endif
+-#if BIG_OK
+-#else
+- your preprocessor is broken;
+-#endif
+-static long long int bignum = -9223372036854775807LL;
+-static unsigned long long int ubignum = BIG64;
+-
+-struct incomplete_array
+-{
+- int datasize;
+- double data[];
+-};
+-
+-struct named_init {
+- int number;
+- const wchar_t *name;
+- double average;
+-};
+-
+-typedef const char *ccp;
+-
+-static inline int
+-test_restrict (ccp restrict text)
+-{
+- // See if C++-style comments work.
+- // Iterate through items via the restricted pointer.
+- // Also check for declarations in for loops.
+- for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+- continue;
+- return 0;
+-}
+-
+-// Check varargs and va_copy.
+-static void
+-test_varargs (const char *format, ...)
+-{
+- va_list args;
+- va_start (args, format);
+- va_list args_copy;
+- va_copy (args_copy, args);
+-
+- const char *str;
+- int number;
+- float fnumber;
+-
+- while (*format)
+- {
+- switch (*format++)
+- {
+- case 's': // string
+- str = va_arg (args_copy, const char *);
+- break;
+- case 'd': // int
+- number = va_arg (args_copy, int);
+- break;
+- case 'f': // float
+- fnumber = va_arg (args_copy, double);
+- break;
+- default:
+- break;
+- }
+- }
+- va_end (args_copy);
+- va_end (args);
+-}
+-
+-int
+-main ()
+-{
+-
+- // Check bool.
+- _Bool success = false;
+-
+- // Check restrict.
+- if (test_restrict ("String literal") == 0)
+- success = true;
+- char *restrict newvar = "Another string";
+-
+- // Check varargs.
+- test_varargs ("s, d' f .", "string", 65, 34.234);
+- test_varargs_macros ();
+-
+- // Check flexible array members.
+- struct incomplete_array *ia =
+- malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+- ia->datasize = 10;
+- for (int i = 0; i < ia->datasize; ++i)
+- ia->data[i] = i * 1.234;
+-
+- // Check named initializers.
+- struct named_init ni = {
+- .number = 34,
+- .name = L"Test wide string",
+- .average = 543.34343,
+- };
+-
+- ni.number = 58;
+-
+- int dynamic_array[ni.number];
+- dynamic_array[ni.number - 1] = 543;
+-
+- // work around unused variable warnings
+- return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+- || dynamic_array[ni.number - 1] != 543);
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+-do
+- CC="$ac_save_CC $ac_arg"
+- rm -f conftest.$ac_objext
+-if { (ac_try="$ac_compile"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_compile") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest.$ac_objext; then
+- ac_cv_prog_cc_c99=$ac_arg
+-else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-
+-fi
+-
+-rm -f core conftest.err conftest.$ac_objext
+- test "x$ac_cv_prog_cc_c99" != "xno" && break
+-done
+-rm -f conftest.$ac_ext
+-CC=$ac_save_CC
+-
+-fi
+-# AC_CACHE_VAL
+-case "x$ac_cv_prog_cc_c99" in
+- x)
+- { $as_echo "$as_me:$LINENO: result: none needed" >&5
+-$as_echo "none needed" >&6; } ;;
+- xno)
+- { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+-$as_echo "unsupported" >&6; } ;;
+- *)
+- CC="$CC $ac_cv_prog_cc_c99"
+- { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5
+-$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
+-esac
+-
+-
+-
+-if test x$ac_cv_prog_cc_c99 = xno ; then
+- { { $as_echo "$as_me:$LINENO: error: No C99 compiler was found." >&5
+-$as_echo "$as_me: error: No C99 compiler was found." >&2;}
+- { (exit 1); exit 1; }; }
+-fi
++CC="$CC -std=c99"
+
+ if test "x$CC" != xcc; then
+ { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
+diff -ru rpm-5.1.9_vanilla/xz/configure.ac rpm-5.1.9_short-circuit-c99/xz/configure.ac
+--- rpm-5.1.9_vanilla/xz/configure.ac 2009-02-16 17:07:46.000000000 +0000
++++ rpm-5.1.9_short-circuit-c99/xz/configure.ac 2009-08-04 08:25:28.000000000 +0000
+@@ -402,10 +402,7 @@
+ AM_INIT_AUTOMAKE([1.10 foreign tar-v7 filename-length-max=99])
+ AC_PROG_LN_S
+
+-AC_PROG_CC_C99
+-if test x$ac_cv_prog_cc_c99 = xno ; then
+- AC_MSG_ERROR([No C99 compiler was found.])
+-fi
++CC="$CC -std=c99"
+
+ AM_PROG_CC_C_O
+ AM_PROG_AS
+++ /dev/null
-[PATCH] rpm: fix build on uClibc with !LFS
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- rpmio/fts.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-Index: rpm-5.2.0/rpmio/fts.c
-===================================================================
---- rpm-5.2.0.orig/rpmio/fts.c
-+++ rpm-5.2.0/rpmio/fts.c
-@@ -47,6 +47,10 @@ static char sccsid[] = "@(#)fts.c 8.6 (B
- #else
- #if defined(__UCLIBC__)
- # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
-+# include <features.h>
-+# ifndef __UCLIBC_HAS_LFS__
-+# define stat64 stat
-+# endif
- #endif
- #if defined(hpux) || defined(__hpux)
- # define _INCLUDE_POSIX_SOURCE
+++ /dev/null
-Bugfix included upstream
-
-diff -u --new-file --recursive rpm-5.2.0_vanilla/lib/depends.c rpm-5.2.0_depends-fix/lib/depends.c
---- rpm-5.2.0_vanilla/lib/depends.c 2009-05-23 01:23:46.000000000 +0000
-+++ rpm-5.2.0_depends-fix/lib/depends.c 2009-09-22 06:33:37.950783501 +0000
-@@ -2371,11 +2371,11 @@
-
- memset(selected, 0, sizeof(*selected) * ts->orderCount);
-
-- if ((requires = rpmteDS(p, RPMTAG_REQUIRENAME)) != NULL) {
--
- /* Avoid narcisstic relations. */
- selected[rpmtsiOc(pi)] = 1;
-
-+ if ((requires = rpmteDS(p, RPMTAG_REQUIRENAME)) != NULL) {
-+
- /* T2. Next "q <- p" relation. */
-
- /* First, do pre-requisites. */
+++ /dev/null
-diff -ru rpm-5.2.0_vanilla/tools/Makefile.am rpm-5.2.0_exclude-some-tools/tools/Makefile.am
---- rpm-5.2.0_vanilla/tools/Makefile.am 2009-06-03 01:24:42.000000000 +0000
-+++ rpm-5.2.0_exclude-some-tools/tools/Makefile.am 2009-12-20 07:47:13.000000000 +0000
-@@ -45,9 +45,7 @@
- bin_PROGRAMS = rpm2cpio
-
- pkgbindir = @USRLIBRPM@/bin
--pkgbin_PROGRAMS = \
-- rpmcache rpmdigest grep mtree rpmrepo rpmspecdump wget \
-- rpmcmp rpmdeps @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@
-+pkgbin_PROGRAMS =
- dist_man_MANS = rpmgrep.1
-
- debugedit_SOURCES = debugedit.c hashtab.c
-diff -ru rpm-5.2.0_vanilla/tools/Makefile.in rpm-5.2.0_exclude-some-tools/tools/Makefile.in
---- rpm-5.2.0_vanilla/tools/Makefile.in 2009-07-07 21:14:06.000000000 +0000
-+++ rpm-5.2.0_exclude-some-tools/tools/Makefile.in 2009-12-20 07:47:37.000000000 +0000
-@@ -39,11 +39,7 @@
- target_triplet = @target@
- EXTRA_PROGRAMS = rpmkey$(EXEEXT) debugedit$(EXEEXT)
- bin_PROGRAMS = rpm2cpio$(EXEEXT)
--pkgbin_PROGRAMS = rpmcache$(EXEEXT) rpmdigest$(EXEEXT) grep$(EXEEXT) \
-- mtree$(EXEEXT) rpmrepo$(EXEEXT) rpmspecdump$(EXEEXT) \
-- wget$(EXEEXT) rpmcmp$(EXEEXT) rpmdeps$(EXEEXT) \
-- @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@ $(am__EXEEXT_1) \
-- $(am__EXEEXT_2)
-+pkgbin_PROGRAMS =
- @WITH_XAR_TRUE@am__append_1 = txar
- @WITH_DB_INTERNAL_TRUE@@WITH_DB_TOOLS_INTEGRATED_TRUE@am__append_2 = db_tool
- @WITH_DB_INTERNAL_TRUE@@WITH_DB_RPC_TRUE@@WITH_DB_TOOLS_INTEGRATED_TRUE@am__append_3 = \
+++ /dev/null
-diff -ru rpm-5.2.0_vanilla/db/env/env_open.c rpm-5.2.0_test/db/env/env_open.c
---- rpm-5.2.0_vanilla/db/env/env_open.c 2008-05-28 01:23:27.000000000 +0000
-+++ rpm-5.2.0_test/db/env/env_open.c 2009-12-24 14:54:55.000000000 +0000
-@@ -124,7 +124,7 @@
- }
- }
-
--#ifdef HAVE_MUTEX_THREAD_ONLY
-+#ifdef NK_HAVE_MUTEX_THREAD_ONLY
- /*
- * Currently we support one kind of mutex that is intra-process only,
- * POSIX 1003.1 pthreads, because a variety of systems don't support
+++ /dev/null
-Reduce parentdirs we use, parentdirs are used for ordering
-Included upstream
-diff -u --new-file --recursive rpm-5.1.9_vanilla/lib/depends.c rpm-5.1.9_no-parentdirs/lib/depends.c
---- rpm-5.1.9_vanilla/lib/depends.c 2009-04-12 19:46:17.000000000 +0000
-+++ rpm-5.1.9_no-parentdirs/lib/depends.c 2009-06-13 15:21:43.504999639 +0000
-@@ -2257,7 +2257,7 @@
- #define isAuto(_x) ((_x) & _autobits)
-
- /*@unchecked@*/
--static int slashDepth = 100; /* #slashes pemitted in parentdir deps. */
-+static int slashDepth = 2; /* #slashes pemitted in parentdir deps. */
-
- static int countSlashes(const char * dn)
- /*@*/
+++ /dev/null
-Included upstream
---- x/lib/depends.c 2009/05/15 13:40:58 1.445
-+++ y/lib/depends.c 2009/08/22 22:12:02 1.446
-@@ -2216,9 +2216,6 @@
- {
- rpmte q, qprev;
-
-- /* Mark the package as queued. */
-- rpmteTSI(p)->tsi_queued = 1;
--
- if ((*rp) == NULL) { /* 1st element */
- /*@-dependenttrans@*/ /* FIX: double indirection */
- (*rp) = (*qp) = p;
-@@ -2238,6 +2235,12 @@
- /* XXX Insure removed after added. */
- if (rpmteType(p) == TR_REMOVED && rpmteType(p) != rpmteType(q))
- continue;
-+
-+ /* XXX Follow all previous generations in the queue. */
-+ if (rpmteTSI(p)->tsi_queued > rpmteTSI(q)->tsi_queued)
-+ continue;
-+
-+ /* XXX Within a generation, queue behind more "important". */
- if (rpmteTSI(q)->tsi_qcnt <= rpmteTSI(p)->tsi_qcnt)
- break;
- }
-@@ -2521,6 +2524,9 @@
-
- if (rpmteTSI(p)->tsi_count != 0)
- continue;
-+
-+ /* Mark the package as queued. */
-+ rpmteTSI(p)->tsi_queued = orderingCount + 1;
- rpmteTSI(p)->tsi_suc = NULL;
- addQ(p, &q, &r, prefcolor);
- qlen++;
-@@ -2584,6 +2590,8 @@
- (void) rpmteSetParent(p, q);
- (void) rpmteSetDegree(q, rpmteDegree(q)+1);
-
-+ /* Mark the package as queued. */
-+ rpmteTSI(p)->tsi_queued = orderingCount + 1;
- /* XXX TODO: add control bit. */
- rpmteTSI(p)->tsi_suc = NULL;
- /*@-nullstate@*/ /* XXX FIX: rpmteTSI(q)->tsi_suc can be NULL. */
+++ /dev/null
-Avoid looking up files or directories that this package provides
-Included upstream
-diff -u --new-file --recursive rpm-5.2.0_vanilla/lib/depends.c rpm-5.2.0_parentdir-vs-requires/lib/depends.c
---- rpm-5.2.0_vanilla/lib/depends.c 2009-05-23 01:23:46.000000000 +0000
-+++ rpm-5.2.0_parentdir-vs-requires/lib/depends.c 2009-09-22 17:00:24.880956271 +0000
-@@ -2095,6 +2095,7 @@
- rpmtsi qi; rpmte q;
- tsortInfo tsi;
- nsType NSType = rpmdsNSType(requires);
-+ const char * N = rpmdsN(requires);
- fnpyKey key;
- int teType = rpmteType(p);
- alKey pkgKey;
-@@ -2128,6 +2129,23 @@
- break;
- }
-
-+ /* Avoid looking up files/directories that are "owned" by _THIS_ package. */
-+ if (*N == '/') {
-+ rpmfi fi = rpmteFI(p, RPMTAG_BASENAMES);
-+ int bingo = 0;
-+
-+ fi = rpmfiInit(fi, 0);
-+ while (rpmfiNext(fi) >= 0) {
-+ const char * fn = rpmfiFN(fi);
-+ if (strcmp(N, fn))
-+ continue;
-+ bingo = 1;
-+ break;
-+ }
-+ if (bingo)
-+ return 0;
-+ }
-+
- pkgKey = RPMAL_NOMATCH;
- key = rpmalSatisfiesDepend(al, requires, &pkgKey);
-
+++ /dev/null
-Buildroot specific
-diff -ru rpm-5.1.9_vanilla/xz/configure rpm-5.1.9_short-circuit-c99/xz/configure
---- rpm-5.1.9_vanilla/xz/configure 2009-04-18 16:47:23.000000000 +0000
-+++ rpm-5.1.9_short-circuit-c99/xz/configure 2009-08-04 08:25:59.000000000 +0000
-@@ -4970,214 +4970,7 @@
- am__fastdepCC_FALSE=
- fi
-
--
-- { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5
--$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
--if test "${ac_cv_prog_cc_c99+set}" = set; then
-- $as_echo_n "(cached) " >&6
--else
-- ac_cv_prog_cc_c99=no
--ac_save_CC=$CC
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--#include <stdarg.h>
--#include <stdbool.h>
--#include <stdlib.h>
--#include <wchar.h>
--#include <stdio.h>
--
--// Check varargs macros. These examples are taken from C99 6.10.3.5.
--#define debug(...) fprintf (stderr, __VA_ARGS__)
--#define showlist(...) puts (#__VA_ARGS__)
--#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
--static void
--test_varargs_macros (void)
--{
-- int x = 1234;
-- int y = 5678;
-- debug ("Flag");
-- debug ("X = %d\n", x);
-- showlist (The first, second, and third items.);
-- report (x>y, "x is %d but y is %d", x, y);
--}
--
--// Check long long types.
--#define BIG64 18446744073709551615ull
--#define BIG32 4294967295ul
--#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
--#if !BIG_OK
-- your preprocessor is broken;
--#endif
--#if BIG_OK
--#else
-- your preprocessor is broken;
--#endif
--static long long int bignum = -9223372036854775807LL;
--static unsigned long long int ubignum = BIG64;
--
--struct incomplete_array
--{
-- int datasize;
-- double data[];
--};
--
--struct named_init {
-- int number;
-- const wchar_t *name;
-- double average;
--};
--
--typedef const char *ccp;
--
--static inline int
--test_restrict (ccp restrict text)
--{
-- // See if C++-style comments work.
-- // Iterate through items via the restricted pointer.
-- // Also check for declarations in for loops.
-- for (unsigned int i = 0; *(text+i) != '\0'; ++i)
-- continue;
-- return 0;
--}
--
--// Check varargs and va_copy.
--static void
--test_varargs (const char *format, ...)
--{
-- va_list args;
-- va_start (args, format);
-- va_list args_copy;
-- va_copy (args_copy, args);
--
-- const char *str;
-- int number;
-- float fnumber;
--
-- while (*format)
-- {
-- switch (*format++)
-- {
-- case 's': // string
-- str = va_arg (args_copy, const char *);
-- break;
-- case 'd': // int
-- number = va_arg (args_copy, int);
-- break;
-- case 'f': // float
-- fnumber = va_arg (args_copy, double);
-- break;
-- default:
-- break;
-- }
-- }
-- va_end (args_copy);
-- va_end (args);
--}
--
--int
--main ()
--{
--
-- // Check bool.
-- _Bool success = false;
--
-- // Check restrict.
-- if (test_restrict ("String literal") == 0)
-- success = true;
-- char *restrict newvar = "Another string";
--
-- // Check varargs.
-- test_varargs ("s, d' f .", "string", 65, 34.234);
-- test_varargs_macros ();
--
-- // Check flexible array members.
-- struct incomplete_array *ia =
-- malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
-- ia->datasize = 10;
-- for (int i = 0; i < ia->datasize; ++i)
-- ia->data[i] = i * 1.234;
--
-- // Check named initializers.
-- struct named_init ni = {
-- .number = 34,
-- .name = L"Test wide string",
-- .average = 543.34343,
-- };
--
-- ni.number = 58;
--
-- int dynamic_array[ni.number];
-- dynamic_array[ni.number - 1] = 543;
--
-- // work around unused variable warnings
-- return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
-- || dynamic_array[ni.number - 1] != 543);
--
-- ;
-- return 0;
--}
--_ACEOF
--for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
--do
-- CC="$ac_save_CC $ac_arg"
-- rm -f conftest.$ac_objext
--if { (ac_try="$ac_compile"
--case "(($ac_try" in
-- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-- *) ac_try_echo=$ac_try;;
--esac
--eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
--$as_echo "$ac_try_echo") >&5
-- (eval "$ac_compile") 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } && {
-- test -z "$ac_c_werror_flag" ||
-- test ! -s conftest.err
-- } && test -s conftest.$ac_objext; then
-- ac_cv_prog_cc_c99=$ac_arg
--else
-- $as_echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--
--fi
--
--rm -f core conftest.err conftest.$ac_objext
-- test "x$ac_cv_prog_cc_c99" != "xno" && break
--done
--rm -f conftest.$ac_ext
--CC=$ac_save_CC
--
--fi
--# AC_CACHE_VAL
--case "x$ac_cv_prog_cc_c99" in
-- x)
-- { $as_echo "$as_me:$LINENO: result: none needed" >&5
--$as_echo "none needed" >&6; } ;;
-- xno)
-- { $as_echo "$as_me:$LINENO: result: unsupported" >&5
--$as_echo "unsupported" >&6; } ;;
-- *)
-- CC="$CC $ac_cv_prog_cc_c99"
-- { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5
--$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
--esac
--
--
--
--if test x$ac_cv_prog_cc_c99 = xno ; then
-- { { $as_echo "$as_me:$LINENO: error: No C99 compiler was found." >&5
--$as_echo "$as_me: error: No C99 compiler was found." >&2;}
-- { (exit 1); exit 1; }; }
--fi
-+CC="$CC -std=c99"
-
- if test "x$CC" != xcc; then
- { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
-diff -ru rpm-5.1.9_vanilla/xz/configure.ac rpm-5.1.9_short-circuit-c99/xz/configure.ac
---- rpm-5.1.9_vanilla/xz/configure.ac 2009-02-16 17:07:46.000000000 +0000
-+++ rpm-5.1.9_short-circuit-c99/xz/configure.ac 2009-08-04 08:25:28.000000000 +0000
-@@ -402,10 +402,7 @@
- AM_INIT_AUTOMAKE([1.10 foreign tar-v7 filename-length-max=99])
- AC_PROG_LN_S
-
--AC_PROG_CC_C99
--if test x$ac_cv_prog_cc_c99 = xno ; then
-- AC_MSG_ERROR([No C99 compiler was found.])
--fi
-+CC="$CC -std=c99"
-
- AM_PROG_CC_C_O
- AM_PROG_AS
--- /dev/null
+Make it compatible with newer autoconf/automake.
+Patch from OpenWRT.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+--- a/bindings/tcl/Makefile.am
++++ b/bindings/tcl/Makefile.am
+@@ -26,8 +26,8 @@ tclpkgdir = @TCL_PACKAGE_DIR@
+ tclpkg_DATA = pkgIndex.tcl
+ tclpkg_SCRIPTS = ifOctets.tcl
+ else
+-pkglib_DATA = pkgIndex.tcl
+-pkglib_SCRIPTS = ifOctets.tcl
++pkgdata_DATA = pkgIndex.tcl
++pkgdata_SCRIPTS = ifOctets.tcl
+ endif
+
+ # Automake doen't like `tclrrd$(VERSION)$(TCL_SHLIB_SUFFIX)' as
--- /dev/null
+[PATCH] configure.ac: don't hardcode include files search paths
+
+Breaks cross compilation if host has libart/freetype.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: rrdtool-1.2.30/configure.ac
+===================================================================
+--- rrdtool-1.2.30.orig/configure.ac
++++ rrdtool-1.2.30/configure.ac
+@@ -524,10 +524,10 @@
+
+ CORE_LIBS="$LIBS"
+
+-EX_CHECK_ALL(art_lgpl_2, art_vpath_add_point, libart_lgpl/libart.h, libart-2.0, 2.3.17, ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/, /usr/include/libart-2.0)
++EX_CHECK_ALL(art_lgpl_2, art_vpath_add_point, libart_lgpl/libart.h, libart-2.0, 2.3.17, ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/, "")
+ EX_CHECK_ALL(z, zlibVersion, zlib.h, zlib, 1.2.3, http://www.gzip.org/zlib/, "")
+ EX_CHECK_ALL(png, png_access_version_number, png.h, libpng, 1.2.10, http://prdownloads.sourceforge.net/libpng/, "")
+-EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype2, 2.1.10, http://prdownloads.sourceforge.net/freetype/, /usr/include/freetype2)
++EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype2, 2.1.10, http://prdownloads.sourceforge.net/freetype/, "")
+
+ if test "$EX_CHECK_ALL_ERR" = "YES"; then
+ AC_MSG_ERROR([Please fix the library issues listed above and try again.])
+++ /dev/null
-Make it compatible with newer autoconf/automake.
-Patch from OpenWRT.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
---- a/bindings/tcl/Makefile.am
-+++ b/bindings/tcl/Makefile.am
-@@ -26,8 +26,8 @@ tclpkgdir = @TCL_PACKAGE_DIR@
- tclpkg_DATA = pkgIndex.tcl
- tclpkg_SCRIPTS = ifOctets.tcl
- else
--pkglib_DATA = pkgIndex.tcl
--pkglib_SCRIPTS = ifOctets.tcl
-+pkgdata_DATA = pkgIndex.tcl
-+pkgdata_SCRIPTS = ifOctets.tcl
- endif
-
- # Automake doen't like `tclrrd$(VERSION)$(TCL_SHLIB_SUFFIX)' as
+++ /dev/null
-[PATCH] configure.ac: don't hardcode include files search paths
-
-Breaks cross compilation if host has libart/freetype.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: rrdtool-1.2.30/configure.ac
-===================================================================
---- rrdtool-1.2.30.orig/configure.ac
-+++ rrdtool-1.2.30/configure.ac
-@@ -524,10 +524,10 @@
-
- CORE_LIBS="$LIBS"
-
--EX_CHECK_ALL(art_lgpl_2, art_vpath_add_point, libart_lgpl/libart.h, libart-2.0, 2.3.17, ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/, /usr/include/libart-2.0)
-+EX_CHECK_ALL(art_lgpl_2, art_vpath_add_point, libart_lgpl/libart.h, libart-2.0, 2.3.17, ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/, "")
- EX_CHECK_ALL(z, zlibVersion, zlib.h, zlib, 1.2.3, http://www.gzip.org/zlib/, "")
- EX_CHECK_ALL(png, png_access_version_number, png.h, libpng, 1.2.10, http://prdownloads.sourceforge.net/libpng/, "")
--EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype2, 2.1.10, http://prdownloads.sourceforge.net/freetype/, /usr/include/freetype2)
-+EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype2, 2.1.10, http://prdownloads.sourceforge.net/freetype/, "")
-
- if test "$EX_CHECK_ALL_ERR" = "YES"; then
- AC_MSG_ERROR([Please fix the library issues listed above and try again.])
--- /dev/null
+Fix cross compilation, based on OpenWRT patch.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura rtorrent-0.9.2/configure.ac rtorrent-0.9.2-cross/configure.ac
+--- rtorrent-0.9.2/configure.ac 2012-04-20 03:55:30.000000000 -0300
++++ rtorrent-0.9.2-cross/configure.ac 2012-05-09 11:06:49.436474039 -0300
+@@ -4,7 +4,6 @@
+
+ AM_INIT_AUTOMAKE
+ AM_CONFIG_HEADER(config.h)
+-AM_PATH_CPPUNIT(1.9.6)
+
+ AC_PROG_CXX
+ AC_PROG_LIBTOOL
+diff -Nura rtorrent-0.9.2/scripts/common.m4 rtorrent-0.9.2-cross/scripts/common.m4
+--- rtorrent-0.9.2/scripts/common.m4 2012-03-13 09:10:49.000000000 -0300
++++ rtorrent-0.9.2-cross/scripts/common.m4 2012-05-09 11:05:56.620102678 -0300
+@@ -223,7 +223,7 @@
+ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
+ AC_MSG_CHECKING(for execinfo.h)
+
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
++ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <execinfo.h>
+ int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
+ ])],
+++ /dev/null
-Fix cross compilation, based on OpenWRT patch.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura rtorrent-0.9.2/configure.ac rtorrent-0.9.2-cross/configure.ac
---- rtorrent-0.9.2/configure.ac 2012-04-20 03:55:30.000000000 -0300
-+++ rtorrent-0.9.2-cross/configure.ac 2012-05-09 11:06:49.436474039 -0300
-@@ -4,7 +4,6 @@
-
- AM_INIT_AUTOMAKE
- AM_CONFIG_HEADER(config.h)
--AM_PATH_CPPUNIT(1.9.6)
-
- AC_PROG_CXX
- AC_PROG_LIBTOOL
-diff -Nura rtorrent-0.9.2/scripts/common.m4 rtorrent-0.9.2-cross/scripts/common.m4
---- rtorrent-0.9.2/scripts/common.m4 2012-03-13 09:10:49.000000000 -0300
-+++ rtorrent-0.9.2-cross/scripts/common.m4 2012-05-09 11:05:56.620102678 -0300
-@@ -223,7 +223,7 @@
- AC_DEFUN([TORRENT_CHECK_EXECINFO], [
- AC_MSG_CHECKING(for execinfo.h)
-
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
-+ AC_LINK_IFELSE([AC_LANG_SOURCE([
- #include <execinfo.h>
- int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
- ])],
--- /dev/null
+host2ip.c: disable NIS support when building with uClibc
+
+uClibc doesn't have NIS support, so simply disable the fallback.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ host2ip.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+Index: rtptools-1.20/host2ip.c
+===================================================================
+--- rtptools-1.20.orig/host2ip.c
++++ rtptools-1.20/host2ip.c
+@@ -3,7 +3,16 @@
+ #include <netdb.h> /* gethostbyname() */
+ #include <netinet/in.h> /* sockaddr_in */
+ #include <arpa/inet.h> /* inet_addr() */
++
++#include <features.h>
++#ifndef __UCLIBC__
++#define HAVE_YP
++#endif
++
++#ifdef HAVE_YP
+ #include <rpcsvc/ypclnt.h> /* YP */
++#endif
++
+ #include <string.h> /* strlen() added by Akira 12/27/01 */
+ #include "sysdep.h"
+
+@@ -28,6 +37,7 @@
+ else if ((hep = gethostbyname(host))) {
+ in = *(struct in_addr *)(hep->h_addr_list[0]);
+ }
++#ifdef HAVE_YP
+ /* As a last resort, try YP. */
+ else {
+ static char *domain = 0; /* YP domain */
+@@ -39,5 +49,6 @@
+ in.s_addr = inet_addr(value);
+ }
+ }
++#endif
+ return in;
+ } /* host2ip */
+++ /dev/null
-host2ip.c: disable NIS support when building with uClibc
-
-uClibc doesn't have NIS support, so simply disable the fallback.
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- host2ip.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-Index: rtptools-1.20/host2ip.c
-===================================================================
---- rtptools-1.20.orig/host2ip.c
-+++ rtptools-1.20/host2ip.c
-@@ -3,7 +3,16 @@
- #include <netdb.h> /* gethostbyname() */
- #include <netinet/in.h> /* sockaddr_in */
- #include <arpa/inet.h> /* inet_addr() */
-+
-+#include <features.h>
-+#ifndef __UCLIBC__
-+#define HAVE_YP
-+#endif
-+
-+#ifdef HAVE_YP
- #include <rpcsvc/ypclnt.h> /* YP */
-+#endif
-+
- #include <string.h> /* strlen() added by Akira 12/27/01 */
- #include "sysdep.h"
-
-@@ -28,6 +37,7 @@
- else if ((hep = gethostbyname(host))) {
- in = *(struct in_addr *)(hep->h_addr_list[0]);
- }
-+#ifdef HAVE_YP
- /* As a last resort, try YP. */
- else {
- static char *domain = 0; /* YP domain */
-@@ -39,5 +49,6 @@
- in.s_addr = inet_addr(value);
- }
- }
-+#endif
- return in;
- } /* host2ip */
--- /dev/null
+Use strstr() instead of index(), since index() is a legacy function
+and it may not be available in uClibc, depending on the configuration.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: rubix-1.0.5/cube.c
+===================================================================
+--- rubix-1.0.5.orig/cube.c 2010-02-14 14:19:05.000000000 +0100
++++ rubix-1.0.5/cube.c 2010-02-14 14:19:14.000000000 +0100
+@@ -257,7 +257,7 @@
+ if (i==-1) goto finish;
+ if (buffer[0]=='%') goto new_section;
+ buffer[0]=toupper(buffer[0]);
+- ptr = index(buffer, '=');
++ ptr = strstr(buffer, '=');
+ if (ptr) {
+ ++ptr;
+ while (isspace(*ptr)) ++ptr;
--- /dev/null
+diff -Nrup rubix-1.0.5/fillpoly.c rubix-1.0.5-avr32/fillpoly.c
+--- rubix-1.0.5/fillpoly.c 2003-10-12 15:41:43.000000000 -0400
++++ rubix-1.0.5-avr32/fillpoly.c 2008-02-29 12:39:51.000000000 -0500
+@@ -435,7 +435,7 @@ void fill_lines(device *d, int thecol)
+ );
+ #endif
+ }
+- } else if (d->depth==16) { /* here 16bpp */
++ } else if ((d->depth==16) | (d->depth==15)) { /* here 16bpp */
+ register int i;
+ #ifndef PC_ARCHI
+ register int j;
+diff -Nrup rubix-1.0.5/line.c rubix-1.0.5-avr32/line.c
+--- rubix-1.0.5/line.c 2003-10-12 14:15:19.000000000 -0400
++++ rubix-1.0.5-avr32/line.c 2008-02-29 12:39:51.000000000 -0500
+@@ -1317,7 +1317,7 @@ void drawline(device *d, line *l)
+ #endif
+ if (d->depth==8)
+ drawline8(d, l);
+- else if (d->depth==16)
++ else if ((d->depth==16) | (d->depth==15))
+ drawline16(d, l);
+ else if (d->depth==24)
+ drawline24(d, l);
+diff -Nrup rubix-1.0.5/Makefile rubix-1.0.5-avr32/Makefile
+--- rubix-1.0.5/Makefile 2003-12-04 14:27:58.000000000 -0500
++++ rubix-1.0.5-avr32/Makefile 2008-02-29 12:58:30.000000000 -0500
+@@ -11,21 +11,17 @@
+ # Customize to fit your needs (especially if it does not work for now).
+
+ LANGUAGE=ENGLISH
+-GAMESDIR=/usr/games
+
+ #architecture=-DPC_ARCHI
+
+ # For Solaris
+ #EXTRALIBS=-lsocket
+
+-CC=gcc
+ CFLAGS=-Wall -O3 -fomit-frame-pointer -ffast-math \
+ -DGAMESDIR="\"$(GAMESDIR)\"" \
+ -D$(LANGUAGE) $(architecture)
+
+ #CFLAGS=-Wall -g -ffast-math -Iplayer $(architecture)
+-XINC=-I/usr/X11R6/include
+-XLIB=-L/usr/X11R6/lib -lX11
+
+ #the following should not be changed.
+
+@@ -37,7 +33,7 @@ rubix : $(OBJ)
+
+ install :
+ mkdir -p $(GAMESDIR)
+- install -c -s rubix $(GAMESDIR)
++ install -c rubix $(GAMESDIR)
+
+ clean :
+ rm -f *.o *~ core *.bak *.dat gmon.out
+diff -Nrup rubix-1.0.5/screen.c rubix-1.0.5-avr32/screen.c
+--- rubix-1.0.5/screen.c 2004-04-26 04:26:05.000000000 -0400
++++ rubix-1.0.5-avr32/screen.c 2008-02-29 12:39:51.000000000 -0500
+@@ -80,11 +80,17 @@ void error_statement(SCREEN *s)
+
+ int reset_data_buffers(SCREEN *s)
+ {
++ int temp;
+
+ if (s->im)
+ XDestroyImage(s->im);
++ if (s->depth == 15) {
++ temp=16;
++ } else {
++ temp=s->depth;
++ }
+
+- s->buffer=(char *)malloc(((SCREEN_X+7)/8)*SCREEN_Y*s->depth);
++ s->buffer=(char *)malloc(((SCREEN_X+7)/8)*SCREEN_Y*temp);
+
+ if (!s->buffer) {
+ error_statement(s);
+@@ -106,7 +112,7 @@ int reset_data_buffers(SCREEN *s)
+ */
+ /* Sed - december 2003 - no it has to be 8 */
+ s->im=XCreateImage(s->d, DefaultVisual(s->d, DefaultScreen(s->d)),
+- s->depth==32?24:s->depth, ZPixmap,
++ s->depth, ZPixmap,
+ 0, s->buffer, SCREEN_X, SCREEN_Y, 8, 0);
+
+ if (!s->im) {
+@@ -139,8 +145,8 @@ int init_screen(SCREEN *s)
+
+ s->depth=DefaultDepth(s->d, DefaultScreen(s->d));
+
+- if (s->depth!=8 && s->depth!=16 && s->depth!=24) {
+- fprintf(stderr, "screen depth not supported (only 8, 16 and 24bpp (which means 32bpp too) handled\n");
++ if (s->depth!=8 && s->depth!=15 && s->depth!=16 && s->depth!=24) {
++ fprintf(stderr, "screen depth not supported (only 8, 15, 16 and 24bpp (which means 32bpp too) handled\n");
+ XCloseDisplay(s->d);
+ s->d=(Display *)0;
+ return -1;
+@@ -182,10 +188,10 @@ int init_screen(SCREEN *s)
+
+ /* let's create and map our window */
+ s->w=XCreateWindow(s->d, DefaultRootWindow(s->d), 0, 0,
+- SCREEN_X, SCREEN_Y, 3, s->depth==32?24:s->depth,
++ SCREEN_X, SCREEN_Y, 3, s->depth,
+ CopyFromParent, CopyFromParent, 0, NULL);
+ s->h=XCreateWindow(s->d, DefaultRootWindow(s->d), 0, 0,
+- HELP_X, HELP_Y, 3, s->depth==32?24:s->depth,
++ HELP_X, HELP_Y, 3, s->depth,
+ CopyFromParent, CopyFromParent, 0, NULL);
+
+ xch.res_name = "rubix";
+@@ -946,13 +952,18 @@ void close_screen(SCREEN *s)
+ void clear_screen(SCREEN *s)
+ {
+ /* fill s->im with pixel[10], avoid XPutPixel which is rather slow... */
+- int i, w, dw;
++ int i, w, dw, temp;
++ if (s->depth == 15) {
++ temp = 16;
++ } else {
++ temp = s->depth;
++ }
+ w = (SCREEN_X+7)/8;
+- dw = s->depth/8;
++ dw = temp/8;
+ XPutPixel(s->im, 0, 0, pixel[10]);
+ for (i=1; i<8*w; i++)
+ memcpy(s->buffer + i*dw, s->buffer, dw);
+- w = w * s->depth;
++ w = w * temp;
+ for (i=1; i<SCREEN_Y; i++)
+ memcpy(s->buffer + i*w, s->buffer, w);
+ }
+++ /dev/null
-Use strstr() instead of index(), since index() is a legacy function
-and it may not be available in uClibc, depending on the configuration.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: rubix-1.0.5/cube.c
-===================================================================
---- rubix-1.0.5.orig/cube.c 2010-02-14 14:19:05.000000000 +0100
-+++ rubix-1.0.5/cube.c 2010-02-14 14:19:14.000000000 +0100
-@@ -257,7 +257,7 @@
- if (i==-1) goto finish;
- if (buffer[0]=='%') goto new_section;
- buffer[0]=toupper(buffer[0]);
-- ptr = index(buffer, '=');
-+ ptr = strstr(buffer, '=');
- if (ptr) {
- ++ptr;
- while (isspace(*ptr)) ++ptr;
+++ /dev/null
-diff -Nrup rubix-1.0.5/fillpoly.c rubix-1.0.5-avr32/fillpoly.c
---- rubix-1.0.5/fillpoly.c 2003-10-12 15:41:43.000000000 -0400
-+++ rubix-1.0.5-avr32/fillpoly.c 2008-02-29 12:39:51.000000000 -0500
-@@ -435,7 +435,7 @@ void fill_lines(device *d, int thecol)
- );
- #endif
- }
-- } else if (d->depth==16) { /* here 16bpp */
-+ } else if ((d->depth==16) | (d->depth==15)) { /* here 16bpp */
- register int i;
- #ifndef PC_ARCHI
- register int j;
-diff -Nrup rubix-1.0.5/line.c rubix-1.0.5-avr32/line.c
---- rubix-1.0.5/line.c 2003-10-12 14:15:19.000000000 -0400
-+++ rubix-1.0.5-avr32/line.c 2008-02-29 12:39:51.000000000 -0500
-@@ -1317,7 +1317,7 @@ void drawline(device *d, line *l)
- #endif
- if (d->depth==8)
- drawline8(d, l);
-- else if (d->depth==16)
-+ else if ((d->depth==16) | (d->depth==15))
- drawline16(d, l);
- else if (d->depth==24)
- drawline24(d, l);
-diff -Nrup rubix-1.0.5/Makefile rubix-1.0.5-avr32/Makefile
---- rubix-1.0.5/Makefile 2003-12-04 14:27:58.000000000 -0500
-+++ rubix-1.0.5-avr32/Makefile 2008-02-29 12:58:30.000000000 -0500
-@@ -11,21 +11,17 @@
- # Customize to fit your needs (especially if it does not work for now).
-
- LANGUAGE=ENGLISH
--GAMESDIR=/usr/games
-
- #architecture=-DPC_ARCHI
-
- # For Solaris
- #EXTRALIBS=-lsocket
-
--CC=gcc
- CFLAGS=-Wall -O3 -fomit-frame-pointer -ffast-math \
- -DGAMESDIR="\"$(GAMESDIR)\"" \
- -D$(LANGUAGE) $(architecture)
-
- #CFLAGS=-Wall -g -ffast-math -Iplayer $(architecture)
--XINC=-I/usr/X11R6/include
--XLIB=-L/usr/X11R6/lib -lX11
-
- #the following should not be changed.
-
-@@ -37,7 +33,7 @@ rubix : $(OBJ)
-
- install :
- mkdir -p $(GAMESDIR)
-- install -c -s rubix $(GAMESDIR)
-+ install -c rubix $(GAMESDIR)
-
- clean :
- rm -f *.o *~ core *.bak *.dat gmon.out
-diff -Nrup rubix-1.0.5/screen.c rubix-1.0.5-avr32/screen.c
---- rubix-1.0.5/screen.c 2004-04-26 04:26:05.000000000 -0400
-+++ rubix-1.0.5-avr32/screen.c 2008-02-29 12:39:51.000000000 -0500
-@@ -80,11 +80,17 @@ void error_statement(SCREEN *s)
-
- int reset_data_buffers(SCREEN *s)
- {
-+ int temp;
-
- if (s->im)
- XDestroyImage(s->im);
-+ if (s->depth == 15) {
-+ temp=16;
-+ } else {
-+ temp=s->depth;
-+ }
-
-- s->buffer=(char *)malloc(((SCREEN_X+7)/8)*SCREEN_Y*s->depth);
-+ s->buffer=(char *)malloc(((SCREEN_X+7)/8)*SCREEN_Y*temp);
-
- if (!s->buffer) {
- error_statement(s);
-@@ -106,7 +112,7 @@ int reset_data_buffers(SCREEN *s)
- */
- /* Sed - december 2003 - no it has to be 8 */
- s->im=XCreateImage(s->d, DefaultVisual(s->d, DefaultScreen(s->d)),
-- s->depth==32?24:s->depth, ZPixmap,
-+ s->depth, ZPixmap,
- 0, s->buffer, SCREEN_X, SCREEN_Y, 8, 0);
-
- if (!s->im) {
-@@ -139,8 +145,8 @@ int init_screen(SCREEN *s)
-
- s->depth=DefaultDepth(s->d, DefaultScreen(s->d));
-
-- if (s->depth!=8 && s->depth!=16 && s->depth!=24) {
-- fprintf(stderr, "screen depth not supported (only 8, 16 and 24bpp (which means 32bpp too) handled\n");
-+ if (s->depth!=8 && s->depth!=15 && s->depth!=16 && s->depth!=24) {
-+ fprintf(stderr, "screen depth not supported (only 8, 15, 16 and 24bpp (which means 32bpp too) handled\n");
- XCloseDisplay(s->d);
- s->d=(Display *)0;
- return -1;
-@@ -182,10 +188,10 @@ int init_screen(SCREEN *s)
-
- /* let's create and map our window */
- s->w=XCreateWindow(s->d, DefaultRootWindow(s->d), 0, 0,
-- SCREEN_X, SCREEN_Y, 3, s->depth==32?24:s->depth,
-+ SCREEN_X, SCREEN_Y, 3, s->depth,
- CopyFromParent, CopyFromParent, 0, NULL);
- s->h=XCreateWindow(s->d, DefaultRootWindow(s->d), 0, 0,
-- HELP_X, HELP_Y, 3, s->depth==32?24:s->depth,
-+ HELP_X, HELP_Y, 3, s->depth,
- CopyFromParent, CopyFromParent, 0, NULL);
-
- xch.res_name = "rubix";
-@@ -946,13 +952,18 @@ void close_screen(SCREEN *s)
- void clear_screen(SCREEN *s)
- {
- /* fill s->im with pixel[10], avoid XPutPixel which is rather slow... */
-- int i, w, dw;
-+ int i, w, dw, temp;
-+ if (s->depth == 15) {
-+ temp = 16;
-+ } else {
-+ temp = s->depth;
-+ }
- w = (SCREEN_X+7)/8;
-- dw = s->depth/8;
-+ dw = temp/8;
- XPutPixel(s->im, 0, 0, pixel[10]);
- for (i=1; i<8*w; i++)
- memcpy(s->buffer + i*dw, s->buffer, dw);
-- w = w * s->depth;
-+ w = w * temp;
- for (i=1; i<SCREEN_Y; i++)
- memcpy(s->buffer + i*w, s->buffer, w);
- }
--- /dev/null
+Expliticly link with -lpthread if smbd is compiled with
+avahi support. Otherwise the binary will fail to run.
+
+Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
+
+diff -Nura samba-3.6.16.orig/source3/Makefile.in samba-3.6.16/source3/Makefile.in
+--- samba-3.6.16.orig/source3/Makefile.in 2013-06-21 08:12:39.995871935 -0300
++++ samba-3.6.16/source3/Makefile.in 2013-06-21 08:13:17.778103805 -0300
+@@ -1783,7 +1783,7 @@
+ $(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
+ $(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \
+ $(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) \
+- $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
++ $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS) $(PTHREAD_LDFLAGS)
+
+ bin/nmbd@EXEEXT@: $(BINARY_PREREQS) $(NMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
+ @echo Linking $@
--- /dev/null
+Patch forward-ported from OpenWRT.
+Don't check for buggy getaddrinfo() assume it's safe if it's present.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura samba-3.6.8.orig/source3/configure samba-3.6.8/source3/configure
+--- samba-3.6.8.orig/source3/configure 2012-09-14 05:19:52.000000000 -0300
++++ samba-3.6.8/source3/configure 2012-09-25 20:31:57.861743235 -0300
+@@ -13269,10 +13269,7 @@
+ # see bug 5910, use our replacements if we detect
+ # a broken system.
+ if test "$cross_compiling" = yes; then :
+- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
+-See \`config.log' for more details" "$LINENO" 5; }
++ $as_echo "assuming valid getaddrinfo without bug 5910" >&2
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+++ /dev/null
-Expliticly link with -lpthread if smbd is compiled with
-avahi support. Otherwise the binary will fail to run.
-
-Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
-
-diff -Nura samba-3.6.16.orig/source3/Makefile.in samba-3.6.16/source3/Makefile.in
---- samba-3.6.16.orig/source3/Makefile.in 2013-06-21 08:12:39.995871935 -0300
-+++ samba-3.6.16/source3/Makefile.in 2013-06-21 08:13:17.778103805 -0300
-@@ -1783,7 +1783,7 @@
- $(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
- $(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \
- $(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) \
-- $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
-+ $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS) $(PTHREAD_LDFLAGS)
-
- bin/nmbd@EXEEXT@: $(BINARY_PREREQS) $(NMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT)
- @echo Linking $@
+++ /dev/null
-Patch forward-ported from OpenWRT.
-Don't check for buggy getaddrinfo() assume it's safe if it's present.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura samba-3.6.8.orig/source3/configure samba-3.6.8/source3/configure
---- samba-3.6.8.orig/source3/configure 2012-09-14 05:19:52.000000000 -0300
-+++ samba-3.6.8/source3/configure 2012-09-25 20:31:57.861743235 -0300
-@@ -13269,10 +13269,7 @@
- # see bug 5910, use our replacements if we detect
- # a broken system.
- if test "$cross_compiling" = yes; then :
-- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
-+ $as_echo "assuming valid getaddrinfo without bug 5910" >&2
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
--- /dev/null
+sawman: Link using gcc instead of ld
+
+Using ld may cause a link failure due to using the default emulation
+linker which is configured when building the linker in binutils. Using
+gcc instead will pass the appropriate -m value because the compiler
+knows the ABI you are using.
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+--- SaWMan-1.6.3/rules/libobject.make.orig 2013-12-17 15:54:22.137856874 +0000
++++ SaWMan-1.6.3/rules/libobject.make 2013-12-17 15:54:44.233201909 +0000
+@@ -3,7 +3,7 @@
+ if test -d $<.tmp; then rmdir $<.tmp; fi
+ mkdir $<.tmp
+ (cd $<.tmp && $(AR) x ../../$<)
+- $(LD) -o $@ -r $<.tmp/*.o
++ $(CC) -nostdlib -o $@ -r $<.tmp/*.o
+ rm -f $<.tmp/*.o && rmdir $<.tmp
+
+ .PHONY: $(LTLIBRARIES:%.la=.libs/%.a)
+++ /dev/null
-sawman: Link using gcc instead of ld
-
-Using ld may cause a link failure due to using the default emulation
-linker which is configured when building the linker in binutils. Using
-gcc instead will pass the appropriate -m value because the compiler
-knows the ABI you are using.
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---- SaWMan-1.6.3/rules/libobject.make.orig 2013-12-17 15:54:22.137856874 +0000
-+++ SaWMan-1.6.3/rules/libobject.make 2013-12-17 15:54:44.233201909 +0000
-@@ -3,7 +3,7 @@
- if test -d $<.tmp; then rmdir $<.tmp; fi
- mkdir $<.tmp
- (cd $<.tmp && $(AR) x ../../$<)
-- $(LD) -o $@ -r $<.tmp/*.o
-+ $(CC) -nostdlib -o $@ -r $<.tmp/*.o
- rm -f $<.tmp/*.o && rmdir $<.tmp
-
- .PHONY: $(LTLIBRARIES:%.la=.libs/%.a)
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Sat, 13 Sep 2014 10:27:27 +0200
+Subject: Removed redundant compiler sanity checks
+
+AC_PROG_CC already performs sanity checks. And unlike the removed
+checks, it does so in a way that supports cross compilation.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ configure.in | 27 ---------------------------
+ 1 file changed, 27 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 87fd43b..572c2a3 100644
+--- a/configure.in
++++ b/configure.in
+@@ -47,31 +47,6 @@ AC_PROG_GCC_TRADITIONAL
+ AC_ISC_POSIX
+ AC_USE_SYSTEM_EXTENSIONS
+
+-AC_TRY_RUN(main(){exit(0);},,[
+-if test $CC != cc ; then
+-AC_NOTE(Your $CC failed - restarting with CC=cc)
+-AC_NOTE()
+-CC=cc
+-export CC
+-exec $0 $configure_args
+-fi
+-])
+-
+-AC_TRY_RUN(main(){exit(0);},,
+-exec 5>&2
+-eval $ac_link
+-AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;)
+-AC_NOTE($ac_compile)
+-AC_MSG_ERROR(Can't run the compiler - sorry))
+-
+-AC_TRY_RUN([
+-main()
+-{
+- int __something_strange_();
+- __something_strange_(0);
+-}
+-],AC_MSG_ERROR(Your compiler does not set the exit status - sorry))
+-
+ AC_PROG_AWK
+
+ AC_PROG_INSTALL
+@@ -1299,8 +1274,6 @@ fi
+ dnl Ptx bug workaround -- insert -lc after -ltermcap
+ test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq"
+
+-AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.))
+-
+ ETCSCREENRC=
+ AC_MSG_CHECKING(for the global screenrc file)
+ AC_ARG_WITH(sys-screenrc, [ --with-sys-screenrc=path to the global screenrc file], [ ETCSCREENRC="${withval}" ])
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Sat, 13 Sep 2014 11:37:59 +0200
+Subject: Do not use memcpy as an alternative for bcopy/memmove
+
+The configure script runs a small test program to check whether
+memcpy can handle overlapping memory areas. However, it is not valid
+to conclude that if a single case of overlapping memory is handled
+correctly, all cases will be handled correctly.
+
+Since screen already has its own bcopy implementation as a fallback
+for the case that bcopy and memmove are unusable, removing the memcpy
+option should not break any systems.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ acconfig.h | 3 +--
+ configure.in | 18 +-----------------
+ os.h | 8 ++------
+ osdef.h.in | 10 +---------
+ 4 files changed, 5 insertions(+), 34 deletions(-)
+
+diff --git a/acconfig.h b/acconfig.h
+index 2e46985..9b0b9d4 100644
+--- a/acconfig.h
++++ b/acconfig.h
+@@ -476,7 +476,7 @@
+ #undef GETTTYENT
+
+ /*
+- * Define USEBCOPY if the bcopy/memcpy from your system's C library
++ * Define USEBCOPY if the bcopy from your system's C library
+ * supports the overlapping of source and destination blocks. When
+ * undefined, screen uses its own (probably slower) version of bcopy().
+ *
+@@ -487,7 +487,6 @@
+ * Their memove fails the test in the configure script. Sigh. (Juergen)
+ */
+ #undef USEBCOPY
+-#undef USEMEMCPY
+ #undef USEMEMMOVE
+
+ /*
+diff --git a/configure.in b/configure.in
+index 572c2a3..ff9606d 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1144,7 +1144,7 @@ AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
+ AC_CHECKING(fdwalk)
+ AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
+
+-AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
++AC_CHECKING(whether memmove/bcopy handles overlapping arguments)
+ AC_TRY_RUN([
+ main() {
+ char buf[10];
+@@ -1174,22 +1174,6 @@ main() {
+ exit(0); /* libc version works properly. */
+ }], AC_DEFINE(USEMEMMOVE))
+
+-
+-AC_TRY_RUN([
+-#define bcopy(s,d,l) memcpy(d,s,l)
+-main() {
+- char buf[10];
+- strcpy(buf, "abcdefghi");
+- bcopy(buf, buf + 2, 3);
+- if (strncmp(buf, "ababcf", 6))
+- exit(1);
+- strcpy(buf, "abcdefghi");
+- bcopy(buf + 2, buf, 3);
+- if (strncmp(buf, "cdedef", 6))
+- exit(1);
+- exit(0); /* libc version works properly. */
+-}], AC_DEFINE(USEMEMCPY))
+-
+ AC_SYS_LONG_FILE_NAMES
+
+ AC_MSG_CHECKING(for vsprintf)
+diff --git a/os.h b/os.h
+index 55de249..6838ec0 100644
+--- a/os.h
++++ b/os.h
+@@ -142,12 +142,8 @@ extern int errno;
+ # ifdef USEMEMMOVE
+ # define bcopy(s,d,len) memmove(d,s,len)
+ # else
+-# ifdef USEMEMCPY
+-# define bcopy(s,d,len) memcpy(d,s,len)
+-# else
+-# define NEED_OWN_BCOPY
+-# define bcopy xbcopy
+-# endif
++# define NEED_OWN_BCOPY
++# define bcopy xbcopy
+ # endif
+ #endif
+
+diff --git a/osdef.h.in b/osdef.h.in
+index 8687b60..e4057a0 100644
+--- a/osdef.h.in
++++ b/osdef.h.in
+@@ -58,16 +58,8 @@ extern int bcmp __P((char *, char *, int));
+ extern int killpg __P((int, int));
+ #endif
+
+-#ifndef USEBCOPY
+-# ifdef USEMEMCPY
+-extern void memcpy __P((char *, char *, int));
+-# else
+-# ifdef USEMEMMOVE
++#if defined(USEMEMMOVE) && !defined(USEBCOPY)
+ extern void memmove __P((char *, char *, int));
+-# else
+-extern void bcopy __P((char *, char *, int));
+-# endif
+-# endif
+ #else
+ extern void bcopy __P((char *, char *, int));
+ #endif
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Sat, 13 Sep 2014 12:04:41 +0200
+Subject: Provide cross compilation alternatives for all AC_TRY_RUN uses
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ configure.in | 30 +++++++++++++++++++-----------
+ 1 file changed, 19 insertions(+), 11 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index ff9606d..d53a079 100644
+--- a/configure.in
++++ b/configure.in
+@@ -347,7 +347,8 @@ main()
+ exit(0);
+ }
+ ], AC_NOTE(- your fifos are usable) fifo=1,
+-AC_NOTE(- your fifos are not usable))
++AC_NOTE(- your fifos are not usable),
++AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1)
+ rm -f /tmp/conftest*
+
+ if test -n "$fifo"; then
+@@ -395,7 +396,8 @@ main()
+ exit(0);
+ }
+ ], AC_NOTE(- your implementation is ok),
+-AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1)
++AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1,
++AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok))
+ rm -f /tmp/conftest*
+ fi
+
+@@ -457,7 +459,8 @@ main()
+ exit(0);
+ }
+ ], AC_NOTE(- your sockets are usable) sock=1,
+-AC_NOTE(- your sockets are not usable))
++AC_NOTE(- your sockets are not usable),
++AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1)
+ rm -f /tmp/conftest*
+
+ if test -n "$sock"; then
+@@ -496,7 +499,8 @@ main()
+ }
+ ],AC_NOTE(- you are normal),
+ AC_NOTE(- unix domain sockets are not kept in the filesystem)
+-AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1)
++AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1,
++AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal))
+ rm -f /tmp/conftest*
+ fi
+
+@@ -623,7 +627,8 @@ main()
+ exit(0);
+ }
+ ],AC_NOTE(- select is ok),
+-AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN))
++AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN),
++AC_NOTE(- skipping check because we are cross compiling; assuming select is ok))
+
+ dnl
+ dnl **** termcap or terminfo ****
+@@ -665,7 +670,8 @@ main()
+ {
+ exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
+ }], AC_NOTE(- you use the termcap database),
+-AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO))
++AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO),
++AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO))
+ AC_CHECKING(ospeed)
+ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
+
+@@ -800,7 +806,8 @@ main()
+ else
+ AC_NOTE(- can't determine - assume ptys are world accessable)
+ fi
+- ]
++ ],
++ AC_NOTE(- skipping check because we are cross compiling; assuming ptys are world accessable)
+ )
+ rm -f conftest_grp
+ fi
+@@ -884,7 +891,7 @@ AC_EGREP_CPP(yes,
+ #endif
+ ], load=1)
+ fi
+-if test -z "$load" ; then
++if test -z "$load" && test "$cross_compiling" = no ; then
+ AC_CHECKING(for kernelfile)
+ for core in /unix /vmunix /dynix /hp-ux /xelos /dev/ksyms /kernel/unix /kernel/genunix /unicos /mach /netbsd /386bsd /dgux /bsd /stand/vmunix; do
+ if test -f $core || test -c $core; then
+@@ -1077,7 +1084,7 @@ main()
+ #endif
+ exit(0);
+ }
+-],,AC_DEFINE(SYSVSIGS))
++],,AC_DEFINE(SYSVSIGS),:)
+
+ fi
+
+@@ -1157,7 +1164,7 @@ main() {
+ if (strncmp(buf, "cdedef", 6))
+ exit(1);
+ exit(0); /* libc version works properly. */
+-}], AC_DEFINE(USEBCOPY))
++}], AC_DEFINE(USEBCOPY),,:)
+
+ AC_TRY_RUN([
+ #define bcopy(s,d,l) memmove(d,s,l)
+@@ -1172,7 +1179,8 @@ main() {
+ if (strncmp(buf, "cdedef", 6))
+ exit(1);
+ exit(0); /* libc version works properly. */
+-}], AC_DEFINE(USEMEMMOVE))
++}], AC_DEFINE(USEMEMMOVE),,
++ AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE))
+
+ AC_SYS_LONG_FILE_NAMES
+
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Sun, 14 Sep 2014 07:10:59 +0200
+Subject: When cross-compiling, skip checks that look in the host file system
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ configure.in | 23 +++++++++++++++++++----
+ 1 file changed, 19 insertions(+), 4 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index d53a079..79aa56d 100644
+--- a/configure.in
++++ b/configure.in
+@@ -84,7 +84,7 @@ AC_ARG_ENABLE(socket-dir,
+ dnl
+ dnl **** special unix variants ****
+ dnl
+-if test -n "$ISC"; then
++if test "$cross_compiling" = no && test -n "$ISC" ; then
+ AC_DEFINE(ISC) LIBS="$LIBS -linet"
+ fi
+
+@@ -95,10 +95,11 @@ dnl AC_DEFINE(OSF1) # this disables MIPS again....
+ dnl fi
+ dnl fi
+
+-if test -f /sysV68 ; then
++if test "$cross_compiling" = no && test -f /sysV68 ; then
+ AC_DEFINE(sysV68)
+ fi
+
++if test "$cross_compiling" = no ; then
+ AC_CHECKING(for MIPS)
+ if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then
+ oldlibs="$LIBS"
+@@ -122,6 +123,7 @@ AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd"
+ ))
+ fi
+ fi
++fi
+
+
+ AC_CHECKING(for Ultrix)
+@@ -131,7 +133,7 @@ AC_EGREP_CPP(yes,
+ #endif
+ ], ULTRIX=1)
+
+-if test -f /usr/lib/libpyr.a ; then
++if test "$cross_compiling" = no && test -f /usr/lib/libpyr.a ; then
+ oldlibs="$LIBS"
+ LIBS="$LIBS -lpyr"
+ AC_CHECKING(Pyramid OSX)
+@@ -678,17 +680,21 @@ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
+ dnl
+ dnl **** PTY specific things ****
+ dnl
++if test "$cross_compiling" = no ; then
+ AC_CHECKING(for /dev/ptc)
+ if test -r /dev/ptc; then
+ AC_DEFINE(HAVE_DEV_PTC)
+ fi
++fi
+
++if test "$cross_compiling" = no ; then
+ AC_CHECKING(for SVR4 ptys)
+ sysvr4ptys=
+ if test -c /dev/ptmx ; then
+ AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
+ sysvr4ptys=1])
+ fi
++fi
+
+ AC_CHECK_FUNCS(getpt)
+
+@@ -698,6 +704,7 @@ AC_CHECK_FUNCS(openpty,,
+ [AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])])
+ fi
+
++if test "$cross_compiling" = no ; then
+ AC_CHECKING(for ptyranges)
+ if test -d /dev/ptym ; then
+ pdir='/dev/ptym'
+@@ -721,6 +728,7 @@ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\
+ AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
+ AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
+ fi
++fi
+
+ dnl **** pty mode/group handling ****
+ dnl
+@@ -868,14 +876,16 @@ fi
+ dnl
+ dnl **** loadav ****
+ dnl
++if test "$cross_compiling" = no ; then
+ AC_CHECKING(for libutil(s))
+ test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils"
+ test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
++fi
+
+ AC_CHECKING(getloadavg)
+ AC_TRY_LINK(,[getloadavg((double *)0, 0);],
+ AC_DEFINE(LOADAV_GETLOADAVG) load=1,
+-if test -f /usr/lib/libkvm.a ; then
++if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then
+ olibs="$LIBS"
+ LIBS="$LIBS -lkvm"
+ AC_CHECKING(getloadavg with -lkvm)
+@@ -1093,13 +1103,18 @@ dnl **** libraries ****
+ dnl
+
+ AC_CHECKING(for crypt and sec libraries)
++if test "$cross_compiling" = no ; then
+ test -f /lib/libcrypt_d.a || test -f /usr/lib/libcrypt_d.a && LIBS="$LIBS -lcrypt_d"
++fi
+ oldlibs="$LIBS"
+ LIBS="$LIBS -lcrypt"
+ AC_CHECKING(crypt)
+ AC_TRY_LINK(,,,LIBS="$oldlibs")
++if test "$cross_compiling" = no ; then
+ test -f /lib/libsec.a || test -f /usr/lib/libsec.a && LIBS="$LIBS -lsec"
+ test -f /lib/libshadow.a || test -f /usr/lib/libshadow.a && LIBS="$LIBS -lshadow"
++fi
++
+ oldlibs="$LIBS"
+ LIBS="$LIBS -lsun"
+ AC_CHECKING(IRIX sun library)
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Sun, 14 Sep 2014 11:16:58 +0200
+Subject: Avoid mis-identifying systems as SVR4
+
+My openSUSE 13.1 Linux system was detected as SVR4 because it had
+libelf installed. This leads to linking with libelf, even though no
+symbols from that library were actually used, and to a workaround for
+a buggy getlogin() being enabled.
+
+It is not documented which exact SVR4 system had the bug that the
+workaround was added for, so all I could do is make an educated guess
+at the #defines its compiler would be likely to set.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ configure.in | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index f78f81f..181b7f9 100644
+--- a/configure.in
++++ b/configure.in
+@@ -178,14 +178,24 @@ AC_EGREP_CPP(yes,
+ #endif
+ ], LIBS="$LIBS -lsocket -linet";seqptx=1)
+
++AC_CHECKING(SVR4)
++AC_EGREP_CPP(yes,
++[main () {
++#if defined(SVR4) || defined(__SVR4)
++ yes;
++#endif
++], AC_NOTE(- you have a SVR4 system) AC_DEFINE(SVR4) svr4=1)
++if test -n "$svr4" ; then
+ oldlibs="$LIBS"
+ LIBS="$LIBS -lelf"
+ AC_CHECKING(SVR4)
+ AC_TRY_LINK([#include <utmpx.h>
+ ],,
+-[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
+-[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])]
++[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(BUGGYGETLOGIN),
++[AC_CHECK_HEADER(elf.h, AC_DEFINE(BUGGYGETLOGIN))])]
+ ,LIBS="$oldlibs")
++fi
++
+ AC_CHECK_HEADERS([stropts.h string.h strings.h])
+
+ AC_CHECKING(for Solaris 2.x)
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Sun, 14 Sep 2014 23:58:34 +0200
+Subject: Do not create backup of old installed binary
+
+This is a rather unusual feature that packagers will not expect.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ Makefile.in | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 187a69b..65549e9 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -83,12 +83,9 @@ screen: $(OFILES)
+ $(OPTIONS) $(CFLAGS) $<
+
+ install_bin: .version screen
+- -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \
+- then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi
+ $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
+ -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
+ # This doesn't work if $(bindir)/screen is a symlink
+- -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi
+ rm -f $(DESTDIR)$(bindir)/screen
+ (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
+ cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
+@@ -113,7 +110,6 @@ installdirs:
+ uninstall: .version
+ rm -f $(DESTDIR)$(bindir)/$(SCREEN)
+ rm -f $(DESTDIR)$(bindir)/screen
+- -mv $(DESTDIR)$(bindir)/screen.old $(DESTDIR)$(bindir)/screen
+ rm -f $(DESTDIR)$(ETCSCREENRC)
+ cd doc; $(MAKE) uninstall
+
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Mon, 15 Sep 2014 00:03:05 +0200
+Subject: Change binary permission flags even if chown fails
+
+Typically when creating a package, the build is not run as root, so
+the chown will fail. But the chmod can still be done.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ Makefile.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 65549e9..3c12fdb 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -84,7 +84,8 @@ screen: $(OFILES)
+
+ install_bin: .version screen
+ $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
+- -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
++ -chown root $(DESTDIR)$(bindir)/$(SCREEN)
++ -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
+ # This doesn't work if $(bindir)/screen is a symlink
+ rm -f $(DESTDIR)$(bindir)/screen
+ (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Mon, 15 Sep 2014 00:06:20 +0200
+Subject: Support overriding SCREEN to get a non-versioned binary
+
+If a packager runs "make install SCREEN=screen", do not create
+"screen" as a symlink to itself.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ Makefile.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Makefile.in b/Makefile.in
+index 3c12fdb..860f351 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -86,9 +86,11 @@ install_bin: .version screen
+ $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
+ -chown root $(DESTDIR)$(bindir)/$(SCREEN)
+ -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
++ifneq (${SCREEN},screen)
+ # This doesn't work if $(bindir)/screen is a symlink
+ rm -f $(DESTDIR)$(bindir)/screen
+ (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
++endif
+ cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
+
+ ###############################################################################
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Mon, 15 Sep 2014 02:27:09 +0200
+Subject: Ensure that installation dirs exist before copying files into them
+
+Since the "install_bin" target requires the installation directories
+to exist, it should depend on the "installdirs" target. The previous
+approach of having "install" depend on "installdirs" is not reliable.
+
+For example, in a parallel build, there was no guarantee that
+"installdirs" would be finished before "install_bin" runs. Also if
+the user requested only "install_bin" to be made, "installdirs" would
+be skipped altogether.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 860f351..f0fe08d 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -82,7 +82,7 @@ screen: $(OFILES)
+ $(CC) -c -I. -I$(srcdir) $(M_CFLAGS) $(CPPFLAGS) $(DEFS) \
+ $(OPTIONS) $(CFLAGS) $<
+
+-install_bin: .version screen
++install_bin: .version screen installdirs
+ $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
+ -chown root $(DESTDIR)$(bindir)/$(SCREEN)
+ -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
+@@ -94,7 +94,7 @@ endif
+ cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
+
+ ###############################################################################
+-install: installdirs install_bin
++install: install_bin
+ cd doc ; $(MAKE) install
+ -if [ -d /usr/lib/terminfo ]; then \
+ PATH="$$PATH:/usr/5bin" tic ${srcdir}/terminfo/screeninfo.src; \
+--
+1.8.4.5
+
--- /dev/null
+From: Maarten ter Huurne <maarten@treewalker.org>
+Date: Mon, 15 Sep 2014 00:24:41 +0200
+Subject: Renamed sched.h to eventqueue.h
+
+There is a <sched.h> system header that got shadowed by "sched.h".
+While Screen itself doesn't include <sched.h>, other system headers
+might include it indirectly. This broke the build when using uClibc
+with pthread support.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+---
+ eventqueue.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
+ sched.h | 48 ------------------------------------------------
+ screen.h | 2 +-
+ 3 files changed, 49 insertions(+), 49 deletions(-)
+ create mode 100644 eventqueue.h
+ delete mode 100644 sched.h
+
+diff --git a/eventqueue.h b/eventqueue.h
+new file mode 100644
+index 0000000..fdc3fc4
+--- /dev/null
++++ b/eventqueue.h
+@@ -0,0 +1,48 @@
++/* Copyright (c) 2008, 2009
++ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
++ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
++ * Micah Cowan (micah@cowan.name)
++ * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
++ * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007
++ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
++ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
++ * Copyright (c) 1987 Oliver Laumann
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program (see the file COPYING); if not, see
++ * http://www.gnu.org/licenses/, or contact Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
++ *
++ ****************************************************************
++ * $Id$ GNU
++ */
++
++struct event
++{
++ struct event *next;
++ void (*handler) __P((struct event *, char *));
++ char *data;
++ int fd;
++ int type;
++ int pri;
++ struct timeval timeout;
++ int queued; /* in evs queue */
++ int active; /* in fdset */
++ int *condpos; /* only active if condpos - condneg > 0 */
++ int *condneg;
++};
++
++#define EV_TIMEOUT 0
++#define EV_READ 1
++#define EV_WRITE 2
++#define EV_ALWAYS 3
+diff --git a/sched.h b/sched.h
+deleted file mode 100644
+index fdc3fc4..0000000
+--- a/sched.h
++++ /dev/null
+@@ -1,48 +0,0 @@
+-/* Copyright (c) 2008, 2009
+- * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
+- * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
+- * Micah Cowan (micah@cowan.name)
+- * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
+- * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007
+- * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
+- * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
+- * Copyright (c) 1987 Oliver Laumann
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 3, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program (see the file COPYING); if not, see
+- * http://www.gnu.org/licenses/, or contact Free Software Foundation, Inc.,
+- * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+- *
+- ****************************************************************
+- * $Id$ GNU
+- */
+-
+-struct event
+-{
+- struct event *next;
+- void (*handler) __P((struct event *, char *));
+- char *data;
+- int fd;
+- int type;
+- int pri;
+- struct timeval timeout;
+- int queued; /* in evs queue */
+- int active; /* in fdset */
+- int *condpos; /* only active if condpos - condneg > 0 */
+- int *condneg;
+-};
+-
+-#define EV_TIMEOUT 0
+-#define EV_READ 1
+-#define EV_WRITE 2
+-#define EV_ALWAYS 3
+diff --git a/screen.h b/screen.h
+index 603ca3f..34238c8 100644
+--- a/screen.h
++++ b/screen.h
+@@ -43,7 +43,7 @@
+ #include "osdef.h"
+
+ #include "ansi.h"
+-#include "sched.h"
++#include "eventqueue.h"
+ #include "acls.h"
+ #include "comm.h"
+ #include "layer.h"
+--
+1.8.4.5
+
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Sat, 13 Sep 2014 10:27:27 +0200
-Subject: Removed redundant compiler sanity checks
-
-AC_PROG_CC already performs sanity checks. And unlike the removed
-checks, it does so in a way that supports cross compilation.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- configure.in | 27 ---------------------------
- 1 file changed, 27 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 87fd43b..572c2a3 100644
---- a/configure.in
-+++ b/configure.in
-@@ -47,31 +47,6 @@ AC_PROG_GCC_TRADITIONAL
- AC_ISC_POSIX
- AC_USE_SYSTEM_EXTENSIONS
-
--AC_TRY_RUN(main(){exit(0);},,[
--if test $CC != cc ; then
--AC_NOTE(Your $CC failed - restarting with CC=cc)
--AC_NOTE()
--CC=cc
--export CC
--exec $0 $configure_args
--fi
--])
--
--AC_TRY_RUN(main(){exit(0);},,
--exec 5>&2
--eval $ac_link
--AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;)
--AC_NOTE($ac_compile)
--AC_MSG_ERROR(Can't run the compiler - sorry))
--
--AC_TRY_RUN([
--main()
--{
-- int __something_strange_();
-- __something_strange_(0);
--}
--],AC_MSG_ERROR(Your compiler does not set the exit status - sorry))
--
- AC_PROG_AWK
-
- AC_PROG_INSTALL
-@@ -1299,8 +1274,6 @@ fi
- dnl Ptx bug workaround -- insert -lc after -ltermcap
- test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq"
-
--AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.))
--
- ETCSCREENRC=
- AC_MSG_CHECKING(for the global screenrc file)
- AC_ARG_WITH(sys-screenrc, [ --with-sys-screenrc=path to the global screenrc file], [ ETCSCREENRC="${withval}" ])
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Sat, 13 Sep 2014 11:37:59 +0200
-Subject: Do not use memcpy as an alternative for bcopy/memmove
-
-The configure script runs a small test program to check whether
-memcpy can handle overlapping memory areas. However, it is not valid
-to conclude that if a single case of overlapping memory is handled
-correctly, all cases will be handled correctly.
-
-Since screen already has its own bcopy implementation as a fallback
-for the case that bcopy and memmove are unusable, removing the memcpy
-option should not break any systems.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- acconfig.h | 3 +--
- configure.in | 18 +-----------------
- os.h | 8 ++------
- osdef.h.in | 10 +---------
- 4 files changed, 5 insertions(+), 34 deletions(-)
-
-diff --git a/acconfig.h b/acconfig.h
-index 2e46985..9b0b9d4 100644
---- a/acconfig.h
-+++ b/acconfig.h
-@@ -476,7 +476,7 @@
- #undef GETTTYENT
-
- /*
-- * Define USEBCOPY if the bcopy/memcpy from your system's C library
-+ * Define USEBCOPY if the bcopy from your system's C library
- * supports the overlapping of source and destination blocks. When
- * undefined, screen uses its own (probably slower) version of bcopy().
- *
-@@ -487,7 +487,6 @@
- * Their memove fails the test in the configure script. Sigh. (Juergen)
- */
- #undef USEBCOPY
--#undef USEMEMCPY
- #undef USEMEMMOVE
-
- /*
-diff --git a/configure.in b/configure.in
-index 572c2a3..ff9606d 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1144,7 +1144,7 @@ AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
- AC_CHECKING(fdwalk)
- AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
-
--AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
-+AC_CHECKING(whether memmove/bcopy handles overlapping arguments)
- AC_TRY_RUN([
- main() {
- char buf[10];
-@@ -1174,22 +1174,6 @@ main() {
- exit(0); /* libc version works properly. */
- }], AC_DEFINE(USEMEMMOVE))
-
--
--AC_TRY_RUN([
--#define bcopy(s,d,l) memcpy(d,s,l)
--main() {
-- char buf[10];
-- strcpy(buf, "abcdefghi");
-- bcopy(buf, buf + 2, 3);
-- if (strncmp(buf, "ababcf", 6))
-- exit(1);
-- strcpy(buf, "abcdefghi");
-- bcopy(buf + 2, buf, 3);
-- if (strncmp(buf, "cdedef", 6))
-- exit(1);
-- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEMEMCPY))
--
- AC_SYS_LONG_FILE_NAMES
-
- AC_MSG_CHECKING(for vsprintf)
-diff --git a/os.h b/os.h
-index 55de249..6838ec0 100644
---- a/os.h
-+++ b/os.h
-@@ -142,12 +142,8 @@ extern int errno;
- # ifdef USEMEMMOVE
- # define bcopy(s,d,len) memmove(d,s,len)
- # else
--# ifdef USEMEMCPY
--# define bcopy(s,d,len) memcpy(d,s,len)
--# else
--# define NEED_OWN_BCOPY
--# define bcopy xbcopy
--# endif
-+# define NEED_OWN_BCOPY
-+# define bcopy xbcopy
- # endif
- #endif
-
-diff --git a/osdef.h.in b/osdef.h.in
-index 8687b60..e4057a0 100644
---- a/osdef.h.in
-+++ b/osdef.h.in
-@@ -58,16 +58,8 @@ extern int bcmp __P((char *, char *, int));
- extern int killpg __P((int, int));
- #endif
-
--#ifndef USEBCOPY
--# ifdef USEMEMCPY
--extern void memcpy __P((char *, char *, int));
--# else
--# ifdef USEMEMMOVE
-+#if defined(USEMEMMOVE) && !defined(USEBCOPY)
- extern void memmove __P((char *, char *, int));
--# else
--extern void bcopy __P((char *, char *, int));
--# endif
--# endif
- #else
- extern void bcopy __P((char *, char *, int));
- #endif
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Sat, 13 Sep 2014 12:04:41 +0200
-Subject: Provide cross compilation alternatives for all AC_TRY_RUN uses
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- configure.in | 30 +++++++++++++++++++-----------
- 1 file changed, 19 insertions(+), 11 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index ff9606d..d53a079 100644
---- a/configure.in
-+++ b/configure.in
-@@ -347,7 +347,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your fifos are usable) fifo=1,
--AC_NOTE(- your fifos are not usable))
-+AC_NOTE(- your fifos are not usable),
-+AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1)
- rm -f /tmp/conftest*
-
- if test -n "$fifo"; then
-@@ -395,7 +396,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your implementation is ok),
--AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1)
-+AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1,
-+AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok))
- rm -f /tmp/conftest*
- fi
-
-@@ -457,7 +459,8 @@ main()
- exit(0);
- }
- ], AC_NOTE(- your sockets are usable) sock=1,
--AC_NOTE(- your sockets are not usable))
-+AC_NOTE(- your sockets are not usable),
-+AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1)
- rm -f /tmp/conftest*
-
- if test -n "$sock"; then
-@@ -496,7 +499,8 @@ main()
- }
- ],AC_NOTE(- you are normal),
- AC_NOTE(- unix domain sockets are not kept in the filesystem)
--AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1)
-+AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1,
-+AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal))
- rm -f /tmp/conftest*
- fi
-
-@@ -623,7 +627,8 @@ main()
- exit(0);
- }
- ],AC_NOTE(- select is ok),
--AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN))
-+AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN),
-+AC_NOTE(- skipping check because we are cross compiling; assuming select is ok))
-
- dnl
- dnl **** termcap or terminfo ****
-@@ -665,7 +670,8 @@ main()
- {
- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
- }], AC_NOTE(- you use the termcap database),
--AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO))
-+AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO),
-+AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO))
- AC_CHECKING(ospeed)
- AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
-
-@@ -800,7 +806,8 @@ main()
- else
- AC_NOTE(- can't determine - assume ptys are world accessable)
- fi
-- ]
-+ ],
-+ AC_NOTE(- skipping check because we are cross compiling; assuming ptys are world accessable)
- )
- rm -f conftest_grp
- fi
-@@ -884,7 +891,7 @@ AC_EGREP_CPP(yes,
- #endif
- ], load=1)
- fi
--if test -z "$load" ; then
-+if test -z "$load" && test "$cross_compiling" = no ; then
- AC_CHECKING(for kernelfile)
- for core in /unix /vmunix /dynix /hp-ux /xelos /dev/ksyms /kernel/unix /kernel/genunix /unicos /mach /netbsd /386bsd /dgux /bsd /stand/vmunix; do
- if test -f $core || test -c $core; then
-@@ -1077,7 +1084,7 @@ main()
- #endif
- exit(0);
- }
--],,AC_DEFINE(SYSVSIGS))
-+],,AC_DEFINE(SYSVSIGS),:)
-
- fi
-
-@@ -1157,7 +1164,7 @@ main() {
- if (strncmp(buf, "cdedef", 6))
- exit(1);
- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEBCOPY))
-+}], AC_DEFINE(USEBCOPY),,:)
-
- AC_TRY_RUN([
- #define bcopy(s,d,l) memmove(d,s,l)
-@@ -1172,7 +1179,8 @@ main() {
- if (strncmp(buf, "cdedef", 6))
- exit(1);
- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEMEMMOVE))
-+}], AC_DEFINE(USEMEMMOVE),,
-+ AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE))
-
- AC_SYS_LONG_FILE_NAMES
-
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Sun, 14 Sep 2014 07:10:59 +0200
-Subject: When cross-compiling, skip checks that look in the host file system
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- configure.in | 23 +++++++++++++++++++----
- 1 file changed, 19 insertions(+), 4 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index d53a079..79aa56d 100644
---- a/configure.in
-+++ b/configure.in
-@@ -84,7 +84,7 @@ AC_ARG_ENABLE(socket-dir,
- dnl
- dnl **** special unix variants ****
- dnl
--if test -n "$ISC"; then
-+if test "$cross_compiling" = no && test -n "$ISC" ; then
- AC_DEFINE(ISC) LIBS="$LIBS -linet"
- fi
-
-@@ -95,10 +95,11 @@ dnl AC_DEFINE(OSF1) # this disables MIPS again....
- dnl fi
- dnl fi
-
--if test -f /sysV68 ; then
-+if test "$cross_compiling" = no && test -f /sysV68 ; then
- AC_DEFINE(sysV68)
- fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for MIPS)
- if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then
- oldlibs="$LIBS"
-@@ -122,6 +123,7 @@ AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd"
- ))
- fi
- fi
-+fi
-
-
- AC_CHECKING(for Ultrix)
-@@ -131,7 +133,7 @@ AC_EGREP_CPP(yes,
- #endif
- ], ULTRIX=1)
-
--if test -f /usr/lib/libpyr.a ; then
-+if test "$cross_compiling" = no && test -f /usr/lib/libpyr.a ; then
- oldlibs="$LIBS"
- LIBS="$LIBS -lpyr"
- AC_CHECKING(Pyramid OSX)
-@@ -678,17 +680,21 @@ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
- dnl
- dnl **** PTY specific things ****
- dnl
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for /dev/ptc)
- if test -r /dev/ptc; then
- AC_DEFINE(HAVE_DEV_PTC)
- fi
-+fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for SVR4 ptys)
- sysvr4ptys=
- if test -c /dev/ptmx ; then
- AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
- sysvr4ptys=1])
- fi
-+fi
-
- AC_CHECK_FUNCS(getpt)
-
-@@ -698,6 +704,7 @@ AC_CHECK_FUNCS(openpty,,
- [AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])])
- fi
-
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for ptyranges)
- if test -d /dev/ptym ; then
- pdir='/dev/ptym'
-@@ -721,6 +728,7 @@ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\
- AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
- AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
- fi
-+fi
-
- dnl **** pty mode/group handling ****
- dnl
-@@ -868,14 +876,16 @@ fi
- dnl
- dnl **** loadav ****
- dnl
-+if test "$cross_compiling" = no ; then
- AC_CHECKING(for libutil(s))
- test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils"
- test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
-+fi
-
- AC_CHECKING(getloadavg)
- AC_TRY_LINK(,[getloadavg((double *)0, 0);],
- AC_DEFINE(LOADAV_GETLOADAVG) load=1,
--if test -f /usr/lib/libkvm.a ; then
-+if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then
- olibs="$LIBS"
- LIBS="$LIBS -lkvm"
- AC_CHECKING(getloadavg with -lkvm)
-@@ -1093,13 +1103,18 @@ dnl **** libraries ****
- dnl
-
- AC_CHECKING(for crypt and sec libraries)
-+if test "$cross_compiling" = no ; then
- test -f /lib/libcrypt_d.a || test -f /usr/lib/libcrypt_d.a && LIBS="$LIBS -lcrypt_d"
-+fi
- oldlibs="$LIBS"
- LIBS="$LIBS -lcrypt"
- AC_CHECKING(crypt)
- AC_TRY_LINK(,,,LIBS="$oldlibs")
-+if test "$cross_compiling" = no ; then
- test -f /lib/libsec.a || test -f /usr/lib/libsec.a && LIBS="$LIBS -lsec"
- test -f /lib/libshadow.a || test -f /usr/lib/libshadow.a && LIBS="$LIBS -lshadow"
-+fi
-+
- oldlibs="$LIBS"
- LIBS="$LIBS -lsun"
- AC_CHECKING(IRIX sun library)
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Sun, 14 Sep 2014 11:16:58 +0200
-Subject: Avoid mis-identifying systems as SVR4
-
-My openSUSE 13.1 Linux system was detected as SVR4 because it had
-libelf installed. This leads to linking with libelf, even though no
-symbols from that library were actually used, and to a workaround for
-a buggy getlogin() being enabled.
-
-It is not documented which exact SVR4 system had the bug that the
-workaround was added for, so all I could do is make an educated guess
-at the #defines its compiler would be likely to set.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- configure.in | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index f78f81f..181b7f9 100644
---- a/configure.in
-+++ b/configure.in
-@@ -178,14 +178,24 @@ AC_EGREP_CPP(yes,
- #endif
- ], LIBS="$LIBS -lsocket -linet";seqptx=1)
-
-+AC_CHECKING(SVR4)
-+AC_EGREP_CPP(yes,
-+[main () {
-+#if defined(SVR4) || defined(__SVR4)
-+ yes;
-+#endif
-+], AC_NOTE(- you have a SVR4 system) AC_DEFINE(SVR4) svr4=1)
-+if test -n "$svr4" ; then
- oldlibs="$LIBS"
- LIBS="$LIBS -lelf"
- AC_CHECKING(SVR4)
- AC_TRY_LINK([#include <utmpx.h>
- ],,
--[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
--[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])]
-+[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(BUGGYGETLOGIN),
-+[AC_CHECK_HEADER(elf.h, AC_DEFINE(BUGGYGETLOGIN))])]
- ,LIBS="$oldlibs")
-+fi
-+
- AC_CHECK_HEADERS([stropts.h string.h strings.h])
-
- AC_CHECKING(for Solaris 2.x)
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Sun, 14 Sep 2014 23:58:34 +0200
-Subject: Do not create backup of old installed binary
-
-This is a rather unusual feature that packagers will not expect.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- Makefile.in | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 187a69b..65549e9 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -83,12 +83,9 @@ screen: $(OFILES)
- $(OPTIONS) $(CFLAGS) $<
-
- install_bin: .version screen
-- -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \
-- then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi
- $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
- -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
- # This doesn't work if $(bindir)/screen is a symlink
-- -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi
- rm -f $(DESTDIR)$(bindir)/screen
- (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
- cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
-@@ -113,7 +110,6 @@ installdirs:
- uninstall: .version
- rm -f $(DESTDIR)$(bindir)/$(SCREEN)
- rm -f $(DESTDIR)$(bindir)/screen
-- -mv $(DESTDIR)$(bindir)/screen.old $(DESTDIR)$(bindir)/screen
- rm -f $(DESTDIR)$(ETCSCREENRC)
- cd doc; $(MAKE) uninstall
-
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Mon, 15 Sep 2014 00:03:05 +0200
-Subject: Change binary permission flags even if chown fails
-
-Typically when creating a package, the build is not run as root, so
-the chown will fail. But the chmod can still be done.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- Makefile.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 65549e9..3c12fdb 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -84,7 +84,8 @@ screen: $(OFILES)
-
- install_bin: .version screen
- $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
-- -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
-+ -chown root $(DESTDIR)$(bindir)/$(SCREEN)
-+ -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
- # This doesn't work if $(bindir)/screen is a symlink
- rm -f $(DESTDIR)$(bindir)/screen
- (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Mon, 15 Sep 2014 00:06:20 +0200
-Subject: Support overriding SCREEN to get a non-versioned binary
-
-If a packager runs "make install SCREEN=screen", do not create
-"screen" as a symlink to itself.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- Makefile.in | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/Makefile.in b/Makefile.in
-index 3c12fdb..860f351 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -86,9 +86,11 @@ install_bin: .version screen
- $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
- -chown root $(DESTDIR)$(bindir)/$(SCREEN)
- -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
-+ifneq (${SCREEN},screen)
- # This doesn't work if $(bindir)/screen is a symlink
- rm -f $(DESTDIR)$(bindir)/screen
- (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
-+endif
- cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
-
- ###############################################################################
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Mon, 15 Sep 2014 02:27:09 +0200
-Subject: Ensure that installation dirs exist before copying files into them
-
-Since the "install_bin" target requires the installation directories
-to exist, it should depend on the "installdirs" target. The previous
-approach of having "install" depend on "installdirs" is not reliable.
-
-For example, in a parallel build, there was no guarantee that
-"installdirs" would be finished before "install_bin" runs. Also if
-the user requested only "install_bin" to be made, "installdirs" would
-be skipped altogether.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- Makefile.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 860f351..f0fe08d 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -82,7 +82,7 @@ screen: $(OFILES)
- $(CC) -c -I. -I$(srcdir) $(M_CFLAGS) $(CPPFLAGS) $(DEFS) \
- $(OPTIONS) $(CFLAGS) $<
-
--install_bin: .version screen
-+install_bin: .version screen installdirs
- $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
- -chown root $(DESTDIR)$(bindir)/$(SCREEN)
- -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
-@@ -94,7 +94,7 @@ endif
- cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
-
- ###############################################################################
--install: installdirs install_bin
-+install: install_bin
- cd doc ; $(MAKE) install
- -if [ -d /usr/lib/terminfo ]; then \
- PATH="$$PATH:/usr/5bin" tic ${srcdir}/terminfo/screeninfo.src; \
---
-1.8.4.5
-
+++ /dev/null
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Mon, 15 Sep 2014 00:24:41 +0200
-Subject: Renamed sched.h to eventqueue.h
-
-There is a <sched.h> system header that got shadowed by "sched.h".
-While Screen itself doesn't include <sched.h>, other system headers
-might include it indirectly. This broke the build when using uClibc
-with pthread support.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- eventqueue.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
- sched.h | 48 ------------------------------------------------
- screen.h | 2 +-
- 3 files changed, 49 insertions(+), 49 deletions(-)
- create mode 100644 eventqueue.h
- delete mode 100644 sched.h
-
-diff --git a/eventqueue.h b/eventqueue.h
-new file mode 100644
-index 0000000..fdc3fc4
---- /dev/null
-+++ b/eventqueue.h
-@@ -0,0 +1,48 @@
-+/* Copyright (c) 2008, 2009
-+ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
-+ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
-+ * Micah Cowan (micah@cowan.name)
-+ * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
-+ * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007
-+ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
-+ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
-+ * Copyright (c) 1987 Oliver Laumann
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 3, or (at your option)
-+ * any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program (see the file COPYING); if not, see
-+ * http://www.gnu.org/licenses/, or contact Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-+ *
-+ ****************************************************************
-+ * $Id$ GNU
-+ */
-+
-+struct event
-+{
-+ struct event *next;
-+ void (*handler) __P((struct event *, char *));
-+ char *data;
-+ int fd;
-+ int type;
-+ int pri;
-+ struct timeval timeout;
-+ int queued; /* in evs queue */
-+ int active; /* in fdset */
-+ int *condpos; /* only active if condpos - condneg > 0 */
-+ int *condneg;
-+};
-+
-+#define EV_TIMEOUT 0
-+#define EV_READ 1
-+#define EV_WRITE 2
-+#define EV_ALWAYS 3
-diff --git a/sched.h b/sched.h
-deleted file mode 100644
-index fdc3fc4..0000000
---- a/sched.h
-+++ /dev/null
-@@ -1,48 +0,0 @@
--/* Copyright (c) 2008, 2009
-- * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
-- * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
-- * Micah Cowan (micah@cowan.name)
-- * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
-- * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007
-- * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
-- * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
-- * Copyright (c) 1987 Oliver Laumann
-- *
-- * This program is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License as published by
-- * the Free Software Foundation; either version 3, or (at your option)
-- * any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program (see the file COPYING); if not, see
-- * http://www.gnu.org/licenses/, or contact Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-- *
-- ****************************************************************
-- * $Id$ GNU
-- */
--
--struct event
--{
-- struct event *next;
-- void (*handler) __P((struct event *, char *));
-- char *data;
-- int fd;
-- int type;
-- int pri;
-- struct timeval timeout;
-- int queued; /* in evs queue */
-- int active; /* in fdset */
-- int *condpos; /* only active if condpos - condneg > 0 */
-- int *condneg;
--};
--
--#define EV_TIMEOUT 0
--#define EV_READ 1
--#define EV_WRITE 2
--#define EV_ALWAYS 3
-diff --git a/screen.h b/screen.h
-index 603ca3f..34238c8 100644
---- a/screen.h
-+++ b/screen.h
-@@ -43,7 +43,7 @@
- #include "osdef.h"
-
- #include "ansi.h"
--#include "sched.h"
-+#include "eventqueue.h"
- #include "acls.h"
- #include "comm.h"
- #include "layer.h"
---
-1.8.4.5
-
--- /dev/null
+[PATCH] configure.in: use correct directfb-config in version check
+
+The configure script has just checked for the correct directfb-config
+script, so also use it for the version check instead of whatever
+might be in the path.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+Index: SDL-1.2.15/configure.in
+===================================================================
+--- SDL-1.2.15.orig/configure.in
++++ SDL-1.2.15/configure.in
+@@ -1276,7 +1276,7 @@
+ else
+ set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
+ NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
+- set -- `directfb-config --version | sed 's/\./ /g'`
++ set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'`
+ HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
+ if test $HAVE_VERSION -ge $NEED_VERSION; then
+ DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
+
--- /dev/null
+sdl: Fix compilation with libX11 >= 1.5.99.902
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+# HG changeset patch
+# User Azamat H. Hackimov <azamat.hackimov@gmail.com>
+# Date 1370184533 -21600
+# Node ID 91ad7b43317a6387e115ecdf63a49137f47e42c8
+# Parent f7fd5c3951b9ed922fdf696f7182e71b58a13268
+Fix compilation with libX11 >= 1.5.99.902.
+
+These changes fixes bug #1769 for SDL 1.2
+(http://bugzilla.libsdl.org/show_bug.cgi?id=1769).
+
+diff -r f7fd5c3951b9 -r 91ad7b43317a configure.in
+--- a/configure.in Wed Apr 17 00:56:53 2013 -0700
++++ b/configure.in Sun Jun 02 20:48:53 2013 +0600
+@@ -1169,6 +1169,17 @@
+ if test x$definitely_enable_video_x11_xrandr = xyes; then
+ AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR)
+ fi
++ AC_MSG_CHECKING(for const parameter to _XData32)
++ have_const_param_xdata32=no
++ AC_TRY_COMPILE([
++ #include <X11/Xlibint.h>
++ extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len);
++ ],[
++ ],[
++ have_const_param_xdata32=yes
++ AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32)
++ ])
++ AC_MSG_RESULT($have_const_param_xdata32)
+ fi
+ fi
+ }
+diff -r f7fd5c3951b9 -r 91ad7b43317a include/SDL_config.h.in
+--- a/include/SDL_config.h.in Wed Apr 17 00:56:53 2013 -0700
++++ b/include/SDL_config.h.in Sun Jun 02 20:48:53 2013 +0600
+@@ -283,6 +283,7 @@
+ #undef SDL_VIDEO_DRIVER_WINDIB
+ #undef SDL_VIDEO_DRIVER_WSCONS
+ #undef SDL_VIDEO_DRIVER_X11
++#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
+ #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE
+ #undef SDL_VIDEO_DRIVER_X11_DYNAMIC
+ #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
+diff -r f7fd5c3951b9 -r 91ad7b43317a src/video/x11/SDL_x11sym.h
+--- a/src/video/x11/SDL_x11sym.h Wed Apr 17 00:56:53 2013 -0700
++++ b/src/video/x11/SDL_x11sym.h Sun Jun 02 20:48:53 2013 +0600
+@@ -165,7 +165,11 @@
+ */
+ #ifdef LONG64
+ SDL_X11_MODULE(IO_32BIT)
++#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
++SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
++#else
+ SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
++#endif
+ SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
+ #endif
+
+++ /dev/null
-[PATCH] configure.in: use correct directfb-config in version check
-
-The configure script has just checked for the correct directfb-config
-script, so also use it for the version check instead of whatever
-might be in the path.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- configure.in | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-Index: SDL-1.2.15/configure.in
-===================================================================
---- SDL-1.2.15.orig/configure.in
-+++ SDL-1.2.15/configure.in
-@@ -1276,7 +1276,7 @@
- else
- set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
- NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
-- set -- `directfb-config --version | sed 's/\./ /g'`
-+ set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'`
- HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
- if test $HAVE_VERSION -ge $NEED_VERSION; then
- DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
-
+++ /dev/null
-sdl: Fix compilation with libX11 >= 1.5.99.902
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-
-# HG changeset patch
-# User Azamat H. Hackimov <azamat.hackimov@gmail.com>
-# Date 1370184533 -21600
-# Node ID 91ad7b43317a6387e115ecdf63a49137f47e42c8
-# Parent f7fd5c3951b9ed922fdf696f7182e71b58a13268
-Fix compilation with libX11 >= 1.5.99.902.
-
-These changes fixes bug #1769 for SDL 1.2
-(http://bugzilla.libsdl.org/show_bug.cgi?id=1769).
-
-diff -r f7fd5c3951b9 -r 91ad7b43317a configure.in
---- a/configure.in Wed Apr 17 00:56:53 2013 -0700
-+++ b/configure.in Sun Jun 02 20:48:53 2013 +0600
-@@ -1169,6 +1169,17 @@
- if test x$definitely_enable_video_x11_xrandr = xyes; then
- AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR)
- fi
-+ AC_MSG_CHECKING(for const parameter to _XData32)
-+ have_const_param_xdata32=no
-+ AC_TRY_COMPILE([
-+ #include <X11/Xlibint.h>
-+ extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len);
-+ ],[
-+ ],[
-+ have_const_param_xdata32=yes
-+ AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32)
-+ ])
-+ AC_MSG_RESULT($have_const_param_xdata32)
- fi
- fi
- }
-diff -r f7fd5c3951b9 -r 91ad7b43317a include/SDL_config.h.in
---- a/include/SDL_config.h.in Wed Apr 17 00:56:53 2013 -0700
-+++ b/include/SDL_config.h.in Sun Jun 02 20:48:53 2013 +0600
-@@ -283,6 +283,7 @@
- #undef SDL_VIDEO_DRIVER_WINDIB
- #undef SDL_VIDEO_DRIVER_WSCONS
- #undef SDL_VIDEO_DRIVER_X11
-+#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
- #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE
- #undef SDL_VIDEO_DRIVER_X11_DYNAMIC
- #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
-diff -r f7fd5c3951b9 -r 91ad7b43317a src/video/x11/SDL_x11sym.h
---- a/src/video/x11/SDL_x11sym.h Wed Apr 17 00:56:53 2013 -0700
-+++ b/src/video/x11/SDL_x11sym.h Sun Jun 02 20:48:53 2013 +0600
-@@ -165,7 +165,11 @@
- */
- #ifdef LONG64
- SDL_X11_MODULE(IO_32BIT)
-+#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
-+SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
-+#else
- SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
-+#endif
- SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
- #endif
-
--- /dev/null
+ser2net: Fix compilation failures due to missing TIOCSRS485 macro
+
+Patch sent upstream:
+ https://sourceforge.net/p/ser2net/mailman/message/32905302/
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+From: Yegor Yefremov <yegorslists@googlemail.com>
+
+include <asm-generic/ioctls.h> fixes compilations for systems,
+where <asm-generic/ioctls.h> won't be included automatically.
+
+Move special Linux includes to dataxfer.h.
+
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+---
+ dataxfer.h | 5 +++--
+ devcfg.c | 2 --
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/dataxfer.h b/dataxfer.h
+index bd2665e..c3d7431 100644
+--- a/dataxfer.h
++++ b/dataxfer.h
+@@ -20,8 +20,6 @@
+ #ifndef DATAXFER
+ #define DATAXFER
+
+-#include <linux/serial.h>
+-
+ #include "controller.h"
+
+ #ifdef USE_UUCP_LOCKING
+@@ -30,6 +28,9 @@ extern int uucp_locking_enabled;
+
+ #ifdef linux
+
++#include <linux/serial.h>
++#include <asm-generic/ioctls.h>
++
+ #define USE_RS485_FEATURE
+
+ /* Check, if the toolchain provides serial_rs485 structure and macros */
+diff --git a/devcfg.c b/devcfg.c
+index ab819a6..1f84714 100644
+--- a/devcfg.c
++++ b/devcfg.c
+@@ -18,7 +18,6 @@
+ */
+
+ /* This code handles generating the configuration for the serial port. */
+-
+ #include <unistd.h>
+ #include <termios.h>
+ #include <sys/ioctl.h>
+@@ -31,7 +30,6 @@
+ #include <signal.h>
+ #include <errno.h>
+ #include <syslog.h>
+-#include <linux/serial.h>
+
+ #include "ser2net.h"
+ #include "selector.h"
+--
+1.9.1
+++ /dev/null
-ser2net: Fix compilation failures due to missing TIOCSRS485 macro
-
-Patch sent upstream:
- https://sourceforge.net/p/ser2net/mailman/message/32905302/
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-
-From: Yegor Yefremov <yegorslists@googlemail.com>
-
-include <asm-generic/ioctls.h> fixes compilations for systems,
-where <asm-generic/ioctls.h> won't be included automatically.
-
-Move special Linux includes to dataxfer.h.
-
-Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
----
- dataxfer.h | 5 +++--
- devcfg.c | 2 --
- 2 files changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/dataxfer.h b/dataxfer.h
-index bd2665e..c3d7431 100644
---- a/dataxfer.h
-+++ b/dataxfer.h
-@@ -20,8 +20,6 @@
- #ifndef DATAXFER
- #define DATAXFER
-
--#include <linux/serial.h>
--
- #include "controller.h"
-
- #ifdef USE_UUCP_LOCKING
-@@ -30,6 +28,9 @@ extern int uucp_locking_enabled;
-
- #ifdef linux
-
-+#include <linux/serial.h>
-+#include <asm-generic/ioctls.h>
-+
- #define USE_RS485_FEATURE
-
- /* Check, if the toolchain provides serial_rs485 structure and macros */
-diff --git a/devcfg.c b/devcfg.c
-index ab819a6..1f84714 100644
---- a/devcfg.c
-+++ b/devcfg.c
-@@ -18,7 +18,6 @@
- */
-
- /* This code handles generating the configuration for the serial port. */
--
- #include <unistd.h>
- #include <termios.h>
- #include <sys/ioctl.h>
-@@ -31,7 +30,6 @@
- #include <signal.h>
- #include <errno.h>
- #include <syslog.h>
--#include <linux/serial.h>
-
- #include "ser2net.h"
- #include "selector.h"
---
-1.9.1
--- /dev/null
+Install the setserial program in /usr/bin instead of /bin, and make
+sure that the directories (especially the manpages directory) are
+created before installing files to them. This is similar to what
+automake does.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ Makefile.in | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+Index: setserial-2.17/Makefile.in
+===================================================================
+--- setserial-2.17.orig/Makefile.in
++++ setserial-2.17/Makefile.in
+@@ -26,9 +26,10 @@ setserial.cat: setserial.8
+ nroff -man setserial.8 > setserial.cat
+
+ install: setserial setserial.8
+- $(INSTALL_PROGRAM) setserial $(DESTDIR)/bin
+- $(STRIP) $(DESTDIR)/bin/setserial
+- $(INSTALL_DATA) setserial.8 $(DESTDIR)/usr/man/man8
++ mkdir -p $(DESTDIR)/usr/bin
++ $(INSTALL_PROGRAM) setserial $(DESTDIR)/usr/bin
++ mkdir -p $(DESTDIR)/usr/share/man/man8
++ $(INSTALL_DATA) setserial.8 $(DESTDIR)/usr/share/man/man8
+
+ clean:
+ $(RM) setserial setserial.o setserial.cat *~
--- /dev/null
+[PATCH] setserial: fix build with 2.6.33+ kernel headers
+
+linux/hayesesp.h got removed in 2.6.33, but some archs (like x86) still
+define the TIOCGHAYESESP ioctl, breaking the build.
+
+It's very unlikely to be of interest anymore, so just undef it.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ setserial.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+Index: setserial-2.17/setserial.c
+===================================================================
+--- setserial-2.17.orig/setserial.c
++++ setserial-2.17/setserial.c
+@@ -24,6 +24,11 @@
+ #endif
+ #include <linux/serial.h>
+
++/* linux/hayesesp.h got removed in 2.6.33 but some archs (like x86)
++ still define TIOCGHAYESESP. It's very unlikely to be of interest
++ anymore, so just undef it */
++#undef TIOCGHAYESESP
++
+ #include "version.h"
+
+ static char version_str[] = "setserial version " SETSERIAL_VERSION ", "
+++ /dev/null
-Install the setserial program in /usr/bin instead of /bin, and make
-sure that the directories (especially the manpages directory) are
-created before installing files to them. This is similar to what
-automake does.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- Makefile.in | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-Index: setserial-2.17/Makefile.in
-===================================================================
---- setserial-2.17.orig/Makefile.in
-+++ setserial-2.17/Makefile.in
-@@ -26,9 +26,10 @@ setserial.cat: setserial.8
- nroff -man setserial.8 > setserial.cat
-
- install: setserial setserial.8
-- $(INSTALL_PROGRAM) setserial $(DESTDIR)/bin
-- $(STRIP) $(DESTDIR)/bin/setserial
-- $(INSTALL_DATA) setserial.8 $(DESTDIR)/usr/man/man8
-+ mkdir -p $(DESTDIR)/usr/bin
-+ $(INSTALL_PROGRAM) setserial $(DESTDIR)/usr/bin
-+ mkdir -p $(DESTDIR)/usr/share/man/man8
-+ $(INSTALL_DATA) setserial.8 $(DESTDIR)/usr/share/man/man8
-
- clean:
- $(RM) setserial setserial.o setserial.cat *~
+++ /dev/null
-[PATCH] setserial: fix build with 2.6.33+ kernel headers
-
-linux/hayesesp.h got removed in 2.6.33, but some archs (like x86) still
-define the TIOCGHAYESESP ioctl, breaking the build.
-
-It's very unlikely to be of interest anymore, so just undef it.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- setserial.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-Index: setserial-2.17/setserial.c
-===================================================================
---- setserial-2.17.orig/setserial.c
-+++ setserial-2.17/setserial.c
-@@ -24,6 +24,11 @@
- #endif
- #include <linux/serial.h>
-
-+/* linux/hayesesp.h got removed in 2.6.33 but some archs (like x86)
-+ still define TIOCGHAYESESP. It's very unlikely to be of interest
-+ anymore, so just undef it */
-+#undef TIOCGHAYESESP
-+
- #include "version.h"
-
- static char version_str[] = "setserial version " SETSERIAL_VERSION ", "
--- /dev/null
+From 8002a7e6fa965dfd304d098fbc64b0f1a6e3b465 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Sun, 24 Aug 2014 22:34:29 +0200
+Subject: [PATCH 1/1] configure: add pkg-config support
+
+The static linking doesn't works with libusb-compat when using libusb-config.
+Also the CFLAGS initialization with libusb-config --cflags is comented out.
+
+Based on libftdi's patch, add the support for pkg-config to link sispmctl
+correctly.
+
+This allow to add correct include directory to CFLAGS
+(Add -I$(STAGING_DIR)/usr/include and -I$(STAGING_DIR)/usr/include/libusb-1.0)
+Also add needed libraries during static linking (-lusb -lusb-1.0 and -pthread)
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ configure.in | 36 +++++++++++-------------------------
+ 1 file changed, 11 insertions(+), 25 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 08d39ea..65d0c1d 100644
+--- a/configure.in
++++ b/configure.in
+@@ -23,31 +23,17 @@ AC_SUBST(WEBDIR)
+ AC_ARG_WITH(bindaddr,[ --with-bindaddr=IP bind listening socket to IP], [BINDADDR="$withval"])
+ AC_SUBST(BINDADDR)
+
+-
+-# Checks for libraries.
+-dnl check for libusb-config
+-AC_PATH_PROG(HAVELIBUSB, libusb-config, $PATH)
+-
+-if test -e "$HAVELIBUSB"; then
+- dnl LIBUSB_CFLAGS=`$HAVELIBUSB --cflags`
+- LIBUSB_LIBS=`$HAVELIBUSB --libs`
+- CFLAGS="$CFLAGS $LIBUSB_CFLAGS"
+- LIBS="$LIBS $LIBUSB_LIBS"
+-else
+- AC_MSG_ERROR([*** libusb-config not found. You need a working libusb installation. Version >=0.1.7])
+-fi
+-
+-dnl check for version of libusb
+-AC_MSG_CHECKING([if libusb version is >= 0.1.9])
+-libusb_version_needed="1009"
+-libusb_version=`$HAVELIBUSB --version | sed -e "s/libusb //" | awk 'BEGIN { FS = "."; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
+-
+-if test $libusb_version -lt $libusb_version_needed; then
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR([*** libusb is too old ($libusb_version). You need a libusb installation newer or equal to 0.1.9.])
+-else
+- AC_MSG_RESULT(yes)
+-fi
++dnl check for libusb
++PKG_CHECK_MODULES(LIBUSB, libusb >= 0.1.11)
++CFLAGS="$CFLAGS $LIBUSB_CFLAGS"
++LIBS="$LIBS $LIBUSB_LIBS"
++
++dnl Check for recent pkg-config which supports Requires.private
++case `$PKG_CONFIG --version` in
++0.?|0.1[0-7]) PKGCONFIG_REQUIRES="Requires"; ;;
++*) PKGCONFIG_REQUIRES="Requires.private"; ;;
++esac
++AC_SUBST(PKGCONFIG_REQUIRES)
+
+ # Checks for header files.
+ AC_HEADER_STDC
+--
+1.9.3
+
+++ /dev/null
-From 8002a7e6fa965dfd304d098fbc64b0f1a6e3b465 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@openwide.fr>
-Date: Sun, 24 Aug 2014 22:34:29 +0200
-Subject: [PATCH 1/1] configure: add pkg-config support
-
-The static linking doesn't works with libusb-compat when using libusb-config.
-Also the CFLAGS initialization with libusb-config --cflags is comented out.
-
-Based on libftdi's patch, add the support for pkg-config to link sispmctl
-correctly.
-
-This allow to add correct include directory to CFLAGS
-(Add -I$(STAGING_DIR)/usr/include and -I$(STAGING_DIR)/usr/include/libusb-1.0)
-Also add needed libraries during static linking (-lusb -lusb-1.0 and -pthread)
-
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- configure.in | 36 +++++++++++-------------------------
- 1 file changed, 11 insertions(+), 25 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 08d39ea..65d0c1d 100644
---- a/configure.in
-+++ b/configure.in
-@@ -23,31 +23,17 @@ AC_SUBST(WEBDIR)
- AC_ARG_WITH(bindaddr,[ --with-bindaddr=IP bind listening socket to IP], [BINDADDR="$withval"])
- AC_SUBST(BINDADDR)
-
--
--# Checks for libraries.
--dnl check for libusb-config
--AC_PATH_PROG(HAVELIBUSB, libusb-config, $PATH)
--
--if test -e "$HAVELIBUSB"; then
-- dnl LIBUSB_CFLAGS=`$HAVELIBUSB --cflags`
-- LIBUSB_LIBS=`$HAVELIBUSB --libs`
-- CFLAGS="$CFLAGS $LIBUSB_CFLAGS"
-- LIBS="$LIBS $LIBUSB_LIBS"
--else
-- AC_MSG_ERROR([*** libusb-config not found. You need a working libusb installation. Version >=0.1.7])
--fi
--
--dnl check for version of libusb
--AC_MSG_CHECKING([if libusb version is >= 0.1.9])
--libusb_version_needed="1009"
--libusb_version=`$HAVELIBUSB --version | sed -e "s/libusb //" | awk 'BEGIN { FS = "."; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
--
--if test $libusb_version -lt $libusb_version_needed; then
-- AC_MSG_RESULT(no)
-- AC_MSG_ERROR([*** libusb is too old ($libusb_version). You need a libusb installation newer or equal to 0.1.9.])
--else
-- AC_MSG_RESULT(yes)
--fi
-+dnl check for libusb
-+PKG_CHECK_MODULES(LIBUSB, libusb >= 0.1.11)
-+CFLAGS="$CFLAGS $LIBUSB_CFLAGS"
-+LIBS="$LIBS $LIBUSB_LIBS"
-+
-+dnl Check for recent pkg-config which supports Requires.private
-+case `$PKG_CONFIG --version` in
-+0.?|0.1[0-7]) PKGCONFIG_REQUIRES="Requires"; ;;
-+*) PKGCONFIG_REQUIRES="Requires.private"; ;;
-+esac
-+AC_SUBST(PKGCONFIG_REQUIRES)
-
- # Checks for header files.
- AC_HEADER_STDC
---
-1.9.3
-
--- /dev/null
+Makefile: fix rules
+
+In a Makefile, recipes should follow rules, there can not be variable
+definitions in-between.
+
+Although make-3.81 is happy about it, make-4.0 (and probably 3.82 too)
+do whine loudly.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN smstools3-3.1.15.orig/src/Makefile smstools3-3.1.15/src/Makefile
+--- smstools3-3.1.15.orig/src/Makefile 2010-09-21 13:29:14.000000000 +0200
++++ smstools3-3.1.15/src/Makefile 2014-09-01 22:27:02.719939329 +0200
+@@ -39,14 +39,13 @@
+
+ all: smsd
+
+-smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o
+-
+ ifneq (,$(findstring SOLARIS,$(CFLAGS)))
+ ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
+ override LFLAGS += -lsocket -lnsl
+ endif
+ endif
+
++smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o
+ ifneq (,$(findstring NOSTATS,$(CFLAGS)))
+ $(CC) $(CFLAGS) -o $@ $^ $(LFLAGS)
+ else
+++ /dev/null
-Makefile: fix rules
-
-In a Makefile, recipes should follow rules, there can not be variable
-definitions in-between.
-
-Although make-3.81 is happy about it, make-4.0 (and probably 3.82 too)
-do whine loudly.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN smstools3-3.1.15.orig/src/Makefile smstools3-3.1.15/src/Makefile
---- smstools3-3.1.15.orig/src/Makefile 2010-09-21 13:29:14.000000000 +0200
-+++ smstools3-3.1.15/src/Makefile 2014-09-01 22:27:02.719939329 +0200
-@@ -39,14 +39,13 @@
-
- all: smsd
-
--smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o
--
- ifneq (,$(findstring SOLARIS,$(CFLAGS)))
- ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
- override LFLAGS += -lsocket -lnsl
- endif
- endif
-
-+smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o
- ifneq (,$(findstring NOSTATS,$(CFLAGS)))
- $(CC) $(CFLAGS) -o $@ $^ $(LFLAGS)
- else
--- /dev/null
+From 6433c6e8d81313ec7ef6c8d3abf96fffa537e23e Mon Sep 17 00:00:00 2001
+From: Luca Ceresoli <luca@lucaceresoli.net>
+Date: Tue, 1 Apr 2014 14:35:25 +0200
+Subject: [PATCH] Add missing includes
+
+Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
+---
+ include/snmp_pp/config_snmp_pp.h.in | 4 ++++
+ include/snmp_pp/smival.h | 1 +
+ 2 files changed, 5 insertions(+)
+
+diff --git a/include/snmp_pp/config_snmp_pp.h.in b/include/snmp_pp/config_snmp_pp.h.in
+index 89a5b0d..3100713 100644
+--- a/include/snmp_pp/config_snmp_pp.h.in
++++ b/include/snmp_pp/config_snmp_pp.h.in
+@@ -28,6 +28,10 @@
+ #ifndef _CONFIG_SNMP_PP_H_
+ #define _CONFIG_SNMP_PP_H_
+
++#ifdef __linux__
++#include <sys/socket.h>
++#endif
++
+ #define SNMP_PP_VERSION_STRING "@VERSION@"
+ #define SNMP_PP_VERSION @SNMP_PP_MAJOR_VERSION@
+ #define SNMP_PP_RELEASE @SNMP_PP_MINOR_VERSION@
+diff --git a/include/snmp_pp/smival.h b/include/snmp_pp/smival.h
+index 7a36fab..7522087 100644
+--- a/include/snmp_pp/smival.h
++++ b/include/snmp_pp/smival.h
+@@ -59,6 +59,7 @@
+ #define _SMIVALUE
+
+ //----[ includes ]-----------------------------------------------------
++#include <string.h>
+ #include "snmp_pp/smi.h"
+
+ #ifdef SNMP_PP_NAMESPACE
+--
+1.8.3.2
+
+++ /dev/null
-From 6433c6e8d81313ec7ef6c8d3abf96fffa537e23e Mon Sep 17 00:00:00 2001
-From: Luca Ceresoli <luca@lucaceresoli.net>
-Date: Tue, 1 Apr 2014 14:35:25 +0200
-Subject: [PATCH] Add missing includes
-
-Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
----
- include/snmp_pp/config_snmp_pp.h.in | 4 ++++
- include/snmp_pp/smival.h | 1 +
- 2 files changed, 5 insertions(+)
-
-diff --git a/include/snmp_pp/config_snmp_pp.h.in b/include/snmp_pp/config_snmp_pp.h.in
-index 89a5b0d..3100713 100644
---- a/include/snmp_pp/config_snmp_pp.h.in
-+++ b/include/snmp_pp/config_snmp_pp.h.in
-@@ -28,6 +28,10 @@
- #ifndef _CONFIG_SNMP_PP_H_
- #define _CONFIG_SNMP_PP_H_
-
-+#ifdef __linux__
-+#include <sys/socket.h>
-+#endif
-+
- #define SNMP_PP_VERSION_STRING "@VERSION@"
- #define SNMP_PP_VERSION @SNMP_PP_MAJOR_VERSION@
- #define SNMP_PP_RELEASE @SNMP_PP_MINOR_VERSION@
-diff --git a/include/snmp_pp/smival.h b/include/snmp_pp/smival.h
-index 7a36fab..7522087 100644
---- a/include/snmp_pp/smival.h
-+++ b/include/snmp_pp/smival.h
-@@ -59,6 +59,7 @@
- #define _SMIVALUE
-
- //----[ includes ]-----------------------------------------------------
-+#include <string.h>
- #include "snmp_pp/smi.h"
-
- #ifdef SNMP_PP_NAMESPACE
---
-1.8.3.2
-
--- /dev/null
+socat: disable documentation build/installation
+
+The documentation generation process requires a special yold2man
+program, for which we don't have a package in Buildroot. Since we
+generally don't care much about documentation of packages, just adjust
+the package Makefile.in to not build/install its documentation.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile.in
+===================================================================
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -93,7 +93,7 @@
+ Config/Makefile.Cygwin-1-5-25 Config/config.Cygwin-1-5-25.h \
+ Config/Makefile.MacOSX-10-5 Config/config.MacOSX-10-5.h
+
+-all: progs doc
++all: progs
+
+ scmclean: gitclean
+
+@@ -136,13 +136,11 @@
+ strip: progs
+ strip $(PROGS)
+
+-install: progs $(srcdir)/doc/socat.1
++install: progs
+ mkdir -p $(DESTDIR)$(BINDEST)
+ $(INSTALL) -m 755 socat $(DESTDIR)$(BINDEST)
+ $(INSTALL) -m 755 procan $(DESTDIR)$(BINDEST)
+ $(INSTALL) -m 755 filan $(DESTDIR)$(BINDEST)
+- mkdir -p $(DESTDIR)$(MANDEST)/man1
+- $(INSTALL) -m 644 $(srcdir)/doc/socat.1 $(DESTDIR)$(MANDEST)/man1/
+
+ uninstall:
+ rm -f $(DESTDIR)$(BINDEST)/socat
+++ /dev/null
-socat: disable documentation build/installation
-
-The documentation generation process requires a special yold2man
-program, for which we don't have a package in Buildroot. Since we
-generally don't care much about documentation of packages, just adjust
-the package Makefile.in to not build/install its documentation.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/Makefile.in
-===================================================================
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -93,7 +93,7 @@
- Config/Makefile.Cygwin-1-5-25 Config/config.Cygwin-1-5-25.h \
- Config/Makefile.MacOSX-10-5 Config/config.MacOSX-10-5.h
-
--all: progs doc
-+all: progs
-
- scmclean: gitclean
-
-@@ -136,13 +136,11 @@
- strip: progs
- strip $(PROGS)
-
--install: progs $(srcdir)/doc/socat.1
-+install: progs
- mkdir -p $(DESTDIR)$(BINDEST)
- $(INSTALL) -m 755 socat $(DESTDIR)$(BINDEST)
- $(INSTALL) -m 755 procan $(DESTDIR)$(BINDEST)
- $(INSTALL) -m 755 filan $(DESTDIR)$(BINDEST)
-- mkdir -p $(DESTDIR)$(MANDEST)/man1
-- $(INSTALL) -m 644 $(srcdir)/doc/socat.1 $(DESTDIR)$(MANDEST)/man1/
-
- uninstall:
- rm -f $(DESTDIR)$(BINDEST)/socat
--- /dev/null
+Make SoX support uclibc-based toolchains, from:
+http://sourceforge.net/p/sox/bugs/179/
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+Index: sox-14.4.1/src/formats.c
+===================================================================
+--- sox-14.4.1.orig/src/formats.c
++++ sox-14.4.1/src/formats.c
+@@ -409,7 +409,7 @@ static void UNUSED rewind_pipe(FILE * fp
+ #if defined _FSTDIO || defined _NEWLIB_VERSION || defined __APPLE__
+ fp->_p -= PIPE_AUTO_DETECT_SIZE;
+ fp->_r += PIPE_AUTO_DETECT_SIZE;
+-#elif defined __GLIBC__
++#elif defined __GLIBC__ && ! defined __UCLIBC__
+ fp->_IO_read_ptr = fp->_IO_read_base;
+ #elif defined _MSC_VER || defined _WIN32 || defined _WIN64 || defined _ISO_STDIO_ISO_H
+ fp->_ptr = fp->_base;
+@@ -417,7 +417,6 @@ static void UNUSED rewind_pipe(FILE * fp
+ /* To fix this #error, either simply remove the #error line and live without
+ * file-type detection with pipes, or add support for your compiler in the
+ * lines above. Test with cat monkey.wav | ./sox --info - */
+- #error FIX NEEDED HERE
+ #define NO_REWIND_PIPE
+ (void)fp;
+ #endif
+++ /dev/null
-Make SoX support uclibc-based toolchains, from:
-http://sourceforge.net/p/sox/bugs/179/
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-Index: sox-14.4.1/src/formats.c
-===================================================================
---- sox-14.4.1.orig/src/formats.c
-+++ sox-14.4.1/src/formats.c
-@@ -409,7 +409,7 @@ static void UNUSED rewind_pipe(FILE * fp
- #if defined _FSTDIO || defined _NEWLIB_VERSION || defined __APPLE__
- fp->_p -= PIPE_AUTO_DETECT_SIZE;
- fp->_r += PIPE_AUTO_DETECT_SIZE;
--#elif defined __GLIBC__
-+#elif defined __GLIBC__ && ! defined __UCLIBC__
- fp->_IO_read_ptr = fp->_IO_read_base;
- #elif defined _MSC_VER || defined _WIN32 || defined _WIN64 || defined _ISO_STDIO_ISO_H
- fp->_ptr = fp->_base;
-@@ -417,7 +417,6 @@ static void UNUSED rewind_pipe(FILE * fp
- /* To fix this #error, either simply remove the #error line and live without
- * file-type detection with pipes, or add support for your compiler in the
- * lines above. Test with cat monkey.wav | ./sox --info - */
-- #error FIX NEEDED HERE
- #define NO_REWIND_PIPE
- (void)fp;
- #endif
--- /dev/null
+Make speex Thumb2 compatible
+
+Patch written by Michael Hope from Linaro, available at
+http://lists.xiph.org/pipermail/speex-dev/2010-November/008041.html.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+diff --git a/libspeex/filters_arm4.h b/libspeex/filters_arm4.h
+index 7a74042..6ec1f75 100644
+--- a/libspeex/filters_arm4.h
++++ b/libspeex/filters_arm4.h
+@@ -47,8 +47,10 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le
+
+ "\tldr %4, [%0], #4 \n"
+ "\tcmps %4, %1 \n"
++ "\tit gt \n"
+ "\tmovgt %1, %4 \n"
+ "\tcmps %4, %3 \n"
++ "\tit lt \n"
+ "\tmovlt %3, %4 \n"
+
+ "\tsubs %2, %2, #1 \n"
+@@ -56,6 +58,7 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le
+
+ "\trsb %3, %3, #0 \n"
+ "\tcmp %1, %3 \n"
++ "\tit lt \n"
+ "\tmovlt %1, %3 \n"
+ : "=r" (dead1), "=r" (max_val), "=r" (dead3), "=r" (dead4),
+ "=r" (dead5), "=r" (dead6)
+diff --git a/libspeex/fixed_arm4.h b/libspeex/fixed_arm4.h
+index b6981ca..b6218ca 100644
+--- a/libspeex/fixed_arm4.h
++++ b/libspeex/fixed_arm4.h
+@@ -69,72 +69,90 @@ static inline short DIV32_16(int a, int b)
+ __asm__ __volatile__ (
+ "\teor %5, %0, %1\n"
+ "\tmovs %4, %0\n"
++ "\tit mi \n"
+ "\trsbmi %0, %0, #0 \n"
+ "\tmovs %4, %1\n"
++ "\tit mi \n"
+ "\trsbmi %1, %1, #0 \n"
+ "\tmov %4, #1\n"
+
+ "\tsubs %3, %0, %1, asl #14 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #14 \n"
+
+ "\tsubs %3, %0, %1, asl #13 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #13 \n"
+
+ "\tsubs %3, %0, %1, asl #12 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #12 \n"
+
+ "\tsubs %3, %0, %1, asl #11 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #11 \n"
+
+ "\tsubs %3, %0, %1, asl #10 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #10 \n"
+
+ "\tsubs %3, %0, %1, asl #9 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #9 \n"
+
+ "\tsubs %3, %0, %1, asl #8 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #8 \n"
+
+ "\tsubs %3, %0, %1, asl #7 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #7 \n"
+
+ "\tsubs %3, %0, %1, asl #6 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #6 \n"
+
+ "\tsubs %3, %0, %1, asl #5 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #5 \n"
+
+ "\tsubs %3, %0, %1, asl #4 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #4 \n"
+
+ "\tsubs %3, %0, %1, asl #3 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #3 \n"
+
+ "\tsubs %3, %0, %1, asl #2 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #2 \n"
+
+ "\tsubs %3, %0, %1, asl #1 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4, asl #1 \n"
+
+ "\tsubs %3, %0, %1 \n"
++ "\titt pl \n"
+ "\tmovpl %0, %3 \n"
+ "\torrpl %2, %2, %4 \n"
+
+ "\tmovs %5, %5, lsr #31 \n"
++ "\tit ne \n"
+ "\trsbne %2, %2, #0 \n"
+ : "=r" (dead1), "=r" (dead2), "=r" (res),
+ "=r" (dead3), "=r" (dead4), "=r" (dead5)
+diff --git a/libspeex/fixed_arm5e.h b/libspeex/fixed_arm5e.h
+index 9b4861c..bdadd02 100644
+--- a/libspeex/fixed_arm5e.h
++++ b/libspeex/fixed_arm5e.h
+@@ -97,72 +97,90 @@ static inline short DIV32_16(int a, int b)
+ __asm__ __volatile__ (
+ "\teor %5, %0, %1\n"
+ "\tmovs %4, %0\n"
++ "\tit mi \n"
+ "\trsbmi %0, %0, #0 \n"
+ "\tmovs %4, %1\n"
++ "\tit mi \n"
+ "\trsbmi %1, %1, #0 \n"
+ "\tmov %4, #1\n"
+
+ "\tsubs %3, %0, %1, asl #14 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #14 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #13 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #13 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #12 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #12 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #11 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #11 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #10 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #10 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #9 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #9 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #8 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #8 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #7 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #7 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #6 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #6 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #5 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #5 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #4 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #4 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #3 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #3 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #2 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #2 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1, asl #1 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4, asl #1 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tsubs %3, %0, %1 \n"
++ "\titt pl \n"
+ "\torrpl %2, %2, %4 \n"
+ "\tmovpl %0, %3 \n"
+
+ "\tmovs %5, %5, lsr #31 \n"
++ "\tit ne \n"
+ "\trsbne %2, %2, #0 \n"
+ : "=r" (dead1), "=r" (dead2), "=r" (res),
+ "=r" (dead3), "=r" (dead4), "=r" (dead5)
+++ /dev/null
-Make speex Thumb2 compatible
-
-Patch written by Michael Hope from Linaro, available at
-http://lists.xiph.org/pipermail/speex-dev/2010-November/008041.html.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-diff --git a/libspeex/filters_arm4.h b/libspeex/filters_arm4.h
-index 7a74042..6ec1f75 100644
---- a/libspeex/filters_arm4.h
-+++ b/libspeex/filters_arm4.h
-@@ -47,8 +47,10 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le
-
- "\tldr %4, [%0], #4 \n"
- "\tcmps %4, %1 \n"
-+ "\tit gt \n"
- "\tmovgt %1, %4 \n"
- "\tcmps %4, %3 \n"
-+ "\tit lt \n"
- "\tmovlt %3, %4 \n"
-
- "\tsubs %2, %2, #1 \n"
-@@ -56,6 +58,7 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le
-
- "\trsb %3, %3, #0 \n"
- "\tcmp %1, %3 \n"
-+ "\tit lt \n"
- "\tmovlt %1, %3 \n"
- : "=r" (dead1), "=r" (max_val), "=r" (dead3), "=r" (dead4),
- "=r" (dead5), "=r" (dead6)
-diff --git a/libspeex/fixed_arm4.h b/libspeex/fixed_arm4.h
-index b6981ca..b6218ca 100644
---- a/libspeex/fixed_arm4.h
-+++ b/libspeex/fixed_arm4.h
-@@ -69,72 +69,90 @@ static inline short DIV32_16(int a, int b)
- __asm__ __volatile__ (
- "\teor %5, %0, %1\n"
- "\tmovs %4, %0\n"
-+ "\tit mi \n"
- "\trsbmi %0, %0, #0 \n"
- "\tmovs %4, %1\n"
-+ "\tit mi \n"
- "\trsbmi %1, %1, #0 \n"
- "\tmov %4, #1\n"
-
- "\tsubs %3, %0, %1, asl #14 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #14 \n"
-
- "\tsubs %3, %0, %1, asl #13 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #13 \n"
-
- "\tsubs %3, %0, %1, asl #12 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #12 \n"
-
- "\tsubs %3, %0, %1, asl #11 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #11 \n"
-
- "\tsubs %3, %0, %1, asl #10 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #10 \n"
-
- "\tsubs %3, %0, %1, asl #9 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #9 \n"
-
- "\tsubs %3, %0, %1, asl #8 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #8 \n"
-
- "\tsubs %3, %0, %1, asl #7 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #7 \n"
-
- "\tsubs %3, %0, %1, asl #6 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #6 \n"
-
- "\tsubs %3, %0, %1, asl #5 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #5 \n"
-
- "\tsubs %3, %0, %1, asl #4 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #4 \n"
-
- "\tsubs %3, %0, %1, asl #3 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #3 \n"
-
- "\tsubs %3, %0, %1, asl #2 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #2 \n"
-
- "\tsubs %3, %0, %1, asl #1 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4, asl #1 \n"
-
- "\tsubs %3, %0, %1 \n"
-+ "\titt pl \n"
- "\tmovpl %0, %3 \n"
- "\torrpl %2, %2, %4 \n"
-
- "\tmovs %5, %5, lsr #31 \n"
-+ "\tit ne \n"
- "\trsbne %2, %2, #0 \n"
- : "=r" (dead1), "=r" (dead2), "=r" (res),
- "=r" (dead3), "=r" (dead4), "=r" (dead5)
-diff --git a/libspeex/fixed_arm5e.h b/libspeex/fixed_arm5e.h
-index 9b4861c..bdadd02 100644
---- a/libspeex/fixed_arm5e.h
-+++ b/libspeex/fixed_arm5e.h
-@@ -97,72 +97,90 @@ static inline short DIV32_16(int a, int b)
- __asm__ __volatile__ (
- "\teor %5, %0, %1\n"
- "\tmovs %4, %0\n"
-+ "\tit mi \n"
- "\trsbmi %0, %0, #0 \n"
- "\tmovs %4, %1\n"
-+ "\tit mi \n"
- "\trsbmi %1, %1, #0 \n"
- "\tmov %4, #1\n"
-
- "\tsubs %3, %0, %1, asl #14 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #14 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #13 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #13 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #12 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #12 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #11 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #11 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #10 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #10 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #9 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #9 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #8 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #8 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #7 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #7 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #6 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #6 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #5 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #5 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #4 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #4 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #3 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #3 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #2 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #2 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1, asl #1 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4, asl #1 \n"
- "\tmovpl %0, %3 \n"
-
- "\tsubs %3, %0, %1 \n"
-+ "\titt pl \n"
- "\torrpl %2, %2, %4 \n"
- "\tmovpl %0, %3 \n"
-
- "\tmovs %5, %5, lsr #31 \n"
-+ "\tit ne \n"
- "\trsbne %2, %2, #0 \n"
- : "=r" (dead1), "=r" (dead2), "=r" (res),
- "=r" (dead3), "=r" (dead4), "=r" (dead5)
--- /dev/null
+From 0d3767853ca179ce04a9b312d7a30d33d1266a3b Mon Sep 17 00:00:00 2001
+From: Axel Lin <axel.lin@ingics.com>
+Date: Thu, 10 Oct 2013 12:36:40 +0800
+Subject: [PATCH] red_tunnel_worker: Fix build error due to missing monitor_latency argument
+
+Fix missing monitor_latency argument in red_channel_client_create call.
+
+Signed-off-by: Axel Lin <axel.lin@ingics.com>
+---
+ server/red_tunnel_worker.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/server/red_tunnel_worker.c b/server/red_tunnel_worker.c
+index 97dcafd..6781d73 100644
+--- a/server/red_tunnel_worker.c
++++ b/server/red_tunnel_worker.c
+@@ -3417,7 +3417,7 @@ static void handle_tunnel_channel_link(RedChannel *channel, RedClient *client,
+ }
+
+ tcc = (TunnelChannelClient*)red_channel_client_create(sizeof(TunnelChannelClient),
+- channel, client, stream,
++ channel, client, stream, FALSE,
+ 0, NULL, 0, NULL);
+ if (!tcc) {
+ return;
+--
+1.8.1.2
+
+++ /dev/null
-From 0d3767853ca179ce04a9b312d7a30d33d1266a3b Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin@ingics.com>
-Date: Thu, 10 Oct 2013 12:36:40 +0800
-Subject: [PATCH] red_tunnel_worker: Fix build error due to missing monitor_latency argument
-
-Fix missing monitor_latency argument in red_channel_client_create call.
-
-Signed-off-by: Axel Lin <axel.lin@ingics.com>
----
- server/red_tunnel_worker.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/server/red_tunnel_worker.c b/server/red_tunnel_worker.c
-index 97dcafd..6781d73 100644
---- a/server/red_tunnel_worker.c
-+++ b/server/red_tunnel_worker.c
-@@ -3417,7 +3417,7 @@ static void handle_tunnel_channel_link(RedChannel *channel, RedClient *client,
- }
-
- tcc = (TunnelChannelClient*)red_channel_client_create(sizeof(TunnelChannelClient),
-- channel, client, stream,
-+ channel, client, stream, FALSE,
- 0, NULL, 0, NULL);
- if (!tcc) {
- return;
---
-1.8.1.2
-
--- /dev/null
+Link to libncurses instead of the legacy libcurses.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura statserial-1.1.orig/Makefile statserial-1.1/Makefile
+--- statserial-1.1.orig/Makefile 2014-07-04 12:47:41.279440415 -0300
++++ statserial-1.1/Makefile 2014-07-04 12:47:47.948665740 -0300
+@@ -10,7 +10,7 @@
+ LDFLAGS = -s -N
+
+ statserial: statserial.o
+- $(LD) $(LDFLAGS) -o statserial statserial.o -lcurses
++ $(LD) $(LDFLAGS) -o statserial statserial.o -lncurses
+
+ statserial.o: statserial.c
+ $(CC) $(CFLAGS) -c statserial.c
+++ /dev/null
-Link to libncurses instead of the legacy libcurses.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura statserial-1.1.orig/Makefile statserial-1.1/Makefile
---- statserial-1.1.orig/Makefile 2014-07-04 12:47:41.279440415 -0300
-+++ statserial-1.1/Makefile 2014-07-04 12:47:47.948665740 -0300
-@@ -10,7 +10,7 @@
- LDFLAGS = -s -N
-
- statserial: statserial.o
-- $(LD) $(LDFLAGS) -o statserial statserial.o -lcurses
-+ $(LD) $(LDFLAGS) -o statserial statserial.o -lncurses
-
- statserial.o: statserial.c
- $(CC) $(CFLAGS) -c statserial.c
--- /dev/null
+Add a patch to fix the sa_restorer problems in strace.
+
+This patch has been applied upstream:
+ https://sourceforge.net/p/strace/code/ci/c3a5c01051ba29a9f421f4d45d96bbc32df2b796/
+
+Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
+
+From c3a5c01051ba29a9f421f4d45d96bbc32df2b796 Mon Sep 17 00:00:00 2001
+From: Vicente Olivert Riera <vincent@gentoo.org>
+Date: Thu, 11 Sep 2014 20:05:18 +0100
+Subject: [PATCH] sigaction: wrap sa_restorer in #ifdef SA_RESTORER consistently
+
+Wrap sa_restorer member definitions in #ifdef SA_RESTORER to be
+consistent with their use.
+If an architecture does not provide sa_restorer members but still
+defines SA_RESTORER macro, the latter has to be explicitly undefined.
+
+This change fixes compilation failures like this one:
+signal.c: In function 'decode_old_sigaction':
+signal.c:631:21: error: 'struct old_sigaction' has no member named 'sa_restorer'
+signal.c: In function 'decode_new_sigaction':
+signal.c:1224:21: error: 'struct new_sigaction' has no member named 'sa_restorer'
+
+* signal.c (struct old_sigaction, struct old_sigaction32,
+struct new_sigaction, struct new_sigaction32):
+Wrap sa_restorer member in #ifdef SA_RESTORER.
+(decode_old_sigaction, decode_new_sigaction):
+Wrap use of sa32.sa_restorer in #ifdef SA_RESTORER.
+
+Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
+---
+ signal.c | 18 ++++++++++++++----
+ 1 files changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/signal.c b/signal.c
+index 74e0fd9..5855d13 100644
+--- a/signal.c
++++ b/signal.c
+@@ -559,8 +559,10 @@ struct old_sigaction {
+ void (*__sa_handler)(int);
+ unsigned long sa_mask;
+ unsigned long sa_flags;
+- void (*sa_restorer)(void);
+ #endif /* !MIPS */
++#ifdef SA_RESTORER
++ void (*sa_restorer)(void);
++#endif
+ };
+
+ struct old_sigaction32 {
+@@ -568,7 +570,9 @@ struct old_sigaction32 {
+ uint32_t __sa_handler;
+ uint32_t sa_mask;
+ uint32_t sa_flags;
++#ifdef SA_RESTORER
+ uint32_t sa_restorer;
++#endif
+ };
+
+ static void
+@@ -594,7 +598,9 @@ decode_old_sigaction(struct tcb *tcp, long addr)
+ memset(&sa, 0, sizeof(sa));
+ sa.__sa_handler = (void*)(uintptr_t)sa32.__sa_handler;
+ sa.sa_flags = sa32.sa_flags;
++#ifdef SA_RESTORER
+ sa.sa_restorer = (void*)(uintptr_t)sa32.sa_restorer;
++#endif
+ sa.sa_mask = sa32.sa_mask;
+ }
+ } else
+@@ -1138,10 +1144,10 @@ struct new_sigaction
+ #else
+ void (*__sa_handler)(int);
+ unsigned long sa_flags;
+-# if !defined(ALPHA) && !defined(HPPA) && !defined(IA64)
+- void (*sa_restorer)(void);
+-# endif /* !ALPHA && !HPPA && !IA64 */
+ #endif /* !MIPS */
++#ifdef SA_RESTORER
++ void (*sa_restorer)(void);
++#endif
+ /* Kernel treats sa_mask as an array of longs. */
+ unsigned long sa_mask[NSIG / sizeof(long) ? NSIG / sizeof(long) : 1];
+ };
+@@ -1150,7 +1156,9 @@ struct new_sigaction32
+ {
+ uint32_t __sa_handler;
+ uint32_t sa_flags;
++#ifdef SA_RESTORER
+ uint32_t sa_restorer;
++#endif
+ uint32_t sa_mask[2 * (NSIG / sizeof(long) ? NSIG / sizeof(long) : 1)];
+ };
+
+@@ -1176,7 +1184,9 @@ decode_new_sigaction(struct tcb *tcp, long addr)
+ memset(&sa, 0, sizeof(sa));
+ sa.__sa_handler = (void*)(unsigned long)sa32.__sa_handler;
+ sa.sa_flags = sa32.sa_flags;
++#ifdef SA_RESTORER
+ sa.sa_restorer = (void*)(unsigned long)sa32.sa_restorer;
++#endif
+ /* Kernel treats sa_mask as an array of longs.
+ * For 32-bit process, "long" is uint32_t, thus, for example,
+ * 32th bit in sa_mask will end up as bit 0 in sa_mask[1].
+--
+1.7.1
+
+++ /dev/null
-Add a patch to fix the sa_restorer problems in strace.
-
-This patch has been applied upstream:
- https://sourceforge.net/p/strace/code/ci/c3a5c01051ba29a9f421f4d45d96bbc32df2b796/
-
-Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
-
-From c3a5c01051ba29a9f421f4d45d96bbc32df2b796 Mon Sep 17 00:00:00 2001
-From: Vicente Olivert Riera <vincent@gentoo.org>
-Date: Thu, 11 Sep 2014 20:05:18 +0100
-Subject: [PATCH] sigaction: wrap sa_restorer in #ifdef SA_RESTORER consistently
-
-Wrap sa_restorer member definitions in #ifdef SA_RESTORER to be
-consistent with their use.
-If an architecture does not provide sa_restorer members but still
-defines SA_RESTORER macro, the latter has to be explicitly undefined.
-
-This change fixes compilation failures like this one:
-signal.c: In function 'decode_old_sigaction':
-signal.c:631:21: error: 'struct old_sigaction' has no member named 'sa_restorer'
-signal.c: In function 'decode_new_sigaction':
-signal.c:1224:21: error: 'struct new_sigaction' has no member named 'sa_restorer'
-
-* signal.c (struct old_sigaction, struct old_sigaction32,
-struct new_sigaction, struct new_sigaction32):
-Wrap sa_restorer member in #ifdef SA_RESTORER.
-(decode_old_sigaction, decode_new_sigaction):
-Wrap use of sa32.sa_restorer in #ifdef SA_RESTORER.
-
-Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com>
----
- signal.c | 18 ++++++++++++++----
- 1 files changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/signal.c b/signal.c
-index 74e0fd9..5855d13 100644
---- a/signal.c
-+++ b/signal.c
-@@ -559,8 +559,10 @@ struct old_sigaction {
- void (*__sa_handler)(int);
- unsigned long sa_mask;
- unsigned long sa_flags;
-- void (*sa_restorer)(void);
- #endif /* !MIPS */
-+#ifdef SA_RESTORER
-+ void (*sa_restorer)(void);
-+#endif
- };
-
- struct old_sigaction32 {
-@@ -568,7 +570,9 @@ struct old_sigaction32 {
- uint32_t __sa_handler;
- uint32_t sa_mask;
- uint32_t sa_flags;
-+#ifdef SA_RESTORER
- uint32_t sa_restorer;
-+#endif
- };
-
- static void
-@@ -594,7 +598,9 @@ decode_old_sigaction(struct tcb *tcp, long addr)
- memset(&sa, 0, sizeof(sa));
- sa.__sa_handler = (void*)(uintptr_t)sa32.__sa_handler;
- sa.sa_flags = sa32.sa_flags;
-+#ifdef SA_RESTORER
- sa.sa_restorer = (void*)(uintptr_t)sa32.sa_restorer;
-+#endif
- sa.sa_mask = sa32.sa_mask;
- }
- } else
-@@ -1138,10 +1144,10 @@ struct new_sigaction
- #else
- void (*__sa_handler)(int);
- unsigned long sa_flags;
--# if !defined(ALPHA) && !defined(HPPA) && !defined(IA64)
-- void (*sa_restorer)(void);
--# endif /* !ALPHA && !HPPA && !IA64 */
- #endif /* !MIPS */
-+#ifdef SA_RESTORER
-+ void (*sa_restorer)(void);
-+#endif
- /* Kernel treats sa_mask as an array of longs. */
- unsigned long sa_mask[NSIG / sizeof(long) ? NSIG / sizeof(long) : 1];
- };
-@@ -1150,7 +1156,9 @@ struct new_sigaction32
- {
- uint32_t __sa_handler;
- uint32_t sa_flags;
-+#ifdef SA_RESTORER
- uint32_t sa_restorer;
-+#endif
- uint32_t sa_mask[2 * (NSIG / sizeof(long) ? NSIG / sizeof(long) : 1)];
- };
-
-@@ -1176,7 +1184,9 @@ decode_new_sigaction(struct tcb *tcp, long addr)
- memset(&sa, 0, sizeof(sa));
- sa.__sa_handler = (void*)(unsigned long)sa32.__sa_handler;
- sa.sa_flags = sa32.sa_flags;
-+#ifdef SA_RESTORER
- sa.sa_restorer = (void*)(unsigned long)sa32.sa_restorer;
-+#endif
- /* Kernel treats sa_mask as an array of longs.
- * For 32-bit process, "long" is uint32_t, thus, for example,
- * 32th bit in sa_mask will end up as bit 0 in sa_mask[1].
---
-1.7.1
-
--- /dev/null
+Remove largefile
+
+Otherwise it doesn't compile in uClibc without largefile.
+
+If the toolchain does support largefile, it will still work on large files
+anyway.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+---
+Upstream status: mail sent to apw@rossby.metr.ou.edu
+---
+diff -rup stress-1.0.4.orig/src/Makefile.am stress-1.0.4/src/Makefile.am
+--- stress-1.0.4.orig/src/Makefile.am 2009-12-03 02:04:05.000000000 +0100
++++ stress-1.0.4/src/Makefile.am 2012-05-04 23:09:48.229842463 +0200
+@@ -1,7 +1,5 @@
+ MAINTAINERCLEANFILES = Makefile.in
+
+-AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+-
+ bin_PROGRAMS = stress
+ stress_SOURCES = stress.c
+ stress_MANS = stress.1
+++ /dev/null
-Remove largefile
-
-Otherwise it doesn't compile in uClibc without largefile.
-
-If the toolchain does support largefile, it will still work on large files
-anyway.
-
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
----
-Upstream status: mail sent to apw@rossby.metr.ou.edu
----
-diff -rup stress-1.0.4.orig/src/Makefile.am stress-1.0.4/src/Makefile.am
---- stress-1.0.4.orig/src/Makefile.am 2009-12-03 02:04:05.000000000 +0100
-+++ stress-1.0.4/src/Makefile.am 2012-05-04 23:09:48.229842463 +0200
-@@ -1,7 +1,5 @@
- MAINTAINERCLEANFILES = Makefile.in
-
--AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
--
- bin_PROGRAMS = stress
- stress_SOURCES = stress.c
- stress_MANS = stress.1
--- /dev/null
+# HG changeset patch
+# User Todd C. Miller <Todd.Miller@courtesan.com>
+# Date 1406550172 21600
+# Node ID 57deb66ef8ffc0f551d460e15a34f7df78f54d2a
+# Parent f547bf80c436c07ddb1c7385d22db96862ae7e4f
+Fix compilation on systems w/o netgroups.
+
+Status: upstream
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -r f547bf80c436 -r 57deb66ef8ff plugins/sudoers/match.c
+--- a/plugins/sudoers/match.c Sat Jul 26 06:07:34 2014 -0600
++++ b/plugins/sudoers/match.c Mon Jul 28 06:22:52 2014 -0600
+@@ -972,12 +972,12 @@
+ rc = true;
+ else if (lhost != shost && innetgr(netgr, shost, user, domain))
+ rc = true;
+-#endif /* HAVE_INNETGR */
+
+ sudo_debug_printf(SUDO_DEBUG_DEBUG|SUDO_DEBUG_LINENO,
+ "netgroup %s matches (%s|%s, %s, %s): %s", netgr, lhost ? lhost : "",
+ shost ? shost : "", user ? user : "", domain ? domain : "",
+ rc ? "true" : "false");
++#endif /* HAVE_INNETGR */
+
+ debug_return_bool(rc);
+ }
+
--- /dev/null
+Don't use SSP_CFLAGS and PIE_CFLAGS for host tools.
+http://www.sudo.ws/bugs/show_bug.cgi?id=662
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura sudo-1.8.10p3.orig/compat/Makefile.in sudo-1.8.10p3/compat/Makefile.in
+--- sudo-1.8.10p3.orig/compat/Makefile.in 2014-03-07 18:51:19.000000000 -0300
++++ sudo-1.8.10p3/compat/Makefile.in 2014-09-20 07:29:30.913108029 -0300
+@@ -96,10 +96,10 @@
+ ./mksigname > $@
+
+ mksiglist: $(srcdir)/mksiglist.c $(srcdir)/mksiglist.h $(incdir)/missing.h $(top_builddir)/config.h
+- $(CC) $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/mksiglist.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/mksiglist.c -o $@
+
+ mksigname: $(srcdir)/mksigname.c $(srcdir)/mksigname.h $(incdir)/missing.h $(top_builddir)/config.h
+- $(CC) $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/mksigname.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/mksigname.c -o $@
+
+ fnm_test: fnm_test.o libreplace.la
+ $(LIBTOOL) --mode=link $(CC) -o $@ fnm_test.o libreplace.la $(PIE_LDFLAGS) $(SSP_LDFLAGS)
+++ /dev/null
-# HG changeset patch
-# User Todd C. Miller <Todd.Miller@courtesan.com>
-# Date 1406550172 21600
-# Node ID 57deb66ef8ffc0f551d460e15a34f7df78f54d2a
-# Parent f547bf80c436c07ddb1c7385d22db96862ae7e4f
-Fix compilation on systems w/o netgroups.
-
-Status: upstream
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -r f547bf80c436 -r 57deb66ef8ff plugins/sudoers/match.c
---- a/plugins/sudoers/match.c Sat Jul 26 06:07:34 2014 -0600
-+++ b/plugins/sudoers/match.c Mon Jul 28 06:22:52 2014 -0600
-@@ -972,12 +972,12 @@
- rc = true;
- else if (lhost != shost && innetgr(netgr, shost, user, domain))
- rc = true;
--#endif /* HAVE_INNETGR */
-
- sudo_debug_printf(SUDO_DEBUG_DEBUG|SUDO_DEBUG_LINENO,
- "netgroup %s matches (%s|%s, %s, %s): %s", netgr, lhost ? lhost : "",
- shost ? shost : "", user ? user : "", domain ? domain : "",
- rc ? "true" : "false");
-+#endif /* HAVE_INNETGR */
-
- debug_return_bool(rc);
- }
-
+++ /dev/null
-Don't use SSP_CFLAGS and PIE_CFLAGS for host tools.
-http://www.sudo.ws/bugs/show_bug.cgi?id=662
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura sudo-1.8.10p3.orig/compat/Makefile.in sudo-1.8.10p3/compat/Makefile.in
---- sudo-1.8.10p3.orig/compat/Makefile.in 2014-03-07 18:51:19.000000000 -0300
-+++ sudo-1.8.10p3/compat/Makefile.in 2014-09-20 07:29:30.913108029 -0300
-@@ -96,10 +96,10 @@
- ./mksigname > $@
-
- mksiglist: $(srcdir)/mksiglist.c $(srcdir)/mksiglist.h $(incdir)/missing.h $(top_builddir)/config.h
-- $(CC) $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/mksiglist.c -o $@
-+ $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/mksiglist.c -o $@
-
- mksigname: $(srcdir)/mksigname.c $(srcdir)/mksigname.h $(incdir)/missing.h $(top_builddir)/config.h
-- $(CC) $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(srcdir)/mksigname.c -o $@
-+ $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/mksigname.c -o $@
-
- fnm_test: fnm_test.o libreplace.la
- $(LIBTOOL) --mode=link $(CC) -o $@ fnm_test.o libreplace.la $(PIE_LDFLAGS) $(SSP_LDFLAGS)
--- /dev/null
+From 058d5e8cd90d117535b5d314fd9e15c70028ff20 Mon Sep 17 00:00:00 2001
+From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+Date: Mon, 21 Apr 2014 19:31:23 +0200
+Subject: [PATCH] Add missing GLchar definitions.
+
+The GLES and GLES2 header files provided by sunxi-mali do not define the
+type "GLchar" and use "char" instead in the prototype of some functions.
+
+This issue has been reported upstream some time ago, but the pull
+request has not been merged yet. (See
+https://github.com/linux-sunxi/sunxi-mali/pull/8).
+
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+---
+ include/GLES/gl.h | 1 +
+ include/GLES2/gl2.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/include/GLES/gl.h b/include/GLES/gl.h
+index 858f394..a6bb591 100644
+--- a/include/GLES/gl.h
++++ b/include/GLES/gl.h
+@@ -29,6 +29,7 @@ typedef float GLfloat;
+ typedef float GLclampf;
+ typedef signed int GLfixed;
+ typedef signed int GLclampx;
++typedef char GLchar;
+
+ typedef int * GLintptr;
+ typedef int * GLsizeiptr;
+diff --git a/include/GLES2/gl2.h b/include/GLES2/gl2.h
+index 59e376c..90d96bb 100644
+--- a/include/GLES2/gl2.h
++++ b/include/GLES2/gl2.h
+@@ -32,6 +32,7 @@ typedef unsigned int GLuint;
+ typedef khronos_float_t GLfloat;
+ typedef khronos_float_t GLclampf;
+ typedef khronos_int32_t GLfixed;
++typedef char GLchar;
+
+ /* GL types for handling large vertex buffer objects */
+ typedef khronos_intptr_t GLintptr;
+--
+1.9.0
+
+++ /dev/null
-From 058d5e8cd90d117535b5d314fd9e15c70028ff20 Mon Sep 17 00:00:00 2001
-From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
-Date: Mon, 21 Apr 2014 19:31:23 +0200
-Subject: [PATCH] Add missing GLchar definitions.
-
-The GLES and GLES2 header files provided by sunxi-mali do not define the
-type "GLchar" and use "char" instead in the prototype of some functions.
-
-This issue has been reported upstream some time ago, but the pull
-request has not been merged yet. (See
-https://github.com/linux-sunxi/sunxi-mali/pull/8).
-
-Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
----
- include/GLES/gl.h | 1 +
- include/GLES2/gl2.h | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/include/GLES/gl.h b/include/GLES/gl.h
-index 858f394..a6bb591 100644
---- a/include/GLES/gl.h
-+++ b/include/GLES/gl.h
-@@ -29,6 +29,7 @@ typedef float GLfloat;
- typedef float GLclampf;
- typedef signed int GLfixed;
- typedef signed int GLclampx;
-+typedef char GLchar;
-
- typedef int * GLintptr;
- typedef int * GLsizeiptr;
-diff --git a/include/GLES2/gl2.h b/include/GLES2/gl2.h
-index 59e376c..90d96bb 100644
---- a/include/GLES2/gl2.h
-+++ b/include/GLES2/gl2.h
-@@ -32,6 +32,7 @@ typedef unsigned int GLuint;
- typedef khronos_float_t GLfloat;
- typedef khronos_float_t GLclampf;
- typedef khronos_int32_t GLfixed;
-+typedef char GLchar;
-
- /* GL types for handling large vertex buffer objects */
- typedef khronos_intptr_t GLintptr;
---
-1.9.0
-
--- /dev/null
+[PATCH] fix build with modern toolchains
+
+Several files are missing the correct includes for exit/getenvmemcpy/strlen/..
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ lib/arch/CArchDaemonUnix.cpp | 1 +
+ lib/arch/CMultibyte.cpp | 1 +
+ lib/base/CStringUtil.cpp | 1 +
+ lib/client/CClient.cpp | 3 ++-
+ lib/client/CServerProxy.cpp | 1 +
+ lib/net/CTCPSocket.cpp | 2 +-
+ lib/platform/CXWindowsScreen.cpp | 1 +
+ lib/server/CClientProxy1_3.cpp | 1 +
+ lib/server/CServer.cpp | 1 +
+ lib/synergy/CPacketStreamFilter.cpp | 1 +
+ lib/synergy/IKeyState.cpp | 1 +
+ lib/synergy/IPrimaryScreen.cpp | 1 +
+ 12 files changed, 13 insertions(+), 2 deletions(-)
+
+Index: synergy-1.3.1/lib/arch/CArchDaemonUnix.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/arch/CArchDaemonUnix.cpp
++++ synergy-1.3.1/lib/arch/CArchDaemonUnix.cpp
+@@ -19,6 +19,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <errno.h>
++#include <stdlib.h>
+
+ //
+ // CArchDaemonUnix
+Index: synergy-1.3.1/lib/arch/CMultibyte.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/arch/CMultibyte.cpp
++++ synergy-1.3.1/lib/arch/CMultibyte.cpp
+@@ -19,6 +19,7 @@
+ #include "CArch.h"
+ #include <limits.h>
+ #include <string.h>
++#include <stdlib.h>
+ #if HAVE_LOCALE_H
+ # include <locale.h>
+ #endif
+Index: synergy-1.3.1/lib/base/CStringUtil.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/base/CStringUtil.cpp
++++ synergy-1.3.1/lib/base/CStringUtil.cpp
+@@ -19,6 +19,7 @@
+ #include <cctype>
+ #include <cstdio>
+ #include <cstdlib>
++#include <cstring>
+ #include <algorithm>
+
+ //
+Index: synergy-1.3.1/lib/client/CClient.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/client/CClient.cpp
++++ synergy-1.3.1/lib/client/CClient.cpp
+@@ -26,7 +26,8 @@
+ #include "CLog.h"
+ #include "IEventQueue.h"
+ #include "TMethodEventJob.h"
+-
++#include <string.h>
++#include <stdlib.h>
+ //
+ // CClient
+ //
+Index: synergy-1.3.1/lib/client/CServerProxy.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/client/CServerProxy.cpp
++++ synergy-1.3.1/lib/client/CServerProxy.cpp
+@@ -24,6 +24,7 @@
+ #include "TMethodEventJob.h"
+ #include "XBase.h"
+ #include <memory>
++#include <string.h>
+
+ //
+ // CServerProxy
+Index: synergy-1.3.1/lib/net/CTCPSocket.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/net/CTCPSocket.cpp
++++ synergy-1.3.1/lib/net/CTCPSocket.cpp
+@@ -24,7 +24,7 @@
+ #include "CArch.h"
+ #include "XArch.h"
+ #include <string.h>
+-
++#include <stdlib.h>
+ //
+ // CTCPSocket
+ //
+Index: synergy-1.3.1/lib/platform/CXWindowsScreen.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/platform/CXWindowsScreen.cpp
++++ synergy-1.3.1/lib/platform/CXWindowsScreen.cpp
+@@ -27,6 +27,7 @@
+ #include "IEventQueue.h"
+ #include "TMethodEventJob.h"
+ #include <cstring>
++#include <stdlib.h>
+ #if X_DISPLAY_MISSING
+ # error X11 is required to build synergy
+ #else
+Index: synergy-1.3.1/lib/server/CClientProxy1_3.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/server/CClientProxy1_3.cpp
++++ synergy-1.3.1/lib/server/CClientProxy1_3.cpp
+@@ -17,6 +17,7 @@
+ #include "CLog.h"
+ #include "IEventQueue.h"
+ #include "TMethodEventJob.h"
++#include <string.h>
+
+ //
+ // CClientProxy1_3
+Index: synergy-1.3.1/lib/server/CServer.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/server/CServer.cpp
++++ synergy-1.3.1/lib/server/CServer.cpp
+@@ -29,6 +29,7 @@
+ #include "TMethodEventJob.h"
+ #include "CArch.h"
+ #include <string.h>
++#include <stdlib.h>
+
+ //
+ // CServer
+Index: synergy-1.3.1/lib/synergy/CPacketStreamFilter.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/synergy/CPacketStreamFilter.cpp
++++ synergy-1.3.1/lib/synergy/CPacketStreamFilter.cpp
+@@ -16,6 +16,7 @@
+ #include "IEventQueue.h"
+ #include "CLock.h"
+ #include "TMethodEventJob.h"
++#include <string.h>
+
+ //
+ // CPacketStreamFilter
+Index: synergy-1.3.1/lib/synergy/IKeyState.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/synergy/IKeyState.cpp
++++ synergy-1.3.1/lib/synergy/IKeyState.cpp
+@@ -14,6 +14,7 @@
+
+ #include "IKeyState.h"
+ #include <string.h>
++#include <stdlib.h>
+
+ //
+ // IKeyState
+Index: synergy-1.3.1/lib/synergy/IPrimaryScreen.cpp
+===================================================================
+--- synergy-1.3.1.orig/lib/synergy/IPrimaryScreen.cpp
++++ synergy-1.3.1/lib/synergy/IPrimaryScreen.cpp
+@@ -13,6 +13,7 @@
+ */
+
+ #include "IPrimaryScreen.h"
++#include <stdlib.h>
+
+ //
+ // IPrimaryScreen
--- /dev/null
+Remove -Werror from CXXFLAGS
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+Index: synergy-1.3.1/configure.in
+===================================================================
+--- synergy-1.3.1.orig/configure.in
++++ synergy-1.3.1/configure.in
+@@ -239,7 +239,6 @@ dnl checks for system services
+
+ dnl enable maximum compiler warnings and warnings are errors.
+ ACX_CXX_WARNINGS
+-ACX_CXX_WARNINGS_ARE_ERRORS
+
+ dnl adjust compiler and linker variables
+ CXXFLAGS="$CXXFLAGS $SYNERGY_CXXFLAGS $ARCH_CFLAGS"
+++ /dev/null
-[PATCH] fix build with modern toolchains
-
-Several files are missing the correct includes for exit/getenvmemcpy/strlen/..
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- lib/arch/CArchDaemonUnix.cpp | 1 +
- lib/arch/CMultibyte.cpp | 1 +
- lib/base/CStringUtil.cpp | 1 +
- lib/client/CClient.cpp | 3 ++-
- lib/client/CServerProxy.cpp | 1 +
- lib/net/CTCPSocket.cpp | 2 +-
- lib/platform/CXWindowsScreen.cpp | 1 +
- lib/server/CClientProxy1_3.cpp | 1 +
- lib/server/CServer.cpp | 1 +
- lib/synergy/CPacketStreamFilter.cpp | 1 +
- lib/synergy/IKeyState.cpp | 1 +
- lib/synergy/IPrimaryScreen.cpp | 1 +
- 12 files changed, 13 insertions(+), 2 deletions(-)
-
-Index: synergy-1.3.1/lib/arch/CArchDaemonUnix.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/arch/CArchDaemonUnix.cpp
-+++ synergy-1.3.1/lib/arch/CArchDaemonUnix.cpp
-@@ -19,6 +19,7 @@
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <errno.h>
-+#include <stdlib.h>
-
- //
- // CArchDaemonUnix
-Index: synergy-1.3.1/lib/arch/CMultibyte.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/arch/CMultibyte.cpp
-+++ synergy-1.3.1/lib/arch/CMultibyte.cpp
-@@ -19,6 +19,7 @@
- #include "CArch.h"
- #include <limits.h>
- #include <string.h>
-+#include <stdlib.h>
- #if HAVE_LOCALE_H
- # include <locale.h>
- #endif
-Index: synergy-1.3.1/lib/base/CStringUtil.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/base/CStringUtil.cpp
-+++ synergy-1.3.1/lib/base/CStringUtil.cpp
-@@ -19,6 +19,7 @@
- #include <cctype>
- #include <cstdio>
- #include <cstdlib>
-+#include <cstring>
- #include <algorithm>
-
- //
-Index: synergy-1.3.1/lib/client/CClient.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/client/CClient.cpp
-+++ synergy-1.3.1/lib/client/CClient.cpp
-@@ -26,7 +26,8 @@
- #include "CLog.h"
- #include "IEventQueue.h"
- #include "TMethodEventJob.h"
--
-+#include <string.h>
-+#include <stdlib.h>
- //
- // CClient
- //
-Index: synergy-1.3.1/lib/client/CServerProxy.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/client/CServerProxy.cpp
-+++ synergy-1.3.1/lib/client/CServerProxy.cpp
-@@ -24,6 +24,7 @@
- #include "TMethodEventJob.h"
- #include "XBase.h"
- #include <memory>
-+#include <string.h>
-
- //
- // CServerProxy
-Index: synergy-1.3.1/lib/net/CTCPSocket.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/net/CTCPSocket.cpp
-+++ synergy-1.3.1/lib/net/CTCPSocket.cpp
-@@ -24,7 +24,7 @@
- #include "CArch.h"
- #include "XArch.h"
- #include <string.h>
--
-+#include <stdlib.h>
- //
- // CTCPSocket
- //
-Index: synergy-1.3.1/lib/platform/CXWindowsScreen.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/platform/CXWindowsScreen.cpp
-+++ synergy-1.3.1/lib/platform/CXWindowsScreen.cpp
-@@ -27,6 +27,7 @@
- #include "IEventQueue.h"
- #include "TMethodEventJob.h"
- #include <cstring>
-+#include <stdlib.h>
- #if X_DISPLAY_MISSING
- # error X11 is required to build synergy
- #else
-Index: synergy-1.3.1/lib/server/CClientProxy1_3.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/server/CClientProxy1_3.cpp
-+++ synergy-1.3.1/lib/server/CClientProxy1_3.cpp
-@@ -17,6 +17,7 @@
- #include "CLog.h"
- #include "IEventQueue.h"
- #include "TMethodEventJob.h"
-+#include <string.h>
-
- //
- // CClientProxy1_3
-Index: synergy-1.3.1/lib/server/CServer.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/server/CServer.cpp
-+++ synergy-1.3.1/lib/server/CServer.cpp
-@@ -29,6 +29,7 @@
- #include "TMethodEventJob.h"
- #include "CArch.h"
- #include <string.h>
-+#include <stdlib.h>
-
- //
- // CServer
-Index: synergy-1.3.1/lib/synergy/CPacketStreamFilter.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/synergy/CPacketStreamFilter.cpp
-+++ synergy-1.3.1/lib/synergy/CPacketStreamFilter.cpp
-@@ -16,6 +16,7 @@
- #include "IEventQueue.h"
- #include "CLock.h"
- #include "TMethodEventJob.h"
-+#include <string.h>
-
- //
- // CPacketStreamFilter
-Index: synergy-1.3.1/lib/synergy/IKeyState.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/synergy/IKeyState.cpp
-+++ synergy-1.3.1/lib/synergy/IKeyState.cpp
-@@ -14,6 +14,7 @@
-
- #include "IKeyState.h"
- #include <string.h>
-+#include <stdlib.h>
-
- //
- // IKeyState
-Index: synergy-1.3.1/lib/synergy/IPrimaryScreen.cpp
-===================================================================
---- synergy-1.3.1.orig/lib/synergy/IPrimaryScreen.cpp
-+++ synergy-1.3.1/lib/synergy/IPrimaryScreen.cpp
-@@ -13,6 +13,7 @@
- */
-
- #include "IPrimaryScreen.h"
-+#include <stdlib.h>
-
- //
- // IPrimaryScreen
+++ /dev/null
-Remove -Werror from CXXFLAGS
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: synergy-1.3.1/configure.in
-===================================================================
---- synergy-1.3.1.orig/configure.in
-+++ synergy-1.3.1/configure.in
-@@ -239,7 +239,6 @@ dnl checks for system services
-
- dnl enable maximum compiler warnings and warnings are errors.
- ACX_CXX_WARNINGS
--ACX_CXX_WARNINGS_ARE_ERRORS
-
- dnl adjust compiler and linker variables
- CXXFLAGS="$CXXFLAGS $SYNERGY_CXXFLAGS $ARCH_CFLAGS"
--- /dev/null
+On uclibc elf.h does not have GNU extentions but we need this define
+so we define it locally if its not getting it from elf.h
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+
+Index: git/elfparser.h
+===================================================================
+--- git.orig/elfparser.h 2011-07-16 18:57:41.000000000 -0700
++++ git/elfparser.h 2011-07-16 20:28:54.733829895 -0700
+@@ -17,6 +17,10 @@
+ */
+ #include <glib.h>
+
++#ifndef NT_GNU_BUILD_ID
++#define NT_GNU_BUILD_ID 3
++#endif
++
+ typedef struct ElfSym ElfSym;
+ typedef struct ElfParser ElfParser;
+
+++ /dev/null
-On uclibc elf.h does not have GNU extentions but we need this define
-so we define it locally if its not getting it from elf.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-Index: git/elfparser.h
-===================================================================
---- git.orig/elfparser.h 2011-07-16 18:57:41.000000000 -0700
-+++ git/elfparser.h 2011-07-16 20:28:54.733829895 -0700
-@@ -17,6 +17,10 @@
- */
- #include <glib.h>
-
-+#ifndef NT_GNU_BUILD_ID
-+#define NT_GNU_BUILD_ID 3
-+#endif
-+
- typedef struct ElfSym ElfSym;
- typedef struct ElfParser ElfParser;
-
--- /dev/null
+From 4e6a75eed3602f10aff516f49c8088c6da8db9df Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 31 Aug 2014 12:11:57 +0200
+Subject: [PATCH 1/1] cmake: use the standard CMake flag to drive the shared
+ object build
+
+If BUILD_SHARED_LIBS is set and ENABLE_STATIC undefined, then drive
+ENABLE_STATIC with the BUILD_SHARED_LIBS value.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ CMakeLists.txt | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 317ffa1..9931957 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2,7 +2,17 @@ project(taglib)
+
+ cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
+
+-option(ENABLE_STATIC "Make static version of libtag" OFF)
++# Use the standard CMake flag to drive the shared object build.
++if(DEFINED BUILD_SHARED_LIBS AND NOT DEFINED ENABLE_STATIC)
++ if(BUILD_SHARED_LIBS)
++ set(ENABLE_STATIC OFF)
++ else()
++ set(ENABLE_STATIC ON)
++ endif()
++else()
++ option(ENABLE_STATIC "Make static version of libtag" OFF)
++endif()
++
+ if(ENABLE_STATIC)
+ add_definitions(-DTAGLIB_STATIC)
+ set(BUILD_SHARED_LIBS OFF)
+--
+2.1.0
+
+++ /dev/null
-From 4e6a75eed3602f10aff516f49c8088c6da8db9df Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sun, 31 Aug 2014 12:11:57 +0200
-Subject: [PATCH 1/1] cmake: use the standard CMake flag to drive the shared
- object build
-
-If BUILD_SHARED_LIBS is set and ENABLE_STATIC undefined, then drive
-ENABLE_STATIC with the BUILD_SHARED_LIBS value.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- CMakeLists.txt | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 317ffa1..9931957 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -2,7 +2,17 @@ project(taglib)
-
- cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
-
--option(ENABLE_STATIC "Make static version of libtag" OFF)
-+# Use the standard CMake flag to drive the shared object build.
-+if(DEFINED BUILD_SHARED_LIBS AND NOT DEFINED ENABLE_STATIC)
-+ if(BUILD_SHARED_LIBS)
-+ set(ENABLE_STATIC OFF)
-+ else()
-+ set(ENABLE_STATIC ON)
-+ endif()
-+else()
-+ option(ENABLE_STATIC "Make static version of libtag" OFF)
-+endif()
-+
- if(ENABLE_STATIC)
- add_definitions(-DTAGLIB_STATIC)
- set(BUILD_SHARED_LIBS OFF)
---
-2.1.0
-
--- /dev/null
+Status: upstream
+http://git.savannah.gnu.org/cgit/tar.git/commit/?id=e9ddc08da0982f36581ae5a8c7763453ff41cfe8
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+From e9ddc08da0982f36581ae5a8c7763453ff41cfe8 Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Wed, 24 Sep 2014 21:22:16 +0000
+Subject: Bugfixes.
+
+* doc/tar.1: Fix typo in font spec.
+* src/tar.c (sort_mode_arg, sort_mode_flag): Protect "inode"
+(SAVEDIR_SORT_INODE) with D_INO_IN_DIRENT
+---
+diff --git a/doc/tar.1 b/doc/tar.1
+index 9000627..b91de63 100644
+--- a/doc/tar.1
++++ b/doc/tar.1
+@@ -879,7 +879,7 @@ Exclude files matching patterns listed in FILE.
+ \fB\-\-strip\-components\fR=\fINUMBER\fR
+ Strip \fINUMBER\fR leading components from file names on extraction.
+ .TP
+-\fB\-\-transform\fR=\fIEXPRESSION\dR, \fB\-\-xform\fR=\fIEXPRESSION\fR
++\fB\-\-transform\fR=\fIEXPRESSION\fR, \fB\-\-xform\fR=\fIEXPRESSION\fR
+ Use sed replace \fIEXPRESSION\fR to transform file names.
+ .SS File name matching options
+ These options affect both exclude and include patterns.
+diff --git a/src/tar.c b/src/tar.c
+index 225c624..f8102e0 100644
+--- a/src/tar.c
++++ b/src/tar.c
+@@ -1341,14 +1341,18 @@ static char filename_terminator;
+ static char const *const sort_mode_arg[] = {
+ "none",
+ "name",
++#if D_INO_IN_DIRENT
+ "inode",
++#endif
+ NULL
+ };
+
+ static int sort_mode_flag[] = {
+ SAVEDIR_SORT_NONE,
+ SAVEDIR_SORT_NAME,
++#if D_INO_IN_DIRENT
+ SAVEDIR_SORT_INODE
++#endif
+ };
+
+ ARGMATCH_VERIFY (sort_mode_arg, sort_mode_flag);
+--
+cgit v0.9.0.2
+++ /dev/null
-Status: upstream
-http://git.savannah.gnu.org/cgit/tar.git/commit/?id=e9ddc08da0982f36581ae5a8c7763453ff41cfe8
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-From e9ddc08da0982f36581ae5a8c7763453ff41cfe8 Mon Sep 17 00:00:00 2001
-From: Sergey Poznyakoff <gray@gnu.org>
-Date: Wed, 24 Sep 2014 21:22:16 +0000
-Subject: Bugfixes.
-
-* doc/tar.1: Fix typo in font spec.
-* src/tar.c (sort_mode_arg, sort_mode_flag): Protect "inode"
-(SAVEDIR_SORT_INODE) with D_INO_IN_DIRENT
----
-diff --git a/doc/tar.1 b/doc/tar.1
-index 9000627..b91de63 100644
---- a/doc/tar.1
-+++ b/doc/tar.1
-@@ -879,7 +879,7 @@ Exclude files matching patterns listed in FILE.
- \fB\-\-strip\-components\fR=\fINUMBER\fR
- Strip \fINUMBER\fR leading components from file names on extraction.
- .TP
--\fB\-\-transform\fR=\fIEXPRESSION\dR, \fB\-\-xform\fR=\fIEXPRESSION\fR
-+\fB\-\-transform\fR=\fIEXPRESSION\fR, \fB\-\-xform\fR=\fIEXPRESSION\fR
- Use sed replace \fIEXPRESSION\fR to transform file names.
- .SS File name matching options
- These options affect both exclude and include patterns.
-diff --git a/src/tar.c b/src/tar.c
-index 225c624..f8102e0 100644
---- a/src/tar.c
-+++ b/src/tar.c
-@@ -1341,14 +1341,18 @@ static char filename_terminator;
- static char const *const sort_mode_arg[] = {
- "none",
- "name",
-+#if D_INO_IN_DIRENT
- "inode",
-+#endif
- NULL
- };
-
- static int sort_mode_flag[] = {
- SAVEDIR_SORT_NONE,
- SAVEDIR_SORT_NAME,
-+#if D_INO_IN_DIRENT
- SAVEDIR_SORT_INODE
-+#endif
- };
-
- ARGMATCH_VERIFY (sort_mode_arg, sort_mode_flag);
---
-cgit v0.9.0.2
--- /dev/null
+From: Andrew Ruder <andrew.ruder@elecsyscorp.com>
+Subject: [PATCH] Disable tcl compatibility layers
+
+Turn off building compatibility layers for old/broken versions of
+standard functions (strstr, strtoul, strtod) with the assumption that
+anything buildroot is using as a standard C library will be good enough
+to not have broken behavior.
+
+Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
+---
+
+diff --git a/unix/tcl.m4 b/unix/tcl.m4
+--- a/unix/tcl.m4
++++ b/unix/tcl.m4
+@@ -2466,7 +2466,7 @@ AC_DEFUN([SC_BUGGY_STRTOD], [
+ }
+ exit(0);
+ }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy,
+- tcl_cv_strtod_buggy=buggy)])
++ tcl_cv_strtod_buggy=ok)])
+ if test "$tcl_cv_strtod_buggy" = buggy; then
+ AC_LIBOBJ([fixstrtod])
+ USE_COMPAT=1
+@@ -2725,7 +2725,7 @@ AC_DEFUN([SC_TCL_CHECK_BROKEN_FUNC],[
+ if test ["$tcl_ok"] = 1; then
+ AC_CACHE_CHECK([proper ]$1[ implementation], [tcl_cv_]$1[_unbroken],
+ AC_TRY_RUN([[int main() {]$2[}]],[tcl_cv_]$1[_unbroken]=ok,
+- [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=unknown))
++ [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=ok))
+ if test ["$tcl_cv_]$1[_unbroken"] = "ok"; then
+ tcl_ok=1
+ else
+++ /dev/null
-From: Andrew Ruder <andrew.ruder@elecsyscorp.com>
-Subject: [PATCH] Disable tcl compatibility layers
-
-Turn off building compatibility layers for old/broken versions of
-standard functions (strstr, strtoul, strtod) with the assumption that
-anything buildroot is using as a standard C library will be good enough
-to not have broken behavior.
-
-Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
----
-
-diff --git a/unix/tcl.m4 b/unix/tcl.m4
---- a/unix/tcl.m4
-+++ b/unix/tcl.m4
-@@ -2466,7 +2466,7 @@ AC_DEFUN([SC_BUGGY_STRTOD], [
- }
- exit(0);
- }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy,
-- tcl_cv_strtod_buggy=buggy)])
-+ tcl_cv_strtod_buggy=ok)])
- if test "$tcl_cv_strtod_buggy" = buggy; then
- AC_LIBOBJ([fixstrtod])
- USE_COMPAT=1
-@@ -2725,7 +2725,7 @@ AC_DEFUN([SC_TCL_CHECK_BROKEN_FUNC],[
- if test ["$tcl_ok"] = 1; then
- AC_CACHE_CHECK([proper ]$1[ implementation], [tcl_cv_]$1[_unbroken],
- AC_TRY_RUN([[int main() {]$2[}]],[tcl_cv_]$1[_unbroken]=ok,
-- [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=unknown))
-+ [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=ok))
- if test ["$tcl_cv_]$1[_unbroken"] = "ok"; then
- tcl_ok=1
- else
--- /dev/null
+Fix glibc/eglibc getline() conflicting functions.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+
+diff -Nura thttpd-2.25b.orig/extras/htpasswd.c thttpd-2.25b/extras/htpasswd.c
+--- thttpd-2.25b.orig/extras/htpasswd.c 2001-12-18 21:08:08.000000000 -0300
++++ thttpd-2.25b/extras/htpasswd.c 2011-11-25 11:42:47.198582812 -0300
+@@ -49,7 +49,7 @@
+ while((line[y++] = line[x++]));
+ }
+
+-static int getline(char *s, int n, FILE *f) {
++static int get_line(char *s, int n, FILE *f) {
+ register int i=0;
+
+ while(1) {
+@@ -189,7 +189,7 @@
+ strcpy(user,argv[2]);
+
+ found = 0;
+- while(!(getline(line,MAX_STRING_LEN,f))) {
++ while(!(get_line(line,MAX_STRING_LEN,f))) {
+ if(found || (line[0] == '#') || (!line[0])) {
+ putline(tfp,line);
+ continue;
+++ /dev/null
-Fix glibc/eglibc getline() conflicting functions.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
-
-diff -Nura thttpd-2.25b.orig/extras/htpasswd.c thttpd-2.25b/extras/htpasswd.c
---- thttpd-2.25b.orig/extras/htpasswd.c 2001-12-18 21:08:08.000000000 -0300
-+++ thttpd-2.25b/extras/htpasswd.c 2011-11-25 11:42:47.198582812 -0300
-@@ -49,7 +49,7 @@
- while((line[y++] = line[x++]));
- }
-
--static int getline(char *s, int n, FILE *f) {
-+static int get_line(char *s, int n, FILE *f) {
- register int i=0;
-
- while(1) {
-@@ -189,7 +189,7 @@
- strcpy(user,argv[2]);
-
- found = 0;
-- while(!(getline(line,MAX_STRING_LEN,f))) {
-+ while(!(get_line(line,MAX_STRING_LEN,f))) {
- if(found || (line[0] == '#') || (!line[0])) {
- putline(tfp,line);
- continue;
--- /dev/null
+This patch adjusts the omap3630 portion of the powervr driver to use the new
+clk kernel api.
+
+Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
+[yann.morin.1998@free.fr: rebased ontop of 5.01.00.01]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+diff -durN ti-gfx-5_01_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c ti-gfx-5_01_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c
+--- ti-gfx-5_01_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2013-12-23 15:44:20.000000000 +0100
++++ ti-gfx-5_01_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2014-02-26 19:17:39.829571846 +0100
+@@ -182,6 +182,49 @@
+ @Return PVRSRV_ERROR
+
+ ******************************************************************************/
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
++int clk_disable_unprepare(struct clk *clk)
++{
++ return clk_disable(clk);
++}
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
++int clk_disable_unprepare(struct clk *clk)
++{
++ res = clk_disable(clk);
++ if (res < 0)
++ return res;
++
++ res = clk_unprepare(clk);
++ if (ret < 0)
++ return res;
++
++ return 0;
++}
++#endif
++
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
++int clk_prepare_enable(struct clk *clk)
++{
++ return clk_enable(clk);
++}
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
++int clk_prepare_enable(struct clk *clk)
++{
++ res = clk_prepare(clk);
++ if (ret < 0)
++ return res;
++
++ res = clk_enable(clk);
++ if (res < 0) {
++ clk_unprepare(clk);
++ return res;
++ }
++
++ return 0;
++}
++#endif
++
+ PVRSRV_ERROR EnableSGXClocks(SYS_DATA *psSysData)
+ {
+ #if !defined(NO_HARDWARE)
+@@ -198,7 +241,7 @@
+
+ #if !defined(PM_RUNTIME_SUPPORT)
+ PVR_DPF((PVR_DBG_MESSAGE, "EnableSGXClocks: Enabling SGX Clocks"));
+- res=clk_enable(psSysSpecData->psSGX_FCK);
++ res=clk_prepare_enable(psSysSpecData->psSGX_FCK);
+ if (res < 0)
+ {
+ PVR_DPF((PVR_DBG_ERROR, "EnableSGXClocks: Couldn't enable SGX functional clock (%d)", res));
+@@ -324,7 +367,7 @@
+
+ PVR_DPF((PVR_DBG_MESSAGE, "DisableSGXClocks: Disabling SGX Clocks"));
+ #if !defined(PM_RUNTIME_SUPPORT)
+- clk_disable(psSysSpecData->psSGX_FCK);
++ clk_disable_unprepare(psSysSpecData->psSGX_FCK);
+ #endif
+ SysDisableSGXInterrupts(psSysData);
+
+@@ -540,14 +583,14 @@
+ rate = clk_get_rate(psSysSpecData->psGPT11_FCK);
+ PVR_TRACE(("GPTIMER11 clock is %dMHz", HZ_TO_MHZ(rate)));
+
+- res = clk_enable(psSysSpecData->psGPT11_FCK);
++ res = clk_prepare_enable(psSysSpecData->psGPT11_FCK);
+ if (res < 0)
+ {
+ PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 functional clock (%d)", res));
+ goto ExitError;
+ }
+
+- res = clk_enable(psSysSpecData->psGPT11_ICK);
++ res = clk_prepare_enable(psSysSpecData->psGPT11_ICK);
+ if (res < 0)
+ {
+ PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 interface clock (%d)", res));
+@@ -610,9 +653,9 @@
+
+ ExitDisableGPT11ICK:
+ #if defined(PVR_OMAP4_TIMING_PRCM)
+- clk_disable(psSysSpecData->psGPT11_ICK);
++ clk_disable_unprepare(psSysSpecData->psGPT11_ICK);
+ ExitDisableGPT11FCK:
+- clk_disable(psSysSpecData->psGPT11_FCK);
++ clk_disable_unprepare(psSysSpecData->psGPT11_FCK);
+ ExitError:
+ #endif /* defined(PVR_OMAP4_TIMING_PRCM) */
+ eError = PVRSRV_ERROR_CLOCK_REQUEST_FAILED;
+@@ -664,9 +707,9 @@
+ psSysSpecData->sTimerRegPhysBase.uiAddr = 0;
+ #endif
+ #if defined(PVR_OMAP4_TIMING_PRCM)
+- clk_disable(psSysSpecData->psGPT11_ICK);
++ clk_disable_unprepare(psSysSpecData->psGPT11_ICK);
+
+- clk_disable(psSysSpecData->psGPT11_FCK);
++ clk_disable_unprepare(psSysSpecData->psGPT11_FCK);
+ #endif /* defined(PVR_OMAP4_TIMING_PRCM) */
+ }
+ #endif /* PVR_OMAP_USE_DM_TIMER_API */
--- /dev/null
+Since commit a73fdc647417699833f22d0f239affe22e062827 in the kernel,
+omap_dss_device's 'output' is renamed 'src'.
+
+Fix build with at least es5.x selected (AM35xx).
+
+Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
+
+--- a/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c
++++ b/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c
+@@ -176,8 +176,10 @@
+ #define OMAP_DSS_DRIVER(drv, dev) struct omap_dss_driver *drv = (dev) != NULL ? (dev)->driver : NULL
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
+ #define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->manager : NULL
+-#else
++#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0))
+ #define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->output->manager : NULL
++#else
++#define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->src->manager : NULL
+ #endif
+
+ #define WAIT_FOR_VSYNC(man) ((man)->wait_for_vsync)
--- /dev/null
+Patch to add modules_install target to the modules makefile. This makes
+installation a little easier.
+
+Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
+----
+Index: ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile
+===================================================================
+--- ti-gfx-4_09_00_01.orig/GFX_Linux_KM/Makefile 2013-03-07 11:00:11.000000000 -0600
++++ ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile 2013-05-23 01:36:29.356676281 -0500
+@@ -479,6 +479,9 @@
+ all:
+ $(MAKE) -C $(KERNELDIR) M=`pwd` $*
+
++install:
++ $(MAKE) -C $(KERNELDIR) M=`pwd` modules_install
++
+ clean:
+ @find . -name "*.o" -exec rm -r {} \;
+ @find . -name "*.ko" -exec rm -r {} \;
+++ /dev/null
-This patch adjusts the omap3630 portion of the powervr driver to use the new
-clk kernel api.
-
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
-[yann.morin.1998@free.fr: rebased ontop of 5.01.00.01]
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-diff -durN ti-gfx-5_01_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c ti-gfx-5_01_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c
---- ti-gfx-5_01_00_01.orig/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2013-12-23 15:44:20.000000000 +0100
-+++ ti-gfx-5_01_00_01/GFX_Linux_KM/services4/system/omap3630/sysutils_linux.c 2014-02-26 19:17:39.829571846 +0100
-@@ -182,6 +182,49 @@
- @Return PVRSRV_ERROR
-
- ******************************************************************************/
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
-+int clk_disable_unprepare(struct clk *clk)
-+{
-+ return clk_disable(clk);
-+}
-+#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
-+int clk_disable_unprepare(struct clk *clk)
-+{
-+ res = clk_disable(clk);
-+ if (res < 0)
-+ return res;
-+
-+ res = clk_unprepare(clk);
-+ if (ret < 0)
-+ return res;
-+
-+ return 0;
-+}
-+#endif
-+
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
-+int clk_prepare_enable(struct clk *clk)
-+{
-+ return clk_enable(clk);
-+}
-+#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
-+int clk_prepare_enable(struct clk *clk)
-+{
-+ res = clk_prepare(clk);
-+ if (ret < 0)
-+ return res;
-+
-+ res = clk_enable(clk);
-+ if (res < 0) {
-+ clk_unprepare(clk);
-+ return res;
-+ }
-+
-+ return 0;
-+}
-+#endif
-+
- PVRSRV_ERROR EnableSGXClocks(SYS_DATA *psSysData)
- {
- #if !defined(NO_HARDWARE)
-@@ -198,7 +241,7 @@
-
- #if !defined(PM_RUNTIME_SUPPORT)
- PVR_DPF((PVR_DBG_MESSAGE, "EnableSGXClocks: Enabling SGX Clocks"));
-- res=clk_enable(psSysSpecData->psSGX_FCK);
-+ res=clk_prepare_enable(psSysSpecData->psSGX_FCK);
- if (res < 0)
- {
- PVR_DPF((PVR_DBG_ERROR, "EnableSGXClocks: Couldn't enable SGX functional clock (%d)", res));
-@@ -324,7 +367,7 @@
-
- PVR_DPF((PVR_DBG_MESSAGE, "DisableSGXClocks: Disabling SGX Clocks"));
- #if !defined(PM_RUNTIME_SUPPORT)
-- clk_disable(psSysSpecData->psSGX_FCK);
-+ clk_disable_unprepare(psSysSpecData->psSGX_FCK);
- #endif
- SysDisableSGXInterrupts(psSysData);
-
-@@ -540,14 +583,14 @@
- rate = clk_get_rate(psSysSpecData->psGPT11_FCK);
- PVR_TRACE(("GPTIMER11 clock is %dMHz", HZ_TO_MHZ(rate)));
-
-- res = clk_enable(psSysSpecData->psGPT11_FCK);
-+ res = clk_prepare_enable(psSysSpecData->psGPT11_FCK);
- if (res < 0)
- {
- PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 functional clock (%d)", res));
- goto ExitError;
- }
-
-- res = clk_enable(psSysSpecData->psGPT11_ICK);
-+ res = clk_prepare_enable(psSysSpecData->psGPT11_ICK);
- if (res < 0)
- {
- PVR_DPF((PVR_DBG_ERROR, "EnableSystemClocks: Couldn't enable GPTIMER11 interface clock (%d)", res));
-@@ -610,9 +653,9 @@
-
- ExitDisableGPT11ICK:
- #if defined(PVR_OMAP4_TIMING_PRCM)
-- clk_disable(psSysSpecData->psGPT11_ICK);
-+ clk_disable_unprepare(psSysSpecData->psGPT11_ICK);
- ExitDisableGPT11FCK:
-- clk_disable(psSysSpecData->psGPT11_FCK);
-+ clk_disable_unprepare(psSysSpecData->psGPT11_FCK);
- ExitError:
- #endif /* defined(PVR_OMAP4_TIMING_PRCM) */
- eError = PVRSRV_ERROR_CLOCK_REQUEST_FAILED;
-@@ -664,9 +707,9 @@
- psSysSpecData->sTimerRegPhysBase.uiAddr = 0;
- #endif
- #if defined(PVR_OMAP4_TIMING_PRCM)
-- clk_disable(psSysSpecData->psGPT11_ICK);
-+ clk_disable_unprepare(psSysSpecData->psGPT11_ICK);
-
-- clk_disable(psSysSpecData->psGPT11_FCK);
-+ clk_disable_unprepare(psSysSpecData->psGPT11_FCK);
- #endif /* defined(PVR_OMAP4_TIMING_PRCM) */
- }
- #endif /* PVR_OMAP_USE_DM_TIMER_API */
+++ /dev/null
-Since commit a73fdc647417699833f22d0f239affe22e062827 in the kernel,
-omap_dss_device's 'output' is renamed 'src'.
-
-Fix build with at least es5.x selected (AM35xx).
-
-Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
-
---- a/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c
-+++ b/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c
-@@ -176,8 +176,10 @@
- #define OMAP_DSS_DRIVER(drv, dev) struct omap_dss_driver *drv = (dev) != NULL ? (dev)->driver : NULL
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
- #define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->manager : NULL
--#else
-+#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0))
- #define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->output->manager : NULL
-+#else
-+#define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man = (dev) != NULL ? (dev)->src->manager : NULL
- #endif
-
- #define WAIT_FOR_VSYNC(man) ((man)->wait_for_vsync)
+++ /dev/null
-Patch to add modules_install target to the modules makefile. This makes
-installation a little easier.
-
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
-----
-Index: ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile
-===================================================================
---- ti-gfx-4_09_00_01.orig/GFX_Linux_KM/Makefile 2013-03-07 11:00:11.000000000 -0600
-+++ ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile 2013-05-23 01:36:29.356676281 -0500
-@@ -479,6 +479,9 @@
- all:
- $(MAKE) -C $(KERNELDIR) M=`pwd` $*
-
-+install:
-+ $(MAKE) -C $(KERNELDIR) M=`pwd` modules_install
-+
- clean:
- @find . -name "*.o" -exec rm -r {} \;
- @find . -name "*.ko" -exec rm -r {} \;
--- /dev/null
+diff -ur tinyhttpd-0.1.0/httpd.c tinyhttpd-0.1.0-patched/httpd.c
+--- tinyhttpd-0.1.0/httpd.c 2001-04-21 19:13:13.000000000 -0500
++++ tinyhttpd-0.1.0-patched/httpd.c 2007-07-02 09:19:27.000000000 -0500
+@@ -4,14 +4,6 @@
+ * CSE 4344 (Network concepts), Prof. Zeigler
+ * University of Texas at Arlington
+ */
+-/* This program compiles for Sparc Solaris 2.6.
+- * To compile for Linux:
+- * 1) Comment out the #include <pthread.h> line.
+- * 2) Comment out the line that defines the variable newthread.
+- * 3) Comment out the two lines that run pthread_create().
+- * 4) Uncomment the line that runs accept_request().
+- * 5) Remove -lsocket from the Makefile.
+- */
+ #include <stdio.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+@@ -22,7 +14,6 @@
+ #include <strings.h>
+ #include <string.h>
+ #include <sys/stat.h>
+-#include <pthread.h>
+ #include <sys/wait.h>
+ #include <stdlib.h>
+
+@@ -30,7 +21,6 @@
+
+ #define SERVER_STRING "Server: jdbhttpd/0.1.0\r\n"
+
+-void accept_request(int);
+ void bad_request(int);
+ void cat(int, FILE *);
+ void cannot_execute(int);
+@@ -102,7 +92,7 @@
+ }
+ }
+
+- sprintf(path, "htdocs%s", url);
++ sprintf(path, "/var/www%s", url);
+ if (path[strlen(path) - 1] == '/')
+ strcat(path, "index.html");
+ if (stat(path, &st) == -1) {
+@@ -475,11 +465,10 @@
+ int main(void)
+ {
+ int server_sock = -1;
+- u_short port = 0;
++ u_short port = 80;
+ int client_sock = -1;
+ struct sockaddr_in client_name;
+ int client_name_len = sizeof(client_name);
+- pthread_t newthread;
+
+ server_sock = startup(&port);
+ printf("httpd running on port %d\n", port);
+@@ -491,9 +480,7 @@
+ &client_name_len);
+ if (client_sock == -1)
+ error_die("accept");
+- /* accept_request(client_sock); */
+- if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0)
+- perror("pthread_create");
++ accept_request(client_sock);
+ }
+
+ close(server_sock);
+diff -ur tinyhttpd-0.1.0/Makefile tinyhttpd-0.1.0-patched/Makefile
+--- tinyhttpd-0.1.0/Makefile 2001-04-21 17:03:39.000000000 -0500
++++ tinyhttpd-0.1.0-patched/Makefile 2007-07-02 10:29:41.000000000 -0500
+@@ -1,7 +1,7 @@
+ all: httpd
+
+ httpd: httpd.c
+- gcc -W -Wall -lsocket -lpthread -o httpd httpd.c
++ $(CC) $(CFLAGS) $(LDFLAGS) -W -Wall -o httpd httpd.c
+
+ clean:
+- rm httpd
++ rm -f httpd
+++ /dev/null
-diff -ur tinyhttpd-0.1.0/httpd.c tinyhttpd-0.1.0-patched/httpd.c
---- tinyhttpd-0.1.0/httpd.c 2001-04-21 19:13:13.000000000 -0500
-+++ tinyhttpd-0.1.0-patched/httpd.c 2007-07-02 09:19:27.000000000 -0500
-@@ -4,14 +4,6 @@
- * CSE 4344 (Network concepts), Prof. Zeigler
- * University of Texas at Arlington
- */
--/* This program compiles for Sparc Solaris 2.6.
-- * To compile for Linux:
-- * 1) Comment out the #include <pthread.h> line.
-- * 2) Comment out the line that defines the variable newthread.
-- * 3) Comment out the two lines that run pthread_create().
-- * 4) Uncomment the line that runs accept_request().
-- * 5) Remove -lsocket from the Makefile.
-- */
- #include <stdio.h>
- #include <sys/socket.h>
- #include <sys/types.h>
-@@ -22,7 +14,6 @@
- #include <strings.h>
- #include <string.h>
- #include <sys/stat.h>
--#include <pthread.h>
- #include <sys/wait.h>
- #include <stdlib.h>
-
-@@ -30,7 +21,6 @@
-
- #define SERVER_STRING "Server: jdbhttpd/0.1.0\r\n"
-
--void accept_request(int);
- void bad_request(int);
- void cat(int, FILE *);
- void cannot_execute(int);
-@@ -102,7 +92,7 @@
- }
- }
-
-- sprintf(path, "htdocs%s", url);
-+ sprintf(path, "/var/www%s", url);
- if (path[strlen(path) - 1] == '/')
- strcat(path, "index.html");
- if (stat(path, &st) == -1) {
-@@ -475,11 +465,10 @@
- int main(void)
- {
- int server_sock = -1;
-- u_short port = 0;
-+ u_short port = 80;
- int client_sock = -1;
- struct sockaddr_in client_name;
- int client_name_len = sizeof(client_name);
-- pthread_t newthread;
-
- server_sock = startup(&port);
- printf("httpd running on port %d\n", port);
-@@ -491,9 +480,7 @@
- &client_name_len);
- if (client_sock == -1)
- error_die("accept");
-- /* accept_request(client_sock); */
-- if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0)
-- perror("pthread_create");
-+ accept_request(client_sock);
- }
-
- close(server_sock);
-diff -ur tinyhttpd-0.1.0/Makefile tinyhttpd-0.1.0-patched/Makefile
---- tinyhttpd-0.1.0/Makefile 2001-04-21 17:03:39.000000000 -0500
-+++ tinyhttpd-0.1.0-patched/Makefile 2007-07-02 10:29:41.000000000 -0500
-@@ -1,7 +1,7 @@
- all: httpd
-
- httpd: httpd.c
-- gcc -W -Wall -lsocket -lpthread -o httpd httpd.c
-+ $(CC) $(CFLAGS) $(LDFLAGS) -W -Wall -o httpd httpd.c
-
- clean:
-- rm httpd
-+ rm -f httpd
--- /dev/null
+Value is assigned to $with_ssl_dir but used from $with_ssl which is wrong.
+Fix configure since it's a one-liner and avoid an autoreconf.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura tn5250-0.17.4.orig/configure tn5250-0.17.4/configure
+--- tn5250-0.17.4.orig/configure 2014-09-10 08:33:15.689519554 -0300
++++ tn5250-0.17.4/configure 2014-09-10 08:33:47.428613117 -0300
+@@ -23258,7 +23258,7 @@
+ if test "${with_ssl_dir+set}" = set; then
+ withval=$with_ssl_dir;
+ if test "$with_ssl_dir" != "no"; then
+- checksslinclude "$with_ssl"
++ checksslinclude "$with_ssl_dir"
+ else
+ for topdir in /usr/local /usr /usr/pkg /usr/lib /var/ssl /opt; do
+ for subdir in $topdir $topdir/openssl $topdir/ssl; do
+++ /dev/null
-Value is assigned to $with_ssl_dir but used from $with_ssl which is wrong.
-Fix configure since it's a one-liner and avoid an autoreconf.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura tn5250-0.17.4.orig/configure tn5250-0.17.4/configure
---- tn5250-0.17.4.orig/configure 2014-09-10 08:33:15.689519554 -0300
-+++ tn5250-0.17.4/configure 2014-09-10 08:33:47.428613117 -0300
-@@ -23258,7 +23258,7 @@
- if test "${with_ssl_dir+set}" = set; then
- withval=$with_ssl_dir;
- if test "$with_ssl_dir" != "no"; then
-- checksslinclude "$with_ssl"
-+ checksslinclude "$with_ssl_dir"
- else
- for topdir in /usr/local /usr /usr/pkg /usr/lib /var/ssl /opt; do
- for subdir in $topdir $topdir/openssl $topdir/ssl; do
--- /dev/null
+From 0070081ffe65a4fbe442044ddfcc818593c98e33 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Wed, 30 Oct 2013 22:35:34 +0100
+Subject: [PATCH] Fix ptrace detection
+
+Ptrace support detection is ignored when CFLAGS is set in command
+arguments. Use override in Makefile to add -DWARN_NO_PTRACE and
+-DNO_PTRACE in CFLAGS if ptrace is not available.
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 83329ca..01b4f45 100644
+--- a/Makefile
++++ b/Makefile
+@@ -223,12 +223,12 @@ LDFLAGS ?=
+ ifndef NO_PTRACE
+ ifneq ($(call try-cc,$(SOURCE_PTRACE),),y)
+ NO_PTRACE = 1
+- CFLAGS += -DWARN_NO_PTRACE
++ override CFLAGS += -DWARN_NO_PTRACE
+ endif
+ endif
+
+ ifdef NO_PTRACE
+-CFLAGS += -DNO_PTRACE
++override CFLAGS += -DNO_PTRACE
+ endif
+
+ # Append required CFLAGS
+--
+1.8.1.2
+
+++ /dev/null
-From 0070081ffe65a4fbe442044ddfcc818593c98e33 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@openwide.fr>
-Date: Wed, 30 Oct 2013 22:35:34 +0100
-Subject: [PATCH] Fix ptrace detection
-
-Ptrace support detection is ignored when CFLAGS is set in command
-arguments. Use override in Makefile to add -DWARN_NO_PTRACE and
--DNO_PTRACE in CFLAGS if ptrace is not available.
-
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 83329ca..01b4f45 100644
---- a/Makefile
-+++ b/Makefile
-@@ -223,12 +223,12 @@ LDFLAGS ?=
- ifndef NO_PTRACE
- ifneq ($(call try-cc,$(SOURCE_PTRACE),),y)
- NO_PTRACE = 1
-- CFLAGS += -DWARN_NO_PTRACE
-+ override CFLAGS += -DWARN_NO_PTRACE
- endif
- endif
-
- ifdef NO_PTRACE
--CFLAGS += -DNO_PTRACE
-+override CFLAGS += -DNO_PTRACE
- endif
-
- # Append required CFLAGS
---
-1.8.1.2
-
--- /dev/null
+Fix build error "conflicting types for 'UTP_Write'"
+
+Fetch from: http://www.adminsehow.com/2012/10/how-to-install-transmission-2-71-on-debian-6-0-squeeze/
+
+The corresponding upstream bug report (unfixed) can be found here:
+https://trac.transmissionbt.com/ticket/5232
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+--- transmission-2.82.org/third-party/libutp/utypes.h 2013-08-09 04:47:43.000000000 +0200
++++ transmission-2.82/third-party/libutp/utypes.h 2014-01-02 20:17:18.000000000 +0100
+@@ -35,8 +35,15 @@
+ typedef const char * cstr;\r
+ typedef char * str;\r
+ \r
+-#ifndef __cplusplus\r
+-typedef uint8 bool;\r
+-#endif\r
++//#ifndef __cplusplus
++//typedef uint8 bool;
++//#endif
++#ifndef __cplusplus
++#ifdef HAVE_STDBOOL_H
++#include <stdbool.h>
++#else
++typedef uint8 bool;
++#endif
++#endif
+ \r
+ #endif //__UTYPES_H__\r
+++ /dev/null
-Fix build error "conflicting types for 'UTP_Write'"
-
-Fetch from: http://www.adminsehow.com/2012/10/how-to-install-transmission-2-71-on-debian-6-0-squeeze/
-
-The corresponding upstream bug report (unfixed) can be found here:
-https://trac.transmissionbt.com/ticket/5232
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
---- transmission-2.82.org/third-party/libutp/utypes.h 2013-08-09 04:47:43.000000000 +0200
-+++ transmission-2.82/third-party/libutp/utypes.h 2014-01-02 20:17:18.000000000 +0100
-@@ -35,8 +35,15 @@
- typedef const char * cstr;\r
- typedef char * str;\r
- \r
--#ifndef __cplusplus\r
--typedef uint8 bool;\r
--#endif\r
-+//#ifndef __cplusplus
-+//typedef uint8 bool;
-+//#endif
-+#ifndef __cplusplus
-+#ifdef HAVE_STDBOOL_H
-+#include <stdbool.h>
-+#else
-+typedef uint8 bool;
-+#endif
-+#endif
- \r
- #endif //__UTYPES_H__\r
--- /dev/null
+Enable raw module by default
+
+Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se>
+
+diff -Naur tslib-e000d35a.orig/etc/ts.conf tslib-e000d35a/etc/ts.conf
+--- tslib-e000d35a.orig/etc/ts.conf 2010-12-21 18:54:45.000000000 +0100
++++ tslib-e000d35a/etc/ts.conf 2010-12-21 18:55:03.000000000 +0100
+@@ -1,5 +1,5 @@
+ # Uncomment if you wish to use the linux input layer event interface
+-# module_raw input
++module_raw input
+
+ # Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
+ # module_raw collie
--- /dev/null
+diff -Naur tslib-org/tests/Makefile.am tslib-1.0/tests/Makefile.am
+--- tslib-org/tests/Makefile.am 2006-08-25 00:02:55.000000000 +0300
++++ tslib-1.0/tests/Makefile.am 2007-05-07 17:39:54.000000000 +0300
+@@ -12,7 +12,7 @@
+ AM_CFLAGS = $(DEBUGFLAGS)
+ INCLUDES = -I$(top_srcdir)/src
+
+-bin_PROGRAMS = ts_test ts_calibrate ts_print ts_print_raw ts_harvest
++bin_PROGRAMS = ts_test ts_calibrate ts_print ts_print_raw ts_harvest ts_finddev inputattach
+
+ ts_test_SOURCES = ts_test.c fbutils.c fbutils.h font_8x8.c font_8x16.c font.h
+ ts_test_LDADD = $(top_builddir)/src/libts.la
+@@ -27,4 +27,10 @@
+ ts_calibrate_LDADD = $(top_builddir)/src/libts.la
+
+ ts_harvest_SOURCES = ts_harvest.c fbutils.c fbutils.h testutils.c testutils.h font_8x8.c font_8x16.c font.h
+-ts_harvest_LDADD = $(top_builddir)/src/libts.la
++ts_harvest_LDADD = $(top_builddir)/src/libts.la
++
++ts_finddev_SOURCES = ts_finddev.c
++ts_finddev_LDADD = $(top_builddir)/src/libts.la
++
++inputattach_SOURCES = inputattach.c
++inputattach_LDADD =
+diff -Naur tslib-org/tests/inputattach.c tslib-1.0/tests/inputattach.c
+--- tslib-org/tests/inputattach.c 1970-01-01 02:00:00.000000000 +0200
++++ tslib-1.0/tests/inputattach.c 2007-05-07 17:36:37.000000000 +0300
+@@ -0,0 +1,611 @@
++/*
++ * $Id: inputattach.c,v 1.24 2006/02/08 12:19:31 vojtech Exp $
++ *
++ * Copyright (c) 1999-2000 Vojtech Pavlik
++ *
++ * Sponsored by SuSE
++ *
++ * Twiddler support Copyright (c) 2001 Arndt Schoenewald
++ * Sponsored by Quelltext AG (http://www.quelltext-ag.de), Dortmund, Germany
++ */
++
++/*
++ * Input line discipline attach program
++ */
++
++/*
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Should you need to contact me, the author, you can do so either by
++ * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
++ * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
++ */
++
++/* softa note:
++cvs version is here:
++http://cvs.sourceforge.net/viewcvs.py/ *checkout* /linuxconsole/ruby/utils/inputattach.c
++*/
++
++#include <linux/serio.h>
++
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <sys/ioctl.h>
++#include <sys/time.h>
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <fcntl.h>
++#include <termios.h>
++#include <string.h>
++#include <assert.h>
++#include <ctype.h>
++
++// softa patch!
++/*
++ * Serio types
++ */
++#ifndef SERIO_UNKNOWN
++ #define SERIO_UNKNOWN 0x00
++#endif
++#ifndef SERIO_MSC
++ #define SERIO_MSC 0x01
++#endif
++#ifndef SERIO_SUN
++ #define SERIO_SUN 0x02
++#endif
++#ifndef SERIO_MS
++ #define SERIO_MS 0x03
++#endif
++#ifndef SERIO_MP
++ #define SERIO_MP 0x04
++#endif
++#ifndef SERIO_MZ
++ #define SERIO_MZ 0x05
++#endif
++#ifndef SERIO_MZP
++ #define SERIO_MZP 0x06
++#endif
++#ifndef SERIO_MZPP
++ #define SERIO_MZPP 0x07
++#endif
++#ifndef SERIO_VSXXXAA
++ #define SERIO_VSXXXAA 0x08
++#endif
++#ifndef SERIO_SUNKBD
++ #define SERIO_SUNKBD 0x10
++#endif
++#ifndef SERIO_WARRIOR
++ #define SERIO_WARRIOR 0x18
++#endif
++#ifndef SERIO_SPACEORB
++ #define SERIO_SPACEORB 0x19
++#endif
++#ifndef SERIO_MAGELLAN
++ #define SERIO_MAGELLAN 0x1a
++#endif
++#ifndef SERIO_SPACEBALL
++ #define SERIO_SPACEBALL 0x1b
++#endif
++#ifndef SERIO_GUNZE
++ #define SERIO_GUNZE 0x1c
++#endif
++#ifndef SERIO_IFORCE
++ #define SERIO_IFORCE 0x1d
++#endif
++#ifndef SERIO_STINGER
++ #define SERIO_STINGER 0x1e
++#endif
++#ifndef SERIO_NEWTON
++ #define SERIO_NEWTON 0x1f
++#endif
++#ifndef SERIO_STOWAWAY
++ #define SERIO_STOWAWAY 0x20
++#endif
++#ifndef SERIO_H3600
++ #define SERIO_H3600 0x21
++#endif
++#ifndef SERIO_PS2SER
++ #define SERIO_PS2SER 0x22
++#endif
++#ifndef SERIO_TWIDKBD
++ #define SERIO_TWIDKBD 0x23
++#endif
++#ifndef SERIO_TWIDJOY
++ #define SERIO_TWIDJOY 0x24
++#endif
++#ifndef SERIO_HIL
++ #define SERIO_HIL 0x25
++#endif
++#ifndef SERIO_SNES232
++ #define SERIO_SNES232 0x26
++#endif
++#ifndef SERIO_SEMTECH
++ #define SERIO_SEMTECH 0x27
++#endif
++#ifndef SERIO_LKKBD
++ #define SERIO_LKKBD 0x28
++#endif
++#ifndef SERIO_ELO
++ #define SERIO_ELO 0x29
++#endif
++#ifndef SERIO_MICROTOUCH
++ #define SERIO_MICROTOUCH 0x30
++#endif
++#ifndef SERIO_PENMOUNT
++ #define SERIO_PENMOUNT 0x31
++#endif
++#ifndef SERIO_TOUCHRIGHT
++ #define SERIO_TOUCHRIGHT 0x32
++#endif
++#ifndef SERIO_TOUCHWIN
++ #define SERIO_TOUCHWIN 0x33
++#endif
++// end softa patch!
++
++int readchar(int fd, unsigned char *c, int timeout)
++{
++ struct timeval tv;
++ fd_set set;
++
++ tv.tv_sec = 0;
++ tv.tv_usec = timeout * 1000;
++
++ FD_ZERO(&set);
++ FD_SET(fd, &set);
++
++ if (!select(fd+1, &set, NULL, NULL, &tv)) return -1;
++ if (read(fd, c, 1) != 1) return -1;
++
++ return 0;
++}
++
++
++
++void setline(int fd, int flags, int speed)
++{
++ struct termios t;
++
++ tcgetattr(fd, &t);
++
++ t.c_cflag = flags | CREAD | HUPCL | CLOCAL;
++ t.c_iflag = IGNBRK | IGNPAR;
++ t.c_oflag = 0;
++ t.c_lflag = 0;
++ t.c_cc[VMIN ] = 1;
++ t.c_cc[VTIME] = 0;
++
++ cfsetispeed(&t, speed);
++ cfsetospeed(&t, speed);
++
++ tcsetattr(fd, TCSANOW, &t);
++}
++
++int logitech_command(int fd, char *c)
++{
++ int i;
++ unsigned char d;
++ for (i = 0; c[i]; i++) {
++ write(fd, c + i, 1);
++ if (readchar(fd, &d, 1000))
++ return -1;
++ if (c[i] != d)
++ return -1;
++ }
++ return 0;
++}
++
++int magellan_init(int fd, long *id, long *extra)
++{
++ write(fd, "m3\rpBB\rz\r", 9);
++ return 0;
++}
++
++int warrior_init(int fd, long *id, long *extra)
++{
++ if (logitech_command(fd, "*S")) return -1;
++ setline(fd, CS8, B4800);
++ return 0;
++}
++
++int spaceball_waitchar(int fd, unsigned char c, unsigned char *d, int timeout)
++{
++ unsigned char b = 0;
++
++ while (!readchar(fd, &b, timeout)) {
++ if (b == 0x0a) continue;
++ *d++ = b;
++ if (b == c) break;
++ }
++
++ *d = 0;
++
++ return -(b != c);
++}
++
++int spaceball_waitcmd(int fd, char c, char *d)
++{
++ int i;
++
++ for (i = 0; i < 8; i++) {
++ if (spaceball_waitchar(fd, 0x0d, d, 1000))
++ return -1;
++ if (d[0] == c)
++ return 0;
++ }
++
++ return -1;
++}
++
++int spaceball_cmd(int fd, char *c, char *d)
++{
++ int i;
++
++ for (i = 0; c[i]; i++)
++ write(fd, c + i, 1);
++ write(fd, "\r", 1);
++
++ i = spaceball_waitcmd(fd, toupper(c[0]), d);
++
++ return i;
++}
++
++#define SPACEBALL_1003 1
++#define SPACEBALL_2003B 3
++#define SPACEBALL_2003C 4
++#define SPACEBALL_3003C 7
++#define SPACEBALL_4000FLX 8
++#define SPACEBALL_4000FLX_L 9
++
++int spaceball_init(int fd, long *id, long *extra)
++{
++ char r[64];
++
++ if (spaceball_waitchar(fd, 0x11, r, 4000) ||
++ spaceball_waitchar(fd, 0x0d, r, 1000))
++ return -1;
++
++ if (spaceball_waitcmd(fd, '@', r))
++ return -1;
++
++ if (strncmp("@1 Spaceball alive", r, 18))
++ return -1;
++
++ if (spaceball_waitcmd(fd, '@', r))
++ return -1;
++
++ if (spaceball_cmd(fd, "hm", r))
++ return -1;
++
++ if (!strncmp("Hm2003B", r, 7))
++ *id = SPACEBALL_2003B;
++ if (!strncmp("Hm2003C", r, 7))
++ *id = SPACEBALL_2003C;
++ if (!strncmp("Hm3003C", r, 7))
++ *id = SPACEBALL_3003C;
++
++ if (!strncmp("HvFirmware", r, 10)) {
++
++ if (spaceball_cmd(fd, "\"", r))
++ return -1;
++
++ if (strncmp("\"1 Spaceball 4000 FLX", r, 21))
++ return -1;
++
++ if (spaceball_waitcmd(fd, '"', r))
++ return -1;
++
++ if (strstr(r, " L "))
++ *id = SPACEBALL_4000FLX_L;
++ else
++ *id = SPACEBALL_4000FLX;
++
++ if (spaceball_waitcmd(fd, '"', r))
++ return -1;
++
++ if (spaceball_cmd(fd, "YS", r))
++ return -1;
++
++ if (spaceball_cmd(fd, "M", r))
++ return -1;
++
++ return 0;
++ }
++
++ if (spaceball_cmd(fd, "P@A@A", r) ||
++ spaceball_cmd(fd, "FT@", r) ||
++ spaceball_cmd(fd, "MSS", r))
++ return -1;
++
++ return 0;
++}
++
++int stinger_init(int fd, long *id, long *extra)
++{
++ int i;
++ unsigned char c;
++ unsigned char *response = "\r\n0600520058C272";
++
++ if (write(fd, " E5E5", 5) != 5) /* Enable command */
++ return -1;
++
++ for (i = 0; i < 16; i++) /* Check for Stinger */
++ if (readchar(fd, &c, 200) || (c != response[i]))
++ return -1;
++
++ return 0;
++}
++
++int mzp_init(int fd, long *id, long *extra)
++{
++ if (logitech_command(fd, "*X*q")) return -1;
++ setline(fd, CS8, B9600);
++ return 0;
++}
++
++int newton_init(int fd, long *id, long *extra)
++{
++ int i;
++ unsigned char c;
++ unsigned char response[35] =
++ { 0x16, 0x10, 0x02, 0x64, 0x5f, 0x69, 0x64, 0x00,
++ 0x00, 0x00, 0x0c, 0x6b, 0x79, 0x62, 0x64, 0x61,
++ 0x70, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x6e,
++ 0x6f, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x10,
++ 0x03, 0xdd, 0xe7 };
++
++ for (i = 0; i < 35; i++)
++ if (readchar(fd, &c, 400) || (c != response[i]))
++ return -1;
++
++ return 0;
++}
++
++int twiddler_init(int fd, long *id, long *extra)
++{
++ unsigned char c[10];
++ int count, line;
++
++ /* Turn DTR off, otherwise the Twiddler won't send any data. */
++ if (ioctl(fd, TIOCMGET, &line)) return -1;
++ line &= ~TIOCM_DTR;
++ if (ioctl(fd, TIOCMSET, &line)) return -1;
++
++ /* Check whether the device on the serial line is the Twiddler.
++ *
++ * The Twiddler sends data packets of 5 bytes which have the following
++ * properties: the MSB is 0 on the first and 1 on all other bytes, and
++ * the high order nibble of the last byte is always 0x8.
++ *
++ * We read and check two of those 5 byte packets to be sure that we
++ * are indeed talking to a Twiddler. */
++
++ /* Read at most 5 bytes until we find one with the MSB set to 0 */
++ for (count = 0; count < 5; count++) {
++ if (readchar(fd, c+0, 500)) return -1;
++ if ((c[0] & 0x80) == 0) break;
++ }
++
++ if (count == 5) {
++ /* Could not find header byte in data stream */
++ return -1;
++ }
++
++ /* Read remaining 4 bytes plus the full next data packet */
++ for (count = 1; count < 10; count++) {
++ if (readchar(fd, c+count, 500)) return -1;
++ }
++
++ /* Check whether the bytes of both data packets obey the rules */
++ for (count = 1; count < 10; count++) {
++ if ((count % 5 == 0 && (c[count] & 0x80) != 0)
++ || (count % 5 == 4 && (c[count] & 0xF0) != 0x80)
++ || (count % 5 != 0 && (c[count] & 0x80) != 0x80)) {
++ /* Invalid byte in data packet */
++ return -1;
++ }
++ }
++
++ return 0;
++}
++
++int penmount_init(int fd, long *id, long *extra)
++{
++ unsigned char init_cmd[5] = { 0xF2, 0x00, 0x00, 0x00, 0x00 };
++ unsigned char start_cmd[5] = { 0xF1, 0x00, 0x00, 0x00, 0x00 };
++ unsigned char c[10];
++ int count;
++
++ /* try to initialize device */
++ if (write( fd, init_cmd, 5 ) != 5)
++ return -1;
++
++ /* read the responce */
++ for (count = 0; count < 5; count ++) {
++ if (readchar(fd, c+0, 500)) return -1;
++ if (c[0] == 0xf2) break;
++ }
++
++ if (readchar(fd, c+1, 500)) return -1;
++ if (c[1] != 0xd9) return -1;
++
++ if (readchar(fd, c+2, 500)) return -1;
++ if (c[2] != 0x0a) return -1;
++
++ /* the device is present! start it! */
++ if (write( fd, start_cmd, 5 ) != 5)
++ return -1;
++
++ return 0;
++}
++
++int dump_init(int fd, long *id, long *extra)
++{
++ unsigned char c, o = 0;
++
++ c = 0x80;
++
++ if (write(fd, &c, 1) != 1) /* Enable command */
++ return -1;
++
++ while (1)
++ if (!readchar(fd, &c, 1)) {
++ printf("%02x (%c) ", c, ((c > 32) && (c < 127)) ? c : 'x');
++ o = 1;
++ } else {
++ if (o) {
++ printf("\n");
++ o = 0;
++ }
++ }
++}
++
++struct input_types {
++ char name[16];
++ char name2[16];
++ int speed;
++ int flags;
++ unsigned long type;
++ unsigned long id;
++ unsigned long extra;
++ int flush;
++ int (*init)(int fd, long *id, long *extra);
++};
++
++struct input_types input_types[] = {
++
++{ "--sunkbd", "-skb", B1200, CS8, SERIO_SUNKBD, 0, 0, 1, NULL },
++{ "--lkkbd", "-lk", B4800, CS8|CSTOPB, SERIO_LKKBD, 0, 0, 1, NULL },
++{ "--vsxxx-aa", "-vs", B4800, CS8|CSTOPB|PARENB|PARODD,SERIO_VSXXXAA, 0, 0, 1, NULL },
++{ "--spaceorb", "-orb", B9600, CS8, SERIO_SPACEORB, 0, 0, 1, NULL },
++{ "--spaceball", "-sbl", B9600, CS8, SERIO_SPACEBALL,0, 0, 0, spaceball_init },
++{ "--magellan", "-mag", B9600, CS8 | CSTOPB | CRTSCTS, SERIO_MAGELLAN, 0, 0, 1, magellan_init },
++{ "--warrior", "-war", B1200, CS7 | CSTOPB, SERIO_WARRIOR, 0, 0, 1, warrior_init },
++{ "--stinger", "-sting", B1200, CS8, SERIO_STINGER, 0, 0, 1, stinger_init },
++{ "--mousesystems", "-msc", B1200, CS8, SERIO_MSC, 0, 0x01, 1, NULL },
++{ "--sunmouse", "-sun", B1200, CS8, SERIO_SUN, 0, 0x01, 1, NULL },
++{ "--microsoft", "-bare", B1200, CS7, SERIO_MS, 0, 0, 1, NULL },
++{ "--mshack", "-ms", B1200, CS7, SERIO_MS, 0, 0x01, 1, NULL },
++{ "--mouseman", "-mman", B1200, CS7, SERIO_MP, 0, 0x01, 1, NULL },
++{ "--intellimouse", "-ms3", B1200, CS7, SERIO_MZ, 0, 0x11, 1, NULL },
++{ "--mmwheel", "-mmw", B1200, CS7 | CSTOPB, SERIO_MZP, 0, 0x13, 1, mzp_init },
++{ "--iforce", "-ifor", B38400, CS8, SERIO_IFORCE, 0, 0, 0, NULL },
++{ "--newtonkbd", "-newt", B9600, CS8, SERIO_NEWTON, 0, 0, 0, newton_init },
++{ "--h3600ts", "-ipaq", B115200, CS8, SERIO_H3600, 0, 0, 0, NULL },
++{ "--stowawaykbd", "-ipaqkbd", B115200, CS8, SERIO_STOWAWAY, 0, 0, 0, NULL },
++{ "--ps2serkbd", "-ps2ser", B1200, CS8, SERIO_PS2SER, 0, 0, 1, NULL },
++{ "--twiddler", "-twid", B2400, CS8, SERIO_TWIDKBD, 0, 0, 0, twiddler_init },
++{ "--twiddler-joy", "-twidjoy", B2400, CS8, SERIO_TWIDJOY, 0, 0, 0, twiddler_init },
++{ "--elotouch", "-elo", B9600, CS8 | CRTSCTS, SERIO_ELO, 0, 0, 0, NULL },
++{ "--elo4002", "-elo6b", B9600, CS8 | CRTSCTS, SERIO_ELO, 1, 0, 0, NULL },
++{ "--elo271-140", "-elo4b", B9600, CS8 | CRTSCTS, SERIO_ELO, 2, 0, 0, NULL },
++{ "--elo261-280", "-elo3b", B9600, CS8 | CRTSCTS, SERIO_ELO, 3, 0, 0, NULL },
++{ "--dump", "-dump", B2400, CS8, 0, 0, 0, 0, dump_init },
++{ "--dmc9000", "-dmc", B19200, CS8, SERIO_PENMOUNT, 0, 0, 0, penmount_init },
++{ "", "", 0, 0 }
++
++};
++
++int main(int argc, char **argv)
++{
++ unsigned long devt;
++ int ldisc;
++ int type;
++ long id, extra;
++ int fd;
++ char c;
++
++ if (argc < 2 || argc > 3 || !strcmp("--help", argv[1])) {
++ puts("");
++ puts("Usage: inputttach <mode> <device>");
++ puts("");
++ puts("Modes:");
++ puts(" --sunkbd -skb Sun Type 4 and Type 5 keyboards");
++ puts(" --lkkbd -lk DEC LK201 / LK401 keyboards");
++ puts(" --vsxxx-aa -vs DEC VSXXX-AA / VSXXX-GA mouse and VSXXX-AB tablet");
++ puts(" --spaceorb -orb SpaceOrb 360 / SpaceBall Avenger");
++ puts(" --spaceball -sbl SpaceBall 2003 / 3003 / 4000 FLX");
++ puts(" --magellan -mag Magellan / SpaceMouse");
++ puts(" --warrior -war WingMan Warrior");
++ puts(" --stinger -stng Gravis Stinger");
++ puts(" --mousesystems -msc 3-button Mouse Systems mice");
++ puts(" --sunmouse -sun 3-button Sun mice");
++ puts(" --microsoft -bare 2-button Microsoft mice");
++ puts(" --mshack -ms 3-button mice in Microsoft mode");
++ puts(" --mouseman -mman 3-button Logitech and Genius mice");
++ puts(" --intellimouse -ms3 Microsoft IntelliMouse");
++ puts(" --mmwheel -mmw Logitech mice with 4-5 buttons or wheel");
++ puts(" --iforce -ifor I-Force joysticks and wheels");
++ puts(" --h3600ts -ipaq Ipaq h3600 touchscreen");
++ puts(" --stowawaykbd -ipaqkbd Stowaway keyboard");
++ puts(" --ps2serkbd -ps2ser PS/2 via serial keyboard");
++ puts(" --twiddler -twid Handykey Twiddler chording keyboard");
++ puts(" --twiddler-joy -twidjoy Handykey Twiddler used as a joystick");
++ puts(" --dmc9000 -dmc DMC9000/Penpount touchscreen");
++ puts("");
++ return 1;
++ }
++
++ for (type = 0; input_types[type].speed; type++) {
++ if (!strncasecmp(argv[1], input_types[type].name, 16) ||
++ !strncasecmp(argv[1], input_types[type].name2, 16))
++ break;
++ }
++
++ if (!input_types[type].speed) {
++ fprintf(stderr, "inputattach: invalid mode\n");
++ return 1;
++ }
++
++ if ((fd = open(argv[2], O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) {
++ perror("inputattach");
++ return 1;
++ }
++
++ setline(fd, input_types[type].flags, input_types[type].speed);
++
++ if (input_types[type].flush)
++ while (!readchar(fd, &c, 100));
++
++ id = input_types[type].id;
++ extra = input_types[type].extra;
++
++ if (input_types[type].init && input_types[type].init(fd, &id, &extra)) {
++ fprintf(stderr, "inputattach: device initialization failed\n");
++ return 1;
++ }
++
++ ldisc = N_MOUSE;
++ if(ioctl(fd, TIOCSETD, &ldisc)) {
++ fprintf(stderr, "inputattach: can't set line discipline\n");
++ return 1;
++ }
++
++ devt = input_types[type].type | (id << 8) | (extra << 16);
++
++ if(ioctl(fd, SPIOCSTYPE, &devt)) {
++ fprintf(stderr, "inputattach: can't set device type\n");
++ return 1;
++ }
++
++ read(fd, NULL, 0);
++
++ ldisc = 0;
++ ioctl(fd, TIOCSETD, &ldisc);
++ close(fd);
++
++ return 0;
++}
+diff -Naur tslib-org/tests/ts_finddev.c tslib-1.0/tests/ts_finddev.c
+--- tslib-org/tests/ts_finddev.c 1970-01-01 02:00:00.000000000 +0200
++++ tslib-1.0/tests/ts_finddev.c 2007-05-07 17:36:37.000000000 +0300
+@@ -0,0 +1,75 @@
++/*
++ * tslib/src/ts_print.c
++ *
++ * Derived from tslib/src/ts_test.c by Douglas Lowder
++ * Just prints touchscreen events -- does not paint them on framebuffer
++ *
++ * This file is placed under the GPL. Please see the file
++ * COPYING for more details.
++ *
++ * Basic test program for touchscreen library.
++ */
++#include <stdio.h>
++#include <stdlib.h>
++#include <signal.h>
++#include <sys/fcntl.h>
++#include <sys/ioctl.h>
++#include <sys/mman.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include "tslib.h"
++
++void usage( int argc, char** argv ) {
++ printf( "Usage: %s device_name wait_for_sec\n", argv[0] );
++ printf( "\tdevice_name - tdevice to probe, example /dev/input/event0\n" );
++ printf( "\twait_for_sec - wait seconds for touch event, if 0 - dont wait!\n" );
++ printf( "\tReturn codes:\n" );
++ printf( "\t 0 - timeout expired without receiving event.\n" );
++ printf( "\t But this maybe is TouchScreen.\n" );
++ printf( "\t -1 - this is NOT TouchScreen device!\n" );
++ printf( "\t 1 - this is TouchScreen for shure!\n" );
++ exit(-1);
++}
++
++void alarm_handler( int sig ) {
++ // time is expired!
++ exit(0);
++}
++
++int main( int argc, char** argv )
++{
++ struct tsdev *ts;
++ struct ts_sample samp;
++ char *tsdevice=NULL;
++ int waitsec;
++ int ret;
++
++ if (argc != 3)
++ usage( argc, argv );
++
++ tsdevice = argv[1];
++ waitsec = atoi( argv[2] );
++ if (waitsec < 0)
++ usage( argc, argv );
++
++ ts = ts_open( tsdevice, 0 );
++ if (!ts)
++ return -1;
++ if (ts_config(ts))
++ return -1;
++
++ if (!waitsec) {
++ return 0;
++ }
++
++ printf( "Probe device %s, Please Touch Screen Anywhere in %i seconds! ... \n", tsdevice, waitsec );
++ signal( SIGALRM, alarm_handler );
++ alarm( waitsec );
++ ret = ts_read_raw(ts, &samp, 1 );
++ if (ret)
++ return 1;
++
++ return -1;
++}
+++ /dev/null
-Enable raw module by default
-
-Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se>
-
-diff -Naur tslib-e000d35a.orig/etc/ts.conf tslib-e000d35a/etc/ts.conf
---- tslib-e000d35a.orig/etc/ts.conf 2010-12-21 18:54:45.000000000 +0100
-+++ tslib-e000d35a/etc/ts.conf 2010-12-21 18:55:03.000000000 +0100
-@@ -1,5 +1,5 @@
- # Uncomment if you wish to use the linux input layer event interface
--# module_raw input
-+module_raw input
-
- # Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
- # module_raw collie
+++ /dev/null
-diff -Naur tslib-org/tests/Makefile.am tslib-1.0/tests/Makefile.am
---- tslib-org/tests/Makefile.am 2006-08-25 00:02:55.000000000 +0300
-+++ tslib-1.0/tests/Makefile.am 2007-05-07 17:39:54.000000000 +0300
-@@ -12,7 +12,7 @@
- AM_CFLAGS = $(DEBUGFLAGS)
- INCLUDES = -I$(top_srcdir)/src
-
--bin_PROGRAMS = ts_test ts_calibrate ts_print ts_print_raw ts_harvest
-+bin_PROGRAMS = ts_test ts_calibrate ts_print ts_print_raw ts_harvest ts_finddev inputattach
-
- ts_test_SOURCES = ts_test.c fbutils.c fbutils.h font_8x8.c font_8x16.c font.h
- ts_test_LDADD = $(top_builddir)/src/libts.la
-@@ -27,4 +27,10 @@
- ts_calibrate_LDADD = $(top_builddir)/src/libts.la
-
- ts_harvest_SOURCES = ts_harvest.c fbutils.c fbutils.h testutils.c testutils.h font_8x8.c font_8x16.c font.h
--ts_harvest_LDADD = $(top_builddir)/src/libts.la
-+ts_harvest_LDADD = $(top_builddir)/src/libts.la
-+
-+ts_finddev_SOURCES = ts_finddev.c
-+ts_finddev_LDADD = $(top_builddir)/src/libts.la
-+
-+inputattach_SOURCES = inputattach.c
-+inputattach_LDADD =
-diff -Naur tslib-org/tests/inputattach.c tslib-1.0/tests/inputattach.c
---- tslib-org/tests/inputattach.c 1970-01-01 02:00:00.000000000 +0200
-+++ tslib-1.0/tests/inputattach.c 2007-05-07 17:36:37.000000000 +0300
-@@ -0,0 +1,611 @@
-+/*
-+ * $Id: inputattach.c,v 1.24 2006/02/08 12:19:31 vojtech Exp $
-+ *
-+ * Copyright (c) 1999-2000 Vojtech Pavlik
-+ *
-+ * Sponsored by SuSE
-+ *
-+ * Twiddler support Copyright (c) 2001 Arndt Schoenewald
-+ * Sponsored by Quelltext AG (http://www.quelltext-ag.de), Dortmund, Germany
-+ */
-+
-+/*
-+ * Input line discipline attach program
-+ */
-+
-+/*
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ * Should you need to contact me, the author, you can do so either by
-+ * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
-+ * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
-+ */
-+
-+/* softa note:
-+cvs version is here:
-+http://cvs.sourceforge.net/viewcvs.py/ *checkout* /linuxconsole/ruby/utils/inputattach.c
-+*/
-+
-+#include <linux/serio.h>
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <sys/ioctl.h>
-+#include <sys/time.h>
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <fcntl.h>
-+#include <termios.h>
-+#include <string.h>
-+#include <assert.h>
-+#include <ctype.h>
-+
-+// softa patch!
-+/*
-+ * Serio types
-+ */
-+#ifndef SERIO_UNKNOWN
-+ #define SERIO_UNKNOWN 0x00
-+#endif
-+#ifndef SERIO_MSC
-+ #define SERIO_MSC 0x01
-+#endif
-+#ifndef SERIO_SUN
-+ #define SERIO_SUN 0x02
-+#endif
-+#ifndef SERIO_MS
-+ #define SERIO_MS 0x03
-+#endif
-+#ifndef SERIO_MP
-+ #define SERIO_MP 0x04
-+#endif
-+#ifndef SERIO_MZ
-+ #define SERIO_MZ 0x05
-+#endif
-+#ifndef SERIO_MZP
-+ #define SERIO_MZP 0x06
-+#endif
-+#ifndef SERIO_MZPP
-+ #define SERIO_MZPP 0x07
-+#endif
-+#ifndef SERIO_VSXXXAA
-+ #define SERIO_VSXXXAA 0x08
-+#endif
-+#ifndef SERIO_SUNKBD
-+ #define SERIO_SUNKBD 0x10
-+#endif
-+#ifndef SERIO_WARRIOR
-+ #define SERIO_WARRIOR 0x18
-+#endif
-+#ifndef SERIO_SPACEORB
-+ #define SERIO_SPACEORB 0x19
-+#endif
-+#ifndef SERIO_MAGELLAN
-+ #define SERIO_MAGELLAN 0x1a
-+#endif
-+#ifndef SERIO_SPACEBALL
-+ #define SERIO_SPACEBALL 0x1b
-+#endif
-+#ifndef SERIO_GUNZE
-+ #define SERIO_GUNZE 0x1c
-+#endif
-+#ifndef SERIO_IFORCE
-+ #define SERIO_IFORCE 0x1d
-+#endif
-+#ifndef SERIO_STINGER
-+ #define SERIO_STINGER 0x1e
-+#endif
-+#ifndef SERIO_NEWTON
-+ #define SERIO_NEWTON 0x1f
-+#endif
-+#ifndef SERIO_STOWAWAY
-+ #define SERIO_STOWAWAY 0x20
-+#endif
-+#ifndef SERIO_H3600
-+ #define SERIO_H3600 0x21
-+#endif
-+#ifndef SERIO_PS2SER
-+ #define SERIO_PS2SER 0x22
-+#endif
-+#ifndef SERIO_TWIDKBD
-+ #define SERIO_TWIDKBD 0x23
-+#endif
-+#ifndef SERIO_TWIDJOY
-+ #define SERIO_TWIDJOY 0x24
-+#endif
-+#ifndef SERIO_HIL
-+ #define SERIO_HIL 0x25
-+#endif
-+#ifndef SERIO_SNES232
-+ #define SERIO_SNES232 0x26
-+#endif
-+#ifndef SERIO_SEMTECH
-+ #define SERIO_SEMTECH 0x27
-+#endif
-+#ifndef SERIO_LKKBD
-+ #define SERIO_LKKBD 0x28
-+#endif
-+#ifndef SERIO_ELO
-+ #define SERIO_ELO 0x29
-+#endif
-+#ifndef SERIO_MICROTOUCH
-+ #define SERIO_MICROTOUCH 0x30
-+#endif
-+#ifndef SERIO_PENMOUNT
-+ #define SERIO_PENMOUNT 0x31
-+#endif
-+#ifndef SERIO_TOUCHRIGHT
-+ #define SERIO_TOUCHRIGHT 0x32
-+#endif
-+#ifndef SERIO_TOUCHWIN
-+ #define SERIO_TOUCHWIN 0x33
-+#endif
-+// end softa patch!
-+
-+int readchar(int fd, unsigned char *c, int timeout)
-+{
-+ struct timeval tv;
-+ fd_set set;
-+
-+ tv.tv_sec = 0;
-+ tv.tv_usec = timeout * 1000;
-+
-+ FD_ZERO(&set);
-+ FD_SET(fd, &set);
-+
-+ if (!select(fd+1, &set, NULL, NULL, &tv)) return -1;
-+ if (read(fd, c, 1) != 1) return -1;
-+
-+ return 0;
-+}
-+
-+
-+
-+void setline(int fd, int flags, int speed)
-+{
-+ struct termios t;
-+
-+ tcgetattr(fd, &t);
-+
-+ t.c_cflag = flags | CREAD | HUPCL | CLOCAL;
-+ t.c_iflag = IGNBRK | IGNPAR;
-+ t.c_oflag = 0;
-+ t.c_lflag = 0;
-+ t.c_cc[VMIN ] = 1;
-+ t.c_cc[VTIME] = 0;
-+
-+ cfsetispeed(&t, speed);
-+ cfsetospeed(&t, speed);
-+
-+ tcsetattr(fd, TCSANOW, &t);
-+}
-+
-+int logitech_command(int fd, char *c)
-+{
-+ int i;
-+ unsigned char d;
-+ for (i = 0; c[i]; i++) {
-+ write(fd, c + i, 1);
-+ if (readchar(fd, &d, 1000))
-+ return -1;
-+ if (c[i] != d)
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+int magellan_init(int fd, long *id, long *extra)
-+{
-+ write(fd, "m3\rpBB\rz\r", 9);
-+ return 0;
-+}
-+
-+int warrior_init(int fd, long *id, long *extra)
-+{
-+ if (logitech_command(fd, "*S")) return -1;
-+ setline(fd, CS8, B4800);
-+ return 0;
-+}
-+
-+int spaceball_waitchar(int fd, unsigned char c, unsigned char *d, int timeout)
-+{
-+ unsigned char b = 0;
-+
-+ while (!readchar(fd, &b, timeout)) {
-+ if (b == 0x0a) continue;
-+ *d++ = b;
-+ if (b == c) break;
-+ }
-+
-+ *d = 0;
-+
-+ return -(b != c);
-+}
-+
-+int spaceball_waitcmd(int fd, char c, char *d)
-+{
-+ int i;
-+
-+ for (i = 0; i < 8; i++) {
-+ if (spaceball_waitchar(fd, 0x0d, d, 1000))
-+ return -1;
-+ if (d[0] == c)
-+ return 0;
-+ }
-+
-+ return -1;
-+}
-+
-+int spaceball_cmd(int fd, char *c, char *d)
-+{
-+ int i;
-+
-+ for (i = 0; c[i]; i++)
-+ write(fd, c + i, 1);
-+ write(fd, "\r", 1);
-+
-+ i = spaceball_waitcmd(fd, toupper(c[0]), d);
-+
-+ return i;
-+}
-+
-+#define SPACEBALL_1003 1
-+#define SPACEBALL_2003B 3
-+#define SPACEBALL_2003C 4
-+#define SPACEBALL_3003C 7
-+#define SPACEBALL_4000FLX 8
-+#define SPACEBALL_4000FLX_L 9
-+
-+int spaceball_init(int fd, long *id, long *extra)
-+{
-+ char r[64];
-+
-+ if (spaceball_waitchar(fd, 0x11, r, 4000) ||
-+ spaceball_waitchar(fd, 0x0d, r, 1000))
-+ return -1;
-+
-+ if (spaceball_waitcmd(fd, '@', r))
-+ return -1;
-+
-+ if (strncmp("@1 Spaceball alive", r, 18))
-+ return -1;
-+
-+ if (spaceball_waitcmd(fd, '@', r))
-+ return -1;
-+
-+ if (spaceball_cmd(fd, "hm", r))
-+ return -1;
-+
-+ if (!strncmp("Hm2003B", r, 7))
-+ *id = SPACEBALL_2003B;
-+ if (!strncmp("Hm2003C", r, 7))
-+ *id = SPACEBALL_2003C;
-+ if (!strncmp("Hm3003C", r, 7))
-+ *id = SPACEBALL_3003C;
-+
-+ if (!strncmp("HvFirmware", r, 10)) {
-+
-+ if (spaceball_cmd(fd, "\"", r))
-+ return -1;
-+
-+ if (strncmp("\"1 Spaceball 4000 FLX", r, 21))
-+ return -1;
-+
-+ if (spaceball_waitcmd(fd, '"', r))
-+ return -1;
-+
-+ if (strstr(r, " L "))
-+ *id = SPACEBALL_4000FLX_L;
-+ else
-+ *id = SPACEBALL_4000FLX;
-+
-+ if (spaceball_waitcmd(fd, '"', r))
-+ return -1;
-+
-+ if (spaceball_cmd(fd, "YS", r))
-+ return -1;
-+
-+ if (spaceball_cmd(fd, "M", r))
-+ return -1;
-+
-+ return 0;
-+ }
-+
-+ if (spaceball_cmd(fd, "P@A@A", r) ||
-+ spaceball_cmd(fd, "FT@", r) ||
-+ spaceball_cmd(fd, "MSS", r))
-+ return -1;
-+
-+ return 0;
-+}
-+
-+int stinger_init(int fd, long *id, long *extra)
-+{
-+ int i;
-+ unsigned char c;
-+ unsigned char *response = "\r\n0600520058C272";
-+
-+ if (write(fd, " E5E5", 5) != 5) /* Enable command */
-+ return -1;
-+
-+ for (i = 0; i < 16; i++) /* Check for Stinger */
-+ if (readchar(fd, &c, 200) || (c != response[i]))
-+ return -1;
-+
-+ return 0;
-+}
-+
-+int mzp_init(int fd, long *id, long *extra)
-+{
-+ if (logitech_command(fd, "*X*q")) return -1;
-+ setline(fd, CS8, B9600);
-+ return 0;
-+}
-+
-+int newton_init(int fd, long *id, long *extra)
-+{
-+ int i;
-+ unsigned char c;
-+ unsigned char response[35] =
-+ { 0x16, 0x10, 0x02, 0x64, 0x5f, 0x69, 0x64, 0x00,
-+ 0x00, 0x00, 0x0c, 0x6b, 0x79, 0x62, 0x64, 0x61,
-+ 0x70, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x6e,
-+ 0x6f, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x10,
-+ 0x03, 0xdd, 0xe7 };
-+
-+ for (i = 0; i < 35; i++)
-+ if (readchar(fd, &c, 400) || (c != response[i]))
-+ return -1;
-+
-+ return 0;
-+}
-+
-+int twiddler_init(int fd, long *id, long *extra)
-+{
-+ unsigned char c[10];
-+ int count, line;
-+
-+ /* Turn DTR off, otherwise the Twiddler won't send any data. */
-+ if (ioctl(fd, TIOCMGET, &line)) return -1;
-+ line &= ~TIOCM_DTR;
-+ if (ioctl(fd, TIOCMSET, &line)) return -1;
-+
-+ /* Check whether the device on the serial line is the Twiddler.
-+ *
-+ * The Twiddler sends data packets of 5 bytes which have the following
-+ * properties: the MSB is 0 on the first and 1 on all other bytes, and
-+ * the high order nibble of the last byte is always 0x8.
-+ *
-+ * We read and check two of those 5 byte packets to be sure that we
-+ * are indeed talking to a Twiddler. */
-+
-+ /* Read at most 5 bytes until we find one with the MSB set to 0 */
-+ for (count = 0; count < 5; count++) {
-+ if (readchar(fd, c+0, 500)) return -1;
-+ if ((c[0] & 0x80) == 0) break;
-+ }
-+
-+ if (count == 5) {
-+ /* Could not find header byte in data stream */
-+ return -1;
-+ }
-+
-+ /* Read remaining 4 bytes plus the full next data packet */
-+ for (count = 1; count < 10; count++) {
-+ if (readchar(fd, c+count, 500)) return -1;
-+ }
-+
-+ /* Check whether the bytes of both data packets obey the rules */
-+ for (count = 1; count < 10; count++) {
-+ if ((count % 5 == 0 && (c[count] & 0x80) != 0)
-+ || (count % 5 == 4 && (c[count] & 0xF0) != 0x80)
-+ || (count % 5 != 0 && (c[count] & 0x80) != 0x80)) {
-+ /* Invalid byte in data packet */
-+ return -1;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+int penmount_init(int fd, long *id, long *extra)
-+{
-+ unsigned char init_cmd[5] = { 0xF2, 0x00, 0x00, 0x00, 0x00 };
-+ unsigned char start_cmd[5] = { 0xF1, 0x00, 0x00, 0x00, 0x00 };
-+ unsigned char c[10];
-+ int count;
-+
-+ /* try to initialize device */
-+ if (write( fd, init_cmd, 5 ) != 5)
-+ return -1;
-+
-+ /* read the responce */
-+ for (count = 0; count < 5; count ++) {
-+ if (readchar(fd, c+0, 500)) return -1;
-+ if (c[0] == 0xf2) break;
-+ }
-+
-+ if (readchar(fd, c+1, 500)) return -1;
-+ if (c[1] != 0xd9) return -1;
-+
-+ if (readchar(fd, c+2, 500)) return -1;
-+ if (c[2] != 0x0a) return -1;
-+
-+ /* the device is present! start it! */
-+ if (write( fd, start_cmd, 5 ) != 5)
-+ return -1;
-+
-+ return 0;
-+}
-+
-+int dump_init(int fd, long *id, long *extra)
-+{
-+ unsigned char c, o = 0;
-+
-+ c = 0x80;
-+
-+ if (write(fd, &c, 1) != 1) /* Enable command */
-+ return -1;
-+
-+ while (1)
-+ if (!readchar(fd, &c, 1)) {
-+ printf("%02x (%c) ", c, ((c > 32) && (c < 127)) ? c : 'x');
-+ o = 1;
-+ } else {
-+ if (o) {
-+ printf("\n");
-+ o = 0;
-+ }
-+ }
-+}
-+
-+struct input_types {
-+ char name[16];
-+ char name2[16];
-+ int speed;
-+ int flags;
-+ unsigned long type;
-+ unsigned long id;
-+ unsigned long extra;
-+ int flush;
-+ int (*init)(int fd, long *id, long *extra);
-+};
-+
-+struct input_types input_types[] = {
-+
-+{ "--sunkbd", "-skb", B1200, CS8, SERIO_SUNKBD, 0, 0, 1, NULL },
-+{ "--lkkbd", "-lk", B4800, CS8|CSTOPB, SERIO_LKKBD, 0, 0, 1, NULL },
-+{ "--vsxxx-aa", "-vs", B4800, CS8|CSTOPB|PARENB|PARODD,SERIO_VSXXXAA, 0, 0, 1, NULL },
-+{ "--spaceorb", "-orb", B9600, CS8, SERIO_SPACEORB, 0, 0, 1, NULL },
-+{ "--spaceball", "-sbl", B9600, CS8, SERIO_SPACEBALL,0, 0, 0, spaceball_init },
-+{ "--magellan", "-mag", B9600, CS8 | CSTOPB | CRTSCTS, SERIO_MAGELLAN, 0, 0, 1, magellan_init },
-+{ "--warrior", "-war", B1200, CS7 | CSTOPB, SERIO_WARRIOR, 0, 0, 1, warrior_init },
-+{ "--stinger", "-sting", B1200, CS8, SERIO_STINGER, 0, 0, 1, stinger_init },
-+{ "--mousesystems", "-msc", B1200, CS8, SERIO_MSC, 0, 0x01, 1, NULL },
-+{ "--sunmouse", "-sun", B1200, CS8, SERIO_SUN, 0, 0x01, 1, NULL },
-+{ "--microsoft", "-bare", B1200, CS7, SERIO_MS, 0, 0, 1, NULL },
-+{ "--mshack", "-ms", B1200, CS7, SERIO_MS, 0, 0x01, 1, NULL },
-+{ "--mouseman", "-mman", B1200, CS7, SERIO_MP, 0, 0x01, 1, NULL },
-+{ "--intellimouse", "-ms3", B1200, CS7, SERIO_MZ, 0, 0x11, 1, NULL },
-+{ "--mmwheel", "-mmw", B1200, CS7 | CSTOPB, SERIO_MZP, 0, 0x13, 1, mzp_init },
-+{ "--iforce", "-ifor", B38400, CS8, SERIO_IFORCE, 0, 0, 0, NULL },
-+{ "--newtonkbd", "-newt", B9600, CS8, SERIO_NEWTON, 0, 0, 0, newton_init },
-+{ "--h3600ts", "-ipaq", B115200, CS8, SERIO_H3600, 0, 0, 0, NULL },
-+{ "--stowawaykbd", "-ipaqkbd", B115200, CS8, SERIO_STOWAWAY, 0, 0, 0, NULL },
-+{ "--ps2serkbd", "-ps2ser", B1200, CS8, SERIO_PS2SER, 0, 0, 1, NULL },
-+{ "--twiddler", "-twid", B2400, CS8, SERIO_TWIDKBD, 0, 0, 0, twiddler_init },
-+{ "--twiddler-joy", "-twidjoy", B2400, CS8, SERIO_TWIDJOY, 0, 0, 0, twiddler_init },
-+{ "--elotouch", "-elo", B9600, CS8 | CRTSCTS, SERIO_ELO, 0, 0, 0, NULL },
-+{ "--elo4002", "-elo6b", B9600, CS8 | CRTSCTS, SERIO_ELO, 1, 0, 0, NULL },
-+{ "--elo271-140", "-elo4b", B9600, CS8 | CRTSCTS, SERIO_ELO, 2, 0, 0, NULL },
-+{ "--elo261-280", "-elo3b", B9600, CS8 | CRTSCTS, SERIO_ELO, 3, 0, 0, NULL },
-+{ "--dump", "-dump", B2400, CS8, 0, 0, 0, 0, dump_init },
-+{ "--dmc9000", "-dmc", B19200, CS8, SERIO_PENMOUNT, 0, 0, 0, penmount_init },
-+{ "", "", 0, 0 }
-+
-+};
-+
-+int main(int argc, char **argv)
-+{
-+ unsigned long devt;
-+ int ldisc;
-+ int type;
-+ long id, extra;
-+ int fd;
-+ char c;
-+
-+ if (argc < 2 || argc > 3 || !strcmp("--help", argv[1])) {
-+ puts("");
-+ puts("Usage: inputttach <mode> <device>");
-+ puts("");
-+ puts("Modes:");
-+ puts(" --sunkbd -skb Sun Type 4 and Type 5 keyboards");
-+ puts(" --lkkbd -lk DEC LK201 / LK401 keyboards");
-+ puts(" --vsxxx-aa -vs DEC VSXXX-AA / VSXXX-GA mouse and VSXXX-AB tablet");
-+ puts(" --spaceorb -orb SpaceOrb 360 / SpaceBall Avenger");
-+ puts(" --spaceball -sbl SpaceBall 2003 / 3003 / 4000 FLX");
-+ puts(" --magellan -mag Magellan / SpaceMouse");
-+ puts(" --warrior -war WingMan Warrior");
-+ puts(" --stinger -stng Gravis Stinger");
-+ puts(" --mousesystems -msc 3-button Mouse Systems mice");
-+ puts(" --sunmouse -sun 3-button Sun mice");
-+ puts(" --microsoft -bare 2-button Microsoft mice");
-+ puts(" --mshack -ms 3-button mice in Microsoft mode");
-+ puts(" --mouseman -mman 3-button Logitech and Genius mice");
-+ puts(" --intellimouse -ms3 Microsoft IntelliMouse");
-+ puts(" --mmwheel -mmw Logitech mice with 4-5 buttons or wheel");
-+ puts(" --iforce -ifor I-Force joysticks and wheels");
-+ puts(" --h3600ts -ipaq Ipaq h3600 touchscreen");
-+ puts(" --stowawaykbd -ipaqkbd Stowaway keyboard");
-+ puts(" --ps2serkbd -ps2ser PS/2 via serial keyboard");
-+ puts(" --twiddler -twid Handykey Twiddler chording keyboard");
-+ puts(" --twiddler-joy -twidjoy Handykey Twiddler used as a joystick");
-+ puts(" --dmc9000 -dmc DMC9000/Penpount touchscreen");
-+ puts("");
-+ return 1;
-+ }
-+
-+ for (type = 0; input_types[type].speed; type++) {
-+ if (!strncasecmp(argv[1], input_types[type].name, 16) ||
-+ !strncasecmp(argv[1], input_types[type].name2, 16))
-+ break;
-+ }
-+
-+ if (!input_types[type].speed) {
-+ fprintf(stderr, "inputattach: invalid mode\n");
-+ return 1;
-+ }
-+
-+ if ((fd = open(argv[2], O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) {
-+ perror("inputattach");
-+ return 1;
-+ }
-+
-+ setline(fd, input_types[type].flags, input_types[type].speed);
-+
-+ if (input_types[type].flush)
-+ while (!readchar(fd, &c, 100));
-+
-+ id = input_types[type].id;
-+ extra = input_types[type].extra;
-+
-+ if (input_types[type].init && input_types[type].init(fd, &id, &extra)) {
-+ fprintf(stderr, "inputattach: device initialization failed\n");
-+ return 1;
-+ }
-+
-+ ldisc = N_MOUSE;
-+ if(ioctl(fd, TIOCSETD, &ldisc)) {
-+ fprintf(stderr, "inputattach: can't set line discipline\n");
-+ return 1;
-+ }
-+
-+ devt = input_types[type].type | (id << 8) | (extra << 16);
-+
-+ if(ioctl(fd, SPIOCSTYPE, &devt)) {
-+ fprintf(stderr, "inputattach: can't set device type\n");
-+ return 1;
-+ }
-+
-+ read(fd, NULL, 0);
-+
-+ ldisc = 0;
-+ ioctl(fd, TIOCSETD, &ldisc);
-+ close(fd);
-+
-+ return 0;
-+}
-diff -Naur tslib-org/tests/ts_finddev.c tslib-1.0/tests/ts_finddev.c
---- tslib-org/tests/ts_finddev.c 1970-01-01 02:00:00.000000000 +0200
-+++ tslib-1.0/tests/ts_finddev.c 2007-05-07 17:36:37.000000000 +0300
-@@ -0,0 +1,75 @@
-+/*
-+ * tslib/src/ts_print.c
-+ *
-+ * Derived from tslib/src/ts_test.c by Douglas Lowder
-+ * Just prints touchscreen events -- does not paint them on framebuffer
-+ *
-+ * This file is placed under the GPL. Please see the file
-+ * COPYING for more details.
-+ *
-+ * Basic test program for touchscreen library.
-+ */
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <signal.h>
-+#include <sys/fcntl.h>
-+#include <sys/ioctl.h>
-+#include <sys/mman.h>
-+#include <sys/time.h>
-+#include <sys/types.h>
-+#include <unistd.h>
-+
-+#include "tslib.h"
-+
-+void usage( int argc, char** argv ) {
-+ printf( "Usage: %s device_name wait_for_sec\n", argv[0] );
-+ printf( "\tdevice_name - tdevice to probe, example /dev/input/event0\n" );
-+ printf( "\twait_for_sec - wait seconds for touch event, if 0 - dont wait!\n" );
-+ printf( "\tReturn codes:\n" );
-+ printf( "\t 0 - timeout expired without receiving event.\n" );
-+ printf( "\t But this maybe is TouchScreen.\n" );
-+ printf( "\t -1 - this is NOT TouchScreen device!\n" );
-+ printf( "\t 1 - this is TouchScreen for shure!\n" );
-+ exit(-1);
-+}
-+
-+void alarm_handler( int sig ) {
-+ // time is expired!
-+ exit(0);
-+}
-+
-+int main( int argc, char** argv )
-+{
-+ struct tsdev *ts;
-+ struct ts_sample samp;
-+ char *tsdevice=NULL;
-+ int waitsec;
-+ int ret;
-+
-+ if (argc != 3)
-+ usage( argc, argv );
-+
-+ tsdevice = argv[1];
-+ waitsec = atoi( argv[2] );
-+ if (waitsec < 0)
-+ usage( argc, argv );
-+
-+ ts = ts_open( tsdevice, 0 );
-+ if (!ts)
-+ return -1;
-+ if (ts_config(ts))
-+ return -1;
-+
-+ if (!waitsec) {
-+ return 0;
-+ }
-+
-+ printf( "Probe device %s, Please Touch Screen Anywhere in %i seconds! ... \n", tsdevice, waitsec );
-+ signal( SIGALRM, alarm_handler );
-+ alarm( waitsec );
-+ ret = ts_read_raw(ts, &samp, 1 );
-+ if (ret)
-+ return 1;
-+
-+ return -1;
-+}
--- /dev/null
+We need to build u-boot tools without a board configuration for the target.
+fw_env just uses config.h to define the default environment of the created
+image, so it really isn't mandatory.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff --git a/tools/env/fw_env.h b/tools/env/fw_env.h
+index aff471b..dfe7439 100644
+--- a/tools/env/fw_env.h
++++ b/tools/env/fw_env.h
+@@ -5,14 +5,6 @@
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+-/* Pull in the current config to define the default environment */
+-#ifndef __ASSEMBLY__
+-#define __ASSEMBLY__ /* get only #defines from config.h */
+-#include <config.h>
+-#undef __ASSEMBLY__
+-#else
+-#include <config.h>
+-#endif
+
+ /*
+ * To build the utility with the static configuration
--- /dev/null
+From 17e0d6ddd1dc5d04b8032bde2f2076134b0c6dd7 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 27 Aug 2014 14:21:32 +0200
+Subject: [PATCH] tools/env: change stripping strategy to allow no-stripping
+
+When building the U-Boot tools for non-ELF platforms (such as Blackfin
+FLAT), since commit 79fc0c5f498c3982aa4740c273ab1a9255063d9c
+("tools/env: cross-compile fw_printenv without setting HOSTCC"), the
+build fails because it tries to strip a FLAT binary, which does not
+make sense.
+
+This commit solves this by changing the stripping logic in
+tools/env/Makefile to be similar to the one in tools/Makefile. This
+logic continues to apply strip to the final binary, but does not abort
+the build if it fails, and does the stripping in place on the final
+binary. This allows the logic to work fine if stripping doesn't work,
+as it leaves the final binary untouched.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
+Cc: Sonic Zhang <sonic.zhang@analog.com>
+---
+An improved solution would be to be able to override STRIP completely
+by setting it to /bin/true, but the main Makefile enforces STRIP =
+$(CROSS_COMPILE)strip.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ tools/env/Makefile | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/tools/env/Makefile b/tools/env/Makefile
+index f5368bc..d047aa5 100644
+--- a/tools/env/Makefile
++++ b/tools/env/Makefile
+@@ -21,14 +21,16 @@ HOST_EXTRACFLAGS += -DMTD_OLD
+ endif
+
+ always := fw_printenv
+-hostprogs-y := fw_printenv_unstripped
++hostprogs-y := fw_printenv
+
+-fw_printenv_unstripped-objs := fw_env.o fw_env_main.o \
++fw_printenv-objs := fw_env.o fw_env_main.o \
+ crc32.o ctype.o linux_string.o \
+ env_attr.o env_flags.o aes.o
+
+-quiet_cmd_strip = STRIP $@
+- cmd_strip = $(STRIP) -o $@ $<
++quiet_cmd_crosstools_strip = STRIP $^
++ cmd_crosstools_strip = $(STRIP) $^; touch $@
+
+-$(obj)/fw_printenv: $(obj)/fw_printenv_unstripped FORCE
+- $(call if_changed,strip)
++$(obj)/.strip: $(obj)/fw_printenv
++ $(call cmd,crosstools_strip)
++
++always += .strip
+--
+2.0.0
+
+++ /dev/null
-We need to build u-boot tools without a board configuration for the target.
-fw_env just uses config.h to define the default environment of the created
-image, so it really isn't mandatory.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff --git a/tools/env/fw_env.h b/tools/env/fw_env.h
-index aff471b..dfe7439 100644
---- a/tools/env/fw_env.h
-+++ b/tools/env/fw_env.h
-@@ -5,14 +5,6 @@
- * SPDX-License-Identifier: GPL-2.0+
- */
-
--/* Pull in the current config to define the default environment */
--#ifndef __ASSEMBLY__
--#define __ASSEMBLY__ /* get only #defines from config.h */
--#include <config.h>
--#undef __ASSEMBLY__
--#else
--#include <config.h>
--#endif
-
- /*
- * To build the utility with the static configuration
+++ /dev/null
-From 17e0d6ddd1dc5d04b8032bde2f2076134b0c6dd7 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Wed, 27 Aug 2014 14:21:32 +0200
-Subject: [PATCH] tools/env: change stripping strategy to allow no-stripping
-
-When building the U-Boot tools for non-ELF platforms (such as Blackfin
-FLAT), since commit 79fc0c5f498c3982aa4740c273ab1a9255063d9c
-("tools/env: cross-compile fw_printenv without setting HOSTCC"), the
-build fails because it tries to strip a FLAT binary, which does not
-make sense.
-
-This commit solves this by changing the stripping logic in
-tools/env/Makefile to be similar to the one in tools/Makefile. This
-logic continues to apply strip to the final binary, but does not abort
-the build if it fails, and does the stripping in place on the final
-binary. This allows the logic to work fine if stripping doesn't work,
-as it leaves the final binary untouched.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
-Cc: Sonic Zhang <sonic.zhang@analog.com>
----
-An improved solution would be to be able to override STRIP completely
-by setting it to /bin/true, but the main Makefile enforces STRIP =
-$(CROSS_COMPILE)strip.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- tools/env/Makefile | 14 ++++++++------
- 1 file changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/tools/env/Makefile b/tools/env/Makefile
-index f5368bc..d047aa5 100644
---- a/tools/env/Makefile
-+++ b/tools/env/Makefile
-@@ -21,14 +21,16 @@ HOST_EXTRACFLAGS += -DMTD_OLD
- endif
-
- always := fw_printenv
--hostprogs-y := fw_printenv_unstripped
-+hostprogs-y := fw_printenv
-
--fw_printenv_unstripped-objs := fw_env.o fw_env_main.o \
-+fw_printenv-objs := fw_env.o fw_env_main.o \
- crc32.o ctype.o linux_string.o \
- env_attr.o env_flags.o aes.o
-
--quiet_cmd_strip = STRIP $@
-- cmd_strip = $(STRIP) -o $@ $<
-+quiet_cmd_crosstools_strip = STRIP $^
-+ cmd_crosstools_strip = $(STRIP) $^; touch $@
-
--$(obj)/fw_printenv: $(obj)/fw_printenv_unstripped FORCE
-- $(call if_changed,strip)
-+$(obj)/.strip: $(obj)/fw_printenv
-+ $(call cmd,crosstools_strip)
-+
-+always += .strip
---
-2.0.0
-
--- /dev/null
+--- udpcast-20120424/console.h 2005-12-22 22:59:18.000000000 +0000
++++ udpcast-20120424.mod/console.h 2013-05-22 22:22:19.835474140 +0100
+@@ -6,6 +6,8 @@
+ #include <winbase.h>
+ #endif /* __MINGW32__ */
+
++#include <sys/select.h>
++
+ #define prepareConsole udpc_prepareConsole
+ #define getConsoleFd udpc_getConsoleFd
+ #define restoreConsole udpc_restoreConsole
+++ /dev/null
---- udpcast-20120424/console.h 2005-12-22 22:59:18.000000000 +0000
-+++ udpcast-20120424.mod/console.h 2013-05-22 22:22:19.835474140 +0100
-@@ -6,6 +6,8 @@
- #include <winbase.h>
- #endif /* __MINGW32__ */
-
-+#include <sys/select.h>
-+
- #define prepareConsole udpc_prepareConsole
- #define getConsoleFd udpc_getConsoleFd
- #define restoreConsole udpc_restoreConsole
--- /dev/null
+By default, CMake assumes a project uses the C and C++ languages, so
+it checks for both the C and the C++ compiler to exist.
+
+However, unionfs-fuse is written purely in C, so checking for a C++
+compiler is useless, and even prevents unionfs-fuse from building
+properly on targets for which no C++ compiler is available.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/CMakeLists.txt
+===================================================================
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-project(unionfs-fuse)
++project(unionfs-fuse C)
+
+ cmake_minimum_required(VERSION 2.0)
+ INCLUDE (CheckIncludeFiles)
+++ /dev/null
-By default, CMake assumes a project uses the C and C++ languages, so
-it checks for both the C and the C++ compiler to exist.
-
-However, unionfs-fuse is written purely in C, so checking for a C++
-compiler is useless, and even prevents unionfs-fuse from building
-properly on targets for which no C++ compiler is available.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/CMakeLists.txt
-===================================================================
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,4 +1,4 @@
--project(unionfs-fuse)
-+project(unionfs-fuse C)
-
- cmake_minimum_required(VERSION 2.0)
- INCLUDE (CheckIncludeFiles)
--- /dev/null
+--- urg-0.8.18/src/c/connection/serial_ctrl_lin.c 2010-11-22 01:48:01.000000000 +0000
++++ urg-0.8.18.mod/src/c/connection/serial_ctrl_lin.c 2013-05-21 20:56:35.822025969 +0100
+@@ -17,7 +17,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <string.h>
+-
++#include <sys/select.h>
+ //#include <ctype.h>
+
+ enum {
+++ /dev/null
---- urg-0.8.18/src/c/connection/serial_ctrl_lin.c 2010-11-22 01:48:01.000000000 +0000
-+++ urg-0.8.18.mod/src/c/connection/serial_ctrl_lin.c 2013-05-21 20:56:35.822025969 +0100
-@@ -17,7 +17,7 @@
- #include <fcntl.h>
- #include <errno.h>
- #include <string.h>
--
-+#include <sys/select.h>
- //#include <ctype.h>
-
- enum {
--- /dev/null
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+---
+ usbmount.rules | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: b/usbmount.rules
+===================================================================
+--- a/usbmount.rules
++++ b/usbmount.rules
+@@ -1,7 +1,7 @@
+ # Rules for USBmount -*- conf -*-
+
+ KERNEL=="sd*", DRIVERS=="sbp2", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
+-KERNEL=="sd*", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
+-KERNEL=="ub*", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
++KERNEL=="sd*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
++KERNEL=="ub*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
+ KERNEL=="sd*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
+ KERNEL=="ub*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
--- /dev/null
+udev can provide all the values that usbmount determined using the
+blkid binary. This patch drops use of blkid in favor of using the
+environment variables set by udev. Thus it removes the dependency
+on blkid from usbmount.
+
+Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
+--- usbmount-0.0.22/usbmount.orig 2013-06-18 14:44:40.143096147 +0200
++++ usbmount-0.0.22/usbmount 2013-06-19 16:13:09.882434896 +0200
+@@ -59,11 +59,6 @@
+ exit 0
+ fi
+
+-if [ ! -x /sbin/blkid ]; then
+- log err "cannot execute /sbin/blkid"
+- exit 1
+-fi
+-
+ # Per Policy 9.3.2, directories under /var/run have to be created
+ # after every reboot.
+ if [ ! -e /var/run/usbmount ]; then
+@@ -83,15 +78,7 @@
+ trap '( lockfile-remove /var/run/usbmount/.mount )' 0
+ log debug "acquired lock /var/run/usbmount/.mount.lock"
+
+- # Grab device information from device and "divide it"
+- # FIXME: improvement: implement mounting by label (notice that labels
+- # can contain spaces, which makes things a little bit less comfortable).
+- DEVINFO=$(/sbin/blkid -p $DEVNAME)
+- FSTYPE=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]TYPE="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
+- UUID=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]UUID="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
+- USAGE=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]USAGE="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
+-
+- if ! echo $USAGE | egrep -q "(filesystem|disklabel)"; then
++ if ! echo $ID_FS_USAGE | egrep -q "(filesystem|disklabel)"; then
+ log info "$DEVNAME does not contain a filesystem or disklabel"
+ exit 1
+ fi
+@@ -101,14 +88,14 @@
+ log info "executing command: mount $DEVNAME"
+ mount $DEVNAME || log err "mount by DEVNAME with $DEVNAME wasn't successful; return code $?"
+
+- elif grep -q "^[[:blank:]]*UUID=$UUID" /etc/fstab; then
+- log info "executing command: mount -U $UUID"
+- mount -U $UUID || log err "mount by UUID with $UUID wasn't successful; return code $?"
++ elif grep -q "^[[:blank:]]*UUID=$ID_FS_UUID" /etc/fstab; then
++ log info "executing command: mount -U $ID_FS_UUID"
++ mount -U $ID_FS_UUID || log err "mount by UUID with $ID_FS_UUID wasn't successful; return code $?"
+
+ else
+- log debug "$DEVNAME contains filesystem type $FSTYPE"
++ log debug "$DEVNAME contains filesystem type $ID_FS_TYPE"
+
+- fstype=$FSTYPE
++ fstype=$ID_FS_TYPE
+ # Test if the filesystem type is in the list of filesystem
+ # types to mount.
+ if in_list "$fstype" "$FILESYSTEMS"; then
+@@ -176,11 +163,13 @@
+
+ # Run hook scripts; ignore errors.
+ export UM_DEVICE="$DEVNAME"
++ export UM_UUID="$ID_FS_UUID"
+ export UM_MOUNTPOINT="$mountpoint"
+ export UM_FILESYSTEM="$fstype"
+ export UM_MOUNTOPTIONS="$options"
+ export UM_VENDOR="$vendor"
+ export UM_MODEL="$model"
++ export UM_LABEL="$ID_FS_LABEL"
+ log info "executing command: run-parts /etc/usbmount/mount.d"
+ run-parts /etc/usbmount/mount.d || :
+ else
+++ /dev/null
-Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
----
- usbmount.rules | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: b/usbmount.rules
-===================================================================
---- a/usbmount.rules
-+++ b/usbmount.rules
-@@ -1,7 +1,7 @@
- # Rules for USBmount -*- conf -*-
-
- KERNEL=="sd*", DRIVERS=="sbp2", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
--KERNEL=="sd*", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
--KERNEL=="ub*", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
-+KERNEL=="sd*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
-+KERNEL=="ub*", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/share/usbmount/usbmount add"
- KERNEL=="sd*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
- KERNEL=="ub*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
+++ /dev/null
-udev can provide all the values that usbmount determined using the
-blkid binary. This patch drops use of blkid in favor of using the
-environment variables set by udev. Thus it removes the dependency
-on blkid from usbmount.
-
-Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
---- usbmount-0.0.22/usbmount.orig 2013-06-18 14:44:40.143096147 +0200
-+++ usbmount-0.0.22/usbmount 2013-06-19 16:13:09.882434896 +0200
-@@ -59,11 +59,6 @@
- exit 0
- fi
-
--if [ ! -x /sbin/blkid ]; then
-- log err "cannot execute /sbin/blkid"
-- exit 1
--fi
--
- # Per Policy 9.3.2, directories under /var/run have to be created
- # after every reboot.
- if [ ! -e /var/run/usbmount ]; then
-@@ -83,15 +78,7 @@
- trap '( lockfile-remove /var/run/usbmount/.mount )' 0
- log debug "acquired lock /var/run/usbmount/.mount.lock"
-
-- # Grab device information from device and "divide it"
-- # FIXME: improvement: implement mounting by label (notice that labels
-- # can contain spaces, which makes things a little bit less comfortable).
-- DEVINFO=$(/sbin/blkid -p $DEVNAME)
-- FSTYPE=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]TYPE="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
-- UUID=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]UUID="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
-- USAGE=$(echo "$DEVINFO" | sed 's/.*[[:blank:]]USAGE="\([^"]*\)".*/\1/g; s/[[:blank:]]*//g;')
--
-- if ! echo $USAGE | egrep -q "(filesystem|disklabel)"; then
-+ if ! echo $ID_FS_USAGE | egrep -q "(filesystem|disklabel)"; then
- log info "$DEVNAME does not contain a filesystem or disklabel"
- exit 1
- fi
-@@ -101,14 +88,14 @@
- log info "executing command: mount $DEVNAME"
- mount $DEVNAME || log err "mount by DEVNAME with $DEVNAME wasn't successful; return code $?"
-
-- elif grep -q "^[[:blank:]]*UUID=$UUID" /etc/fstab; then
-- log info "executing command: mount -U $UUID"
-- mount -U $UUID || log err "mount by UUID with $UUID wasn't successful; return code $?"
-+ elif grep -q "^[[:blank:]]*UUID=$ID_FS_UUID" /etc/fstab; then
-+ log info "executing command: mount -U $ID_FS_UUID"
-+ mount -U $ID_FS_UUID || log err "mount by UUID with $ID_FS_UUID wasn't successful; return code $?"
-
- else
-- log debug "$DEVNAME contains filesystem type $FSTYPE"
-+ log debug "$DEVNAME contains filesystem type $ID_FS_TYPE"
-
-- fstype=$FSTYPE
-+ fstype=$ID_FS_TYPE
- # Test if the filesystem type is in the list of filesystem
- # types to mount.
- if in_list "$fstype" "$FILESYSTEMS"; then
-@@ -176,11 +163,13 @@
-
- # Run hook scripts; ignore errors.
- export UM_DEVICE="$DEVNAME"
-+ export UM_UUID="$ID_FS_UUID"
- export UM_MOUNTPOINT="$mountpoint"
- export UM_FILESYSTEM="$fstype"
- export UM_MOUNTOPTIONS="$options"
- export UM_VENDOR="$vendor"
- export UM_MODEL="$model"
-+ export UM_LABEL="$ID_FS_LABEL"
- log info "executing command: run-parts /etc/usbmount/mount.d"
- run-parts /etc/usbmount/mount.d || :
- else
--- /dev/null
+Patch nixed from OpenWRT svn to fix build breakage.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+--- a/src/cds.c
++++ b/src/cds.c
+@@ -20,6 +20,8 @@
+ */
+
+ #include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
+ #include <upnp/upnp.h>
+ #include <upnp/upnptools.h>
+
+--- a/src/http.c
++++ b/src/http.c
+@@ -25,6 +25,7 @@
+ #include <errno.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <errno.h>
+
+@@ -77,8 +78,7 @@ set_info_file (struct File_Info *info, c
+ info->content_type = ixmlCloneDOMString (content_type);
+ }
+
+-static int
+-http_get_info (const char *filename, struct File_Info *info)
++int http_get_info (const char *filename, struct File_Info *info)
+ {
+ extern struct ushare_t *ut;
+ struct upnp_entry_t *entry = NULL;
+@@ -197,8 +197,7 @@ get_file_memory (const char *fullpath, c
+ return ((UpnpWebFileHandle) file);
+ }
+
+-static UpnpWebFileHandle
+-http_open (const char *filename, enum UpnpOpenFileMode mode)
++UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode)
+ {
+ extern struct ushare_t *ut;
+ struct upnp_entry_t *entry = NULL;
+@@ -251,8 +250,7 @@ http_open (const char *filename, enum Up
+ return ((UpnpWebFileHandle) file);
+ }
+
+-static int
+-http_read (UpnpWebFileHandle fh, char *buf, size_t buflen)
++int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen)
+ {
+ struct web_file_t *file = (struct web_file_t *) fh;
+ ssize_t len = -1;
+@@ -286,8 +284,7 @@ http_read (UpnpWebFileHandle fh, char *b
+ return len;
+ }
+
+-static int
+-http_write (UpnpWebFileHandle fh __attribute__((unused)),
++int http_write (UpnpWebFileHandle fh __attribute__((unused)),
+ char *buf __attribute__((unused)),
+ size_t buflen __attribute__((unused)))
+ {
+@@ -296,8 +293,7 @@ http_write (UpnpWebFileHandle fh __attri
+ return 0;
+ }
+
+-static int
+-http_seek (UpnpWebFileHandle fh, off_t offset, int origin)
++int http_seek (UpnpWebFileHandle fh, off_t offset, int origin)
+ {
+ struct web_file_t *file = (struct web_file_t *) fh;
+ off_t newpos = -1;
+@@ -371,8 +367,7 @@ http_seek (UpnpWebFileHandle fh, off_t o
+ return 0;
+ }
+
+-static int
+-http_close (UpnpWebFileHandle fh)
++int http_close (UpnpWebFileHandle fh)
+ {
+ struct web_file_t *file = (struct web_file_t *) fh;
+
+@@ -402,13 +397,3 @@ http_close (UpnpWebFileHandle fh)
+
+ return 0;
+ }
+-
+-struct UpnpVirtualDirCallbacks virtual_dir_callbacks =
+- {
+- http_get_info,
+- http_open,
+- http_read,
+- http_write,
+- http_seek,
+- http_close
+- };
+--- a/src/http.h
++++ b/src/http.h
+@@ -25,6 +25,18 @@
+ #include <upnp/upnp.h>
+ #include <upnp/upnptools.h>
+
+-struct UpnpVirtualDirCallbacks virtual_dir_callbacks;
++int http_get_info (const char *filename, struct File_Info *info);
++
++UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode);
++
++int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen);
++
++int http_seek (UpnpWebFileHandle fh, off_t offset, int origin);
++
++int http_write (UpnpWebFileHandle fh __attribute__((unused)),
++ char *buf __attribute__((unused)),
++ size_t buflen __attribute__((unused)));
++
++int http_close (UpnpWebFileHandle fh);
+
+ #endif /* _HTTP_H_ */
+--- a/src/ushare.c
++++ b/src/ushare.c
+@@ -188,7 +188,7 @@ handle_action_request (struct Upnp_Actio
+ if (strcmp (request->DevUDN + 5, ut->udn))
+ return;
+
+- ip = request->CtrlPtIPAddr.s_addr;
++ ip = (*(struct sockaddr_in *)&request->CtrlPtIPAddr).sin_addr.s_addr;
+ ip = ntohl (ip);
+ sprintf (val, "%d.%d.%d.%d",
+ (ip >> 24) & 0xFF, (ip >> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF);
+@@ -348,13 +348,23 @@ init_upnp (struct ushare_t *ut)
+
+ UpnpEnableWebserver (TRUE);
+
+- res = UpnpSetVirtualDirCallbacks (&virtual_dir_callbacks);
+- if (res != UPNP_E_SUCCESS)
+- {
+- log_error (_("Cannot set virtual directory callbacks\n"));
+- free (description);
+- return -1;
+- }
++#define upnp_set_callback(cb, func) \
++ do { \
++ res = UpnpVirtualDir_set_##cb##Callback(func); \
++ if (res != UPNP_E_SUCCESS) \
++ { \
++ log_error (_("Cannot set virtual directory callbacks\n")); \
++ free (description); \
++ return -1; \
++ } \
++ } while(0)
++
++ upnp_set_callback(GetInfo, http_get_info);
++ upnp_set_callback(Open, http_open);
++ upnp_set_callback(Read, http_read);
++ upnp_set_callback(Seek, http_seek);
++ upnp_set_callback(Write, http_write);
++ upnp_set_callback(Close, http_close);
+
+ res = UpnpAddVirtualDir (VIRTUAL_DIR);
+ if (res != UPNP_E_SUCCESS)
+--- a/src/cms.c
++++ b/src/cms.c
+@@ -20,6 +20,8 @@
+ */
+
+ #include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
+ #include <upnp/upnp.h>
+ #include <upnp/upnptools.h>
+
+--- a/src/mime.c
++++ b/src/mime.c
+@@ -20,6 +20,7 @@
+ */
+
+ #include <stdlib.h>
++#include <stdio.h>
+ #include <string.h>
+
+ #include "mime.h"
+--- a/src/presentation.c
++++ b/src/presentation.c
+@@ -19,6 +19,8 @@
+ */
+
+ #include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
+
+ #if HAVE_LANGINFO_CODESET
+ # include <langinfo.h>
+--- a/src/services.c
++++ b/src/services.c
+@@ -20,6 +20,8 @@
+ */
+
+ #include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
+ #include <upnp/upnp.h>
+ #include <upnp/upnptools.h>
+
+++ /dev/null
-Patch nixed from OpenWRT svn to fix build breakage.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
---- a/src/cds.c
-+++ b/src/cds.c
-@@ -20,6 +20,8 @@
- */
-
- #include <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
- #include <upnp/upnp.h>
- #include <upnp/upnptools.h>
-
---- a/src/http.c
-+++ b/src/http.c
-@@ -25,6 +25,7 @@
- #include <errno.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <string.h>
- #include <unistd.h>
- #include <errno.h>
-
-@@ -77,8 +78,7 @@ set_info_file (struct File_Info *info, c
- info->content_type = ixmlCloneDOMString (content_type);
- }
-
--static int
--http_get_info (const char *filename, struct File_Info *info)
-+int http_get_info (const char *filename, struct File_Info *info)
- {
- extern struct ushare_t *ut;
- struct upnp_entry_t *entry = NULL;
-@@ -197,8 +197,7 @@ get_file_memory (const char *fullpath, c
- return ((UpnpWebFileHandle) file);
- }
-
--static UpnpWebFileHandle
--http_open (const char *filename, enum UpnpOpenFileMode mode)
-+UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode)
- {
- extern struct ushare_t *ut;
- struct upnp_entry_t *entry = NULL;
-@@ -251,8 +250,7 @@ http_open (const char *filename, enum Up
- return ((UpnpWebFileHandle) file);
- }
-
--static int
--http_read (UpnpWebFileHandle fh, char *buf, size_t buflen)
-+int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen)
- {
- struct web_file_t *file = (struct web_file_t *) fh;
- ssize_t len = -1;
-@@ -286,8 +284,7 @@ http_read (UpnpWebFileHandle fh, char *b
- return len;
- }
-
--static int
--http_write (UpnpWebFileHandle fh __attribute__((unused)),
-+int http_write (UpnpWebFileHandle fh __attribute__((unused)),
- char *buf __attribute__((unused)),
- size_t buflen __attribute__((unused)))
- {
-@@ -296,8 +293,7 @@ http_write (UpnpWebFileHandle fh __attri
- return 0;
- }
-
--static int
--http_seek (UpnpWebFileHandle fh, off_t offset, int origin)
-+int http_seek (UpnpWebFileHandle fh, off_t offset, int origin)
- {
- struct web_file_t *file = (struct web_file_t *) fh;
- off_t newpos = -1;
-@@ -371,8 +367,7 @@ http_seek (UpnpWebFileHandle fh, off_t o
- return 0;
- }
-
--static int
--http_close (UpnpWebFileHandle fh)
-+int http_close (UpnpWebFileHandle fh)
- {
- struct web_file_t *file = (struct web_file_t *) fh;
-
-@@ -402,13 +397,3 @@ http_close (UpnpWebFileHandle fh)
-
- return 0;
- }
--
--struct UpnpVirtualDirCallbacks virtual_dir_callbacks =
-- {
-- http_get_info,
-- http_open,
-- http_read,
-- http_write,
-- http_seek,
-- http_close
-- };
---- a/src/http.h
-+++ b/src/http.h
-@@ -25,6 +25,18 @@
- #include <upnp/upnp.h>
- #include <upnp/upnptools.h>
-
--struct UpnpVirtualDirCallbacks virtual_dir_callbacks;
-+int http_get_info (const char *filename, struct File_Info *info);
-+
-+UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode);
-+
-+int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen);
-+
-+int http_seek (UpnpWebFileHandle fh, off_t offset, int origin);
-+
-+int http_write (UpnpWebFileHandle fh __attribute__((unused)),
-+ char *buf __attribute__((unused)),
-+ size_t buflen __attribute__((unused)));
-+
-+int http_close (UpnpWebFileHandle fh);
-
- #endif /* _HTTP_H_ */
---- a/src/ushare.c
-+++ b/src/ushare.c
-@@ -188,7 +188,7 @@ handle_action_request (struct Upnp_Actio
- if (strcmp (request->DevUDN + 5, ut->udn))
- return;
-
-- ip = request->CtrlPtIPAddr.s_addr;
-+ ip = (*(struct sockaddr_in *)&request->CtrlPtIPAddr).sin_addr.s_addr;
- ip = ntohl (ip);
- sprintf (val, "%d.%d.%d.%d",
- (ip >> 24) & 0xFF, (ip >> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF);
-@@ -348,13 +348,23 @@ init_upnp (struct ushare_t *ut)
-
- UpnpEnableWebserver (TRUE);
-
-- res = UpnpSetVirtualDirCallbacks (&virtual_dir_callbacks);
-- if (res != UPNP_E_SUCCESS)
-- {
-- log_error (_("Cannot set virtual directory callbacks\n"));
-- free (description);
-- return -1;
-- }
-+#define upnp_set_callback(cb, func) \
-+ do { \
-+ res = UpnpVirtualDir_set_##cb##Callback(func); \
-+ if (res != UPNP_E_SUCCESS) \
-+ { \
-+ log_error (_("Cannot set virtual directory callbacks\n")); \
-+ free (description); \
-+ return -1; \
-+ } \
-+ } while(0)
-+
-+ upnp_set_callback(GetInfo, http_get_info);
-+ upnp_set_callback(Open, http_open);
-+ upnp_set_callback(Read, http_read);
-+ upnp_set_callback(Seek, http_seek);
-+ upnp_set_callback(Write, http_write);
-+ upnp_set_callback(Close, http_close);
-
- res = UpnpAddVirtualDir (VIRTUAL_DIR);
- if (res != UPNP_E_SUCCESS)
---- a/src/cms.c
-+++ b/src/cms.c
-@@ -20,6 +20,8 @@
- */
-
- #include <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
- #include <upnp/upnp.h>
- #include <upnp/upnptools.h>
-
---- a/src/mime.c
-+++ b/src/mime.c
-@@ -20,6 +20,7 @@
- */
-
- #include <stdlib.h>
-+#include <stdio.h>
- #include <string.h>
-
- #include "mime.h"
---- a/src/presentation.c
-+++ b/src/presentation.c
-@@ -19,6 +19,8 @@
- */
-
- #include <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
-
- #if HAVE_LANGINFO_CODESET
- # include <langinfo.h>
---- a/src/services.c
-+++ b/src/services.c
-@@ -20,6 +20,8 @@
- */
-
- #include <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
- #include <upnp/upnp.h>
- #include <upnp/upnptools.h>
-
--- /dev/null
+Fix build against bluez4.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+--- ussp-push-0.11.orig/src/obex_socket.c 2012-11-01 09:58:51.049538708 +0100
++++ ussp-push-0.11/src/obex_socket.c 2012-11-01 12:10:10.719506951 +0100
+@@ -197,7 +197,7 @@ static int bt_sock_name2bth(int devid, c
+ for (i = 0; i < niinf; i++) {
+ char devname[128];
+
+- if (hci_remote_name(dd, &piinf[i].bdaddr, sizeof(devname) - 1,
++ if (hci_read_remote_name(dd, &piinf[i].bdaddr, sizeof(devname) - 1,
+ devname, 100000) >= 0) {
+ if (strcasecmp(devname, btname) == 0) {
+ *btaddr = piinf[i].bdaddr;
+++ /dev/null
-Fix build against bluez4.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
---- ussp-push-0.11.orig/src/obex_socket.c 2012-11-01 09:58:51.049538708 +0100
-+++ ussp-push-0.11/src/obex_socket.c 2012-11-01 12:10:10.719506951 +0100
-@@ -197,7 +197,7 @@ static int bt_sock_name2bth(int devid, c
- for (i = 0; i < niinf; i++) {
- char devname[128];
-
-- if (hci_remote_name(dd, &piinf[i].bdaddr, sizeof(devname) - 1,
-+ if (hci_read_remote_name(dd, &piinf[i].bdaddr, sizeof(devname) - 1,
- devname, 100000) >= 0) {
- if (strcasecmp(devname, btname) == 0) {
- *btaddr = piinf[i].bdaddr;
--- /dev/null
+valac: don't append -dirty to version
+
+Don't append -dirty to the valac version number if the Buildroot Git
+tree has uncommited changes.
+
+The patched script is meant for the valac developers, but it also
+activates if you build valac in a subdirectory of a Git tree (e.g.
+as is commonly done in Buildroot).
+
+The effect is that valac gets built as being version x.y.z-dirty, which
+breaks programs (such as Midori) that explicitly check for valac-x.y.z.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+diff -Nur a/build-aux/git-version-gen b/build-aux/git-version-gen
+--- a/build-aux/git-version-gen 2010-08-15 12:49:03.000000000 +0100
++++ b/build-aux/git-version-gen 2012-05-14 10:17:19.977204570 +0100
+@@ -135,7 +135,7 @@
+ *) # Append the suffix only if there isn't one already.
+ case $v in
+ *-dirty) ;;
+- *) v="$v-dirty" ;;
++ #*) v="$v-dirty" ;;
+ esac ;;
+ esac
+
+++ /dev/null
-valac: don't append -dirty to version
-
-Don't append -dirty to the valac version number if the Buildroot Git
-tree has uncommited changes.
-
-The patched script is meant for the valac developers, but it also
-activates if you build valac in a subdirectory of a Git tree (e.g.
-as is commonly done in Buildroot).
-
-The effect is that valac gets built as being version x.y.z-dirty, which
-breaks programs (such as Midori) that explicitly check for valac-x.y.z.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-diff -Nur a/build-aux/git-version-gen b/build-aux/git-version-gen
---- a/build-aux/git-version-gen 2010-08-15 12:49:03.000000000 +0100
-+++ b/build-aux/git-version-gen 2012-05-14 10:17:19.977204570 +0100
-@@ -135,7 +135,7 @@
- *) # Append the suffix only if there isn't one already.
- case $v in
- *-dirty) ;;
-- *) v="$v-dirty" ;;
-+ #*) v="$v-dirty" ;;
- esac ;;
- esac
-
--- /dev/null
+From bd9d2af89e45081132c150e5e4bdf9a12dfca693 Mon Sep 17 00:00:00 2001
+From: Pierre Habouzit <madcoder@debian.org>
+Date: Tue, 10 May 2011 23:11:45 +0200
+Subject: [PATCH 1/2] workaround SIGSEGV on PPC.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Pierre Habouzit <madcoder@debian.org>
+Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
+---
+ coregrind/m_machine.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/coregrind/m_machine.c b/coregrind/m_machine.c
+index 42d8ce8..3c9900f 100644
+--- a/coregrind/m_machine.c
++++ b/coregrind/m_machine.c
+@@ -27,6 +27,10 @@
+ The GNU General Public License is contained in the file COPYING.
+ */
+
++#ifdef __powerpc__
++# pragma GCC optimize ("-O0")
++#endif
++
+ #include "pub_core_basics.h"
+ #include "pub_core_vki.h"
+ #include "pub_core_libcsetjmp.h" // setjmp facilities
+--
+1.9.1
+
--- /dev/null
+From 6bb94d51e25b394bc9c52699f744a7cc06ffca15 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= <jezz@sysmic.org>
+Date: Thu, 2 Jan 2014 16:00:06 +0100
+Subject: [PATCH 2/2] don't enable largefile support unconditionally on uClibc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+uClibc can be compiled without largefile support (and errors out if
+_FILE_OFFSET_BITS is set to 64), so don't define it if that combination
+is detected.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
+---
+ coregrind/m_initimg/initimg-linux.c | 4 ++++
+ coregrind/m_main.c | 4 ++++
+ coregrind/m_ume/elf.c | 4 ++++
+ 3 files changed, 12 insertions(+)
+
+diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c
+index a8e7d27..fa670cb 100644
+--- a/coregrind/m_initimg/initimg-linux.c
++++ b/coregrind/m_initimg/initimg-linux.c
+@@ -55,7 +55,11 @@
+
+ /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
+ #define _GNU_SOURCE
++#include <features.h>
++/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
+ #define _FILE_OFFSET_BITS 64
++#endif
+ /* This is for ELF types etc, and also the AT_ constants. */
+ #include <elf.h>
+ /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
+diff --git a/coregrind/m_main.c b/coregrind/m_main.c
+index e7159a8..4371a1f 100644
+--- a/coregrind/m_main.c
++++ b/coregrind/m_main.c
+@@ -3143,7 +3143,11 @@ asm(
+
+ /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
+ #define _GNU_SOURCE
++#include <features.h>
++/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
+ #define _FILE_OFFSET_BITS 64
++#endif
+ /* This is in order to get AT_NULL and AT_PAGESIZE. */
+ #include <elf.h>
+ /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
+diff --git a/coregrind/m_ume/elf.c b/coregrind/m_ume/elf.c
+index 4615da3..06992a4 100644
+--- a/coregrind/m_ume/elf.c
++++ b/coregrind/m_ume/elf.c
+@@ -48,7 +48,11 @@
+
+ /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
+ #define _GNU_SOURCE
++#include <features.h>
++/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
+ #define _FILE_OFFSET_BITS 64
++#endif
+ /* This is for ELF types etc, and also the AT_ constants. */
+ #include <elf.h>
+ /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
+--
+1.9.1
+
--- /dev/null
+Define PTRACE_GETSIGINFO on PowerPC when not available
+
+uClibc 0.9.33.2 does not define PTRACE_GETSIGINFO in PowerPC. Even
+though Buildroot has a uClibc patch doing that, it doesn't solve the
+case of external uClibc toolchain from other sources (such as
+Crosstool-NG). Therefore, this patch modifies Valgrind to define
+PTRACE_GETSIGINFO on PowerPC to the right value, when such definition
+is not available from the C library.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/coregrind/vgdb-invoker-ptrace.c
+===================================================================
+--- a/coregrind/vgdb-invoker-ptrace.c
++++ b/coregrind/vgdb-invoker-ptrace.c
+@@ -71,6 +71,12 @@
+ # endif
+ #endif
+
++#if defined(__powerpc__)
++# ifndef PTRACE_GETSIGINFO
++# define PTRACE_GETSIGINFO 0x4202
++# endif
++#endif
++
+ #if VEX_HOST_WORDSIZE == 8
+ typedef Addr64 CORE_ADDR;
+ #elif VEX_HOST_WORDSIZE == 4
+++ /dev/null
-From bd9d2af89e45081132c150e5e4bdf9a12dfca693 Mon Sep 17 00:00:00 2001
-From: Pierre Habouzit <madcoder@debian.org>
-Date: Tue, 10 May 2011 23:11:45 +0200
-Subject: [PATCH 1/2] workaround SIGSEGV on PPC.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Pierre Habouzit <madcoder@debian.org>
-Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
----
- coregrind/m_machine.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/coregrind/m_machine.c b/coregrind/m_machine.c
-index 42d8ce8..3c9900f 100644
---- a/coregrind/m_machine.c
-+++ b/coregrind/m_machine.c
-@@ -27,6 +27,10 @@
- The GNU General Public License is contained in the file COPYING.
- */
-
-+#ifdef __powerpc__
-+# pragma GCC optimize ("-O0")
-+#endif
-+
- #include "pub_core_basics.h"
- #include "pub_core_vki.h"
- #include "pub_core_libcsetjmp.h" // setjmp facilities
---
-1.9.1
-
+++ /dev/null
-From 6bb94d51e25b394bc9c52699f744a7cc06ffca15 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= <jezz@sysmic.org>
-Date: Thu, 2 Jan 2014 16:00:06 +0100
-Subject: [PATCH 2/2] don't enable largefile support unconditionally on uClibc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-uClibc can be compiled without largefile support (and errors out if
-_FILE_OFFSET_BITS is set to 64), so don't define it if that combination
-is detected.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
----
- coregrind/m_initimg/initimg-linux.c | 4 ++++
- coregrind/m_main.c | 4 ++++
- coregrind/m_ume/elf.c | 4 ++++
- 3 files changed, 12 insertions(+)
-
-diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c
-index a8e7d27..fa670cb 100644
---- a/coregrind/m_initimg/initimg-linux.c
-+++ b/coregrind/m_initimg/initimg-linux.c
-@@ -55,7 +55,11 @@
-
- /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
- #define _GNU_SOURCE
-+#include <features.h>
-+/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
- #define _FILE_OFFSET_BITS 64
-+#endif
- /* This is for ELF types etc, and also the AT_ constants. */
- #include <elf.h>
- /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
-diff --git a/coregrind/m_main.c b/coregrind/m_main.c
-index e7159a8..4371a1f 100644
---- a/coregrind/m_main.c
-+++ b/coregrind/m_main.c
-@@ -3143,7 +3143,11 @@ asm(
-
- /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
- #define _GNU_SOURCE
-+#include <features.h>
-+/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
- #define _FILE_OFFSET_BITS 64
-+#endif
- /* This is in order to get AT_NULL and AT_PAGESIZE. */
- #include <elf.h>
- /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
-diff --git a/coregrind/m_ume/elf.c b/coregrind/m_ume/elf.c
-index 4615da3..06992a4 100644
---- a/coregrind/m_ume/elf.c
-+++ b/coregrind/m_ume/elf.c
-@@ -48,7 +48,11 @@
-
- /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
- #define _GNU_SOURCE
-+#include <features.h>
-+/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
-+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
- #define _FILE_OFFSET_BITS 64
-+#endif
- /* This is for ELF types etc, and also the AT_ constants. */
- #include <elf.h>
- /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
---
-1.9.1
-
+++ /dev/null
-Define PTRACE_GETSIGINFO on PowerPC when not available
-
-uClibc 0.9.33.2 does not define PTRACE_GETSIGINFO in PowerPC. Even
-though Buildroot has a uClibc patch doing that, it doesn't solve the
-case of external uClibc toolchain from other sources (such as
-Crosstool-NG). Therefore, this patch modifies Valgrind to define
-PTRACE_GETSIGINFO on PowerPC to the right value, when such definition
-is not available from the C library.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/coregrind/vgdb-invoker-ptrace.c
-===================================================================
---- a/coregrind/vgdb-invoker-ptrace.c
-+++ b/coregrind/vgdb-invoker-ptrace.c
-@@ -71,6 +71,12 @@
- # endif
- #endif
-
-+#if defined(__powerpc__)
-+# ifndef PTRACE_GETSIGINFO
-+# define PTRACE_GETSIGINFO 0x4202
-+# endif
-+#endif
-+
- #if VEX_HOST_WORDSIZE == 8
- typedef Addr64 CORE_ADDR;
- #elif VEX_HOST_WORDSIZE == 4
--- /dev/null
+configure: do not test for CXX, it's not needed
+
+There is no C++ source file, so no reason to require a C++ compiler.
+
+Reported-by: Peter Korsgaard <jacmet@uclibc.org>
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch sent upstream
+( not yet in archives, awaits moderator approval... :-/ )
+
+diff -durN vde2-2.3.2.orig/configure.ac vde2-2.3.2/configure.ac
+--- vde2-2.3.2.orig/configure.ac 2011-11-23 17:41:19.000000000 +0100
++++ vde2-2.3.2/configure.ac 2012-12-14 21:56:47.146319686 +0100
+@@ -11,7 +11,6 @@
+ AC_CONFIG_LIBOBJ_DIR(src/common)
+
+ # Checks for programs.
+-AC_PROG_CXX
+ AC_PROG_CC
+ AC_PROG_INSTALL
+ AC_PROG_LN_S
+++ /dev/null
-configure: do not test for CXX, it's not needed
-
-There is no C++ source file, so no reason to require a C++ compiler.
-
-Reported-by: Peter Korsgaard <jacmet@uclibc.org>
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
----
-Patch sent upstream
-( not yet in archives, awaits moderator approval... :-/ )
-
-diff -durN vde2-2.3.2.orig/configure.ac vde2-2.3.2/configure.ac
---- vde2-2.3.2.orig/configure.ac 2011-11-23 17:41:19.000000000 +0100
-+++ vde2-2.3.2/configure.ac 2012-12-14 21:56:47.146319686 +0100
-@@ -11,7 +11,6 @@
- AC_CONFIG_LIBOBJ_DIR(src/common)
-
- # Checks for programs.
--AC_PROG_CXX
- AC_PROG_CC
- AC_PROG_INSTALL
- AC_PROG_LN_S
--- /dev/null
+diff -uNr vlc-2.1.5.org/bin/Makefile.am vlc-2.1.5/bin/Makefile.am
+--- vlc-2.1.5.org/bin/Makefile.am 2013-12-03 10:12:34.000000000 +0100
++++ vlc-2.1.5/bin/Makefile.am 2014-08-03 12:30:06.722154518 +0200
+@@ -1,7 +1,7 @@
+ # Building vlc
+ #
+ bin_PROGRAMS = vlc
+-noinst_PROGRAMS = vlc-static
++noinst_PROGRAMS =
+ noinst_DATA =
+ vlclib_PROGRAMS = vlc-cache-gen
+ EXTRA_PROGRAMS = vlc-wrapper
+diff -uNr vlc-2.1.5.org/Makefile.am vlc-2.1.5/Makefile.am
+--- vlc-2.1.5.org/Makefile.am 2014-02-14 18:40:50.000000000 +0100
++++ vlc-2.1.5/Makefile.am 2014-08-03 12:29:52.059010766 +0200
+@@ -607,7 +607,7 @@
+ cd lib && $(MAKE) $(AM_MAKEFLAGS) libvlc.la
+
+ core: libvlc vlc$(EXEEXT)
+- cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT) vlc-static$(EXEEXT)
++ cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT)
+
+ doc:
+ cd doc && $(MAKE) $(AM_MAKEFLAGS) doc
--- /dev/null
+From 88bf3313850bc7f0e6db21daee2b8d8e607b7bb4 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sat, 8 Feb 2014 14:33:27 +0100
+Subject: [PATCH] configure.ac: add check for libgcrypt-config program
+
+This allows to override the default libgcrypt-config location (which is
+useful when cross-compiling), instead of using the one from the host
+system.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ configure.ac | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 02fb8aa..5a2267b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3943,16 +3943,17 @@ dnl
+ AC_ARG_ENABLE(libgcrypt,
+ [ --disable-libgcrypt gcrypt support (default enabled)])
+ AS_IF([test "${enable_libgcrypt}" != "no"], [
++ AC_PATH_PROG(GCRYPT_CONFIG,libgcrypt-config,libgcrypt-config)
+ AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
+- libgcrypt-config --version >/dev/null || \
++ ${GCRYPT_CONFIG} --version >/dev/null || \
+ AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
+ AC_CHECK_LIB(gcrypt, gcry_control, [
+ have_libgcrypt="yes"
+- GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
+- GCRYPT_LIBS="`libgcrypt-config --libs`"
++ GCRYPT_CFLAGS="`${GCRYPT_CONFIG} --cflags`"
++ GCRYPT_LIBS="`${GCRYPT_CONFIG} --libs`"
+ ], [
+ AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
+- ], [`libgcrypt-config --libs`])
++ ], [`${GCRYPT_CONFIG} --libs`])
+ ], [
+ AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
+ ], [#include <gcrypt.h>]
+--
+1.8.5.4
+
--- /dev/null
+automake: add subdir-objects option
+
+Our version of automake warns if this option is enabled and source files
+in subdirectories are used.
+
+It doesn't really seems to have a noticable effect on the build, but it
+does remove a lot of annoying warnings.
+
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
+
+diff -Nrup vlc-2.1.2.orig/configure.ac vlc-2.1.2/configure.ac
+--- vlc-2.1.2.orig/configure.ac 2014-02-27 00:22:19.512944952 +0100
++++ vlc-2.1.2/configure.ac 2014-02-27 00:24:21.360940651 +0100
+@@ -24,7 +24,7 @@ AC_CANONICAL_BUILD
+ AC_CANONICAL_HOST
+ AC_PRESERVE_HELP_ORDER
+
+-AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
++AM_INIT_AUTOMAKE(tar-ustar color-tests foreign subdir-objects)
+ AC_CONFIG_HEADERS([config.h])
+
+ # Disable with "./configure --disable-silent-rules" or "make V=1"
--- /dev/null
+VLC works fine with ffmpeg 2.4, ported from upstream
+http://git.videolan.org/?p=vlc/vlc-2.2.git;a=blobdiff;f=configure.ac;h=21a9f89585297ebb98481a29719ef35a20f040db;hp=570da72136f4a5f8142fbab696ece53dd7f84b6a;hb=4ed2079b77b8aeb6d7885cc9828a90290018a7a4;hpb=18fbf7fd17a0f4e9cabcc2e34ac54b210ba08b27
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/configure.ac b/configure.ac
+index 570da72..21a9f89 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2285,9 +2285,9 @@ AC_ARG_ENABLE(avcodec,
+ [ --enable-avcodec libavcodec codec (default enabled)])
+ AS_IF([test "${enable_avcodec}" != "no"], [
+ PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 53.34.0 libavutil >= 51.22.0], [
+- PKG_CHECK_EXISTS([libavcodec < 56],, [
+- AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
+- ])
++ dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
++ dnl AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
++ dnl ])
+ VLC_SAVE_FLAGS
+ CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
+ CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
+++ /dev/null
-diff -uNr vlc-2.1.5.org/bin/Makefile.am vlc-2.1.5/bin/Makefile.am
---- vlc-2.1.5.org/bin/Makefile.am 2013-12-03 10:12:34.000000000 +0100
-+++ vlc-2.1.5/bin/Makefile.am 2014-08-03 12:30:06.722154518 +0200
-@@ -1,7 +1,7 @@
- # Building vlc
- #
- bin_PROGRAMS = vlc
--noinst_PROGRAMS = vlc-static
-+noinst_PROGRAMS =
- noinst_DATA =
- vlclib_PROGRAMS = vlc-cache-gen
- EXTRA_PROGRAMS = vlc-wrapper
-diff -uNr vlc-2.1.5.org/Makefile.am vlc-2.1.5/Makefile.am
---- vlc-2.1.5.org/Makefile.am 2014-02-14 18:40:50.000000000 +0100
-+++ vlc-2.1.5/Makefile.am 2014-08-03 12:29:52.059010766 +0200
-@@ -607,7 +607,7 @@
- cd lib && $(MAKE) $(AM_MAKEFLAGS) libvlc.la
-
- core: libvlc vlc$(EXEEXT)
-- cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT) vlc-static$(EXEEXT)
-+ cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT)
-
- doc:
- cd doc && $(MAKE) $(AM_MAKEFLAGS) doc
+++ /dev/null
-From 88bf3313850bc7f0e6db21daee2b8d8e607b7bb4 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 8 Feb 2014 14:33:27 +0100
-Subject: [PATCH] configure.ac: add check for libgcrypt-config program
-
-This allows to override the default libgcrypt-config location (which is
-useful when cross-compiling), instead of using the one from the host
-system.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- configure.ac | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 02fb8aa..5a2267b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3943,16 +3943,17 @@ dnl
- AC_ARG_ENABLE(libgcrypt,
- [ --disable-libgcrypt gcrypt support (default enabled)])
- AS_IF([test "${enable_libgcrypt}" != "no"], [
-+ AC_PATH_PROG(GCRYPT_CONFIG,libgcrypt-config,libgcrypt-config)
- AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
-- libgcrypt-config --version >/dev/null || \
-+ ${GCRYPT_CONFIG} --version >/dev/null || \
- AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
- AC_CHECK_LIB(gcrypt, gcry_control, [
- have_libgcrypt="yes"
-- GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
-- GCRYPT_LIBS="`libgcrypt-config --libs`"
-+ GCRYPT_CFLAGS="`${GCRYPT_CONFIG} --cflags`"
-+ GCRYPT_LIBS="`${GCRYPT_CONFIG} --libs`"
- ], [
- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
-- ], [`libgcrypt-config --libs`])
-+ ], [`${GCRYPT_CONFIG} --libs`])
- ], [
- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
- ], [#include <gcrypt.h>]
---
-1.8.5.4
-
+++ /dev/null
-automake: add subdir-objects option
-
-Our version of automake warns if this option is enabled and source files
-in subdirectories are used.
-
-It doesn't really seems to have a noticable effect on the build, but it
-does remove a lot of annoying warnings.
-
-Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
-
-diff -Nrup vlc-2.1.2.orig/configure.ac vlc-2.1.2/configure.ac
---- vlc-2.1.2.orig/configure.ac 2014-02-27 00:22:19.512944952 +0100
-+++ vlc-2.1.2/configure.ac 2014-02-27 00:24:21.360940651 +0100
-@@ -24,7 +24,7 @@ AC_CANONICAL_BUILD
- AC_CANONICAL_HOST
- AC_PRESERVE_HELP_ORDER
-
--AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
-+AM_INIT_AUTOMAKE(tar-ustar color-tests foreign subdir-objects)
- AC_CONFIG_HEADERS([config.h])
-
- # Disable with "./configure --disable-silent-rules" or "make V=1"
+++ /dev/null
-VLC works fine with ffmpeg 2.4, ported from upstream
-http://git.videolan.org/?p=vlc/vlc-2.2.git;a=blobdiff;f=configure.ac;h=21a9f89585297ebb98481a29719ef35a20f040db;hp=570da72136f4a5f8142fbab696ece53dd7f84b6a;hb=4ed2079b77b8aeb6d7885cc9828a90290018a7a4;hpb=18fbf7fd17a0f4e9cabcc2e34ac54b210ba08b27
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff --git a/configure.ac b/configure.ac
-index 570da72..21a9f89 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2285,9 +2285,9 @@ AC_ARG_ENABLE(avcodec,
- [ --enable-avcodec libavcodec codec (default enabled)])
- AS_IF([test "${enable_avcodec}" != "no"], [
- PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 53.34.0 libavutil >= 51.22.0], [
-- PKG_CHECK_EXISTS([libavcodec < 56],, [
-- AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
-- ])
-+ dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
-+ dnl AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
-+ dnl ])
- VLC_SAVE_FLAGS
- CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
- CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
--- /dev/null
+Misc. Makefile cleanup and fix the VERSION definition.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+---
+diff -purN vpnc-0.5.3.orig/Makefile vpnc-0.5.3/Makefile
+--- vpnc-0.5.3.orig/Makefile 2012-08-06 00:03:22.677914146 +0200
++++ vpnc-0.5.3/Makefile 2012-08-06 00:06:58.506744901 +0200
+@@ -19,21 +19,19 @@
+ #
+ # $Id: Makefile 312 2008-06-15 18:09:42Z Joerg Mayer $
+
+-DESTDIR=
+-PREFIX=/usr/local
+-ETCDIR=/etc/vpnc
+-BINDIR=$(PREFIX)/bin
+-SBINDIR=$(PREFIX)/sbin
+-MANDIR=$(PREFIX)/share/man
+-DOCDIR=$(PREFIX)/share/doc/vpnc
+-
+-SRCS = sysdep.c vpnc-debug.c isakmp-pkt.c tunip.c config.c dh.c math_group.c supp.c decrypt-utils.c
+-BINS = vpnc cisco-decrypt
+-OBJS = $(addsuffix .o,$(basename $(SRCS)))
++DESTDIR =
++PREFIX ?= /usr/local
++ETCDIR = /etc/vpnc
++BINDIR = $(PREFIX)/bin
++SBINDIR = $(PREFIX)/sbin
++MANDIR = $(PREFIX)/share/man
++DOCDIR = $(PREFIX)/share/doc/vpnc
++
++SRCS = sysdep.c vpnc-debug.c isakmp-pkt.c tunip.c config.c dh.c math_group.c supp.c decrypt-utils.c
++BINS = vpnc cisco-decrypt
++OBJS = $(addsuffix .o,$(basename $(SRCS)))
+ BINOBJS = $(addsuffix .o,$(BINS))
+ BINSRCS = $(addsuffix .c,$(BINS))
+-VERSION := $(shell sh mk-version)
+-RELEASE_VERSION := $(shell cat VERSION)
+
+ # The license of vpnc (Gpl >= 2) is quite likely incompatible with the
+ # openssl license. Openssl is currently used to provide certificate
+@@ -50,13 +48,13 @@ RELEASE_VERSION := $(shell cat VERSION)
+ #OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION
+ #OPENSSLLIBS = -lcrypto
+
+-CC=gcc
+-CFLAGS ?= -O3 -g
+-CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings
+-CFLAGS += $(shell libgcrypt-config --cflags)
+-CPPFLAGS += -DVERSION=\"$(VERSION)\" $(OPENSSL_GPL_VIOLATION)
+-LDFLAGS ?= -g
+-LDFLAGS += $(shell libgcrypt-config --libs) $(OPENSSLLIBS)
++CC ?= gcc
++CFLAGS ?= -O3 -g
++CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings
++CFLAGS += $(shell libgcrypt-config --cflags)
++CPPFLAGS += $(OPENSSL_GPL_VIOLATION)
++LDFLAGS ?= -g
++LDFLAGS += $(shell libgcrypt-config --libs) $(OPENSSLLIBS)
+
+ ifeq ($(shell uname -s), SunOS)
+ LDFLAGS += -lnsl -lresolv -lsocket
+@@ -84,7 +82,7 @@ cisco-decrypt : cisco-decrypt.o decrypt-
+ $(CC) -o $@ $^ $(LDFLAGS)
+
+ .depend: $(SRCS) $(BINSRCS)
+- $(CC) -MM $(SRCS) $(BINSRCS) $(CFLAGS) $(CPPFLAGS) > $@
++ $(CC) -MM $(SRCS) $(BINSRCS) $(CPPFLAGS) $(CFLAGS) > $@
+
+ vpnc-debug.c vpnc-debug.h : isakmp.h enum2debug.pl
+ LC_ALL=C perl -w ./enum2debug.pl isakmp.h >vpnc-debug.c 2>vpnc-debug.h
--- /dev/null
+diff -urN vpnc-0.5.3-0rig/Makefile vpnc-0.5.3/Makefile
+--- vpnc-0.5.3-0rig/Makefile 2008-11-19 21:36:12.000000000 +0100
++++ vpnc-0.5.3/Makefile 2009-01-15 00:38:36.000000000 +0100
+@@ -72,7 +72,10 @@
+ $(CC) -o $@ $^ $(LDFLAGS)
+
+ vpnc.8 : vpnc.8.template makeman.pl vpnc
+- ./makeman.pl
++ @echo "Cannot make manual when cross compiling"
++ touch $@
++
++# ./makeman.pl
+
+ vpnc-script : vpnc-script.in
+ sed -e 's,@''PREFIX''@,$(PREFIX),g' $< > $@ && chmod 755 $@
--- /dev/null
+diff -rdup vpnc-0.5.1.oorig/config.c vpnc-0.5.1/config.c
+--- vpnc-0.5.1.oorig/config.c 2007-09-10 22:39:48.000000000 +0200
++++ vpnc-0.5.1/config.c 2007-09-19 14:19:46.000000000 +0200
+@@ -538,7 +538,7 @@ static char *get_config_filename(const c
+ {
+ char *realname;
+
+- asprintf(&realname, "%s%s%s", index(name, '/') ? "" : "/etc/vpnc/", name, add_dot_conf ? ".conf" : "");
++ asprintf(&realname, "%s%s%s", strchr(name, '/') ? "" : "/etc/vpnc/", name, add_dot_conf ? ".conf" : "");
+ return realname;
+ }
+
+++ /dev/null
-Misc. Makefile cleanup and fix the VERSION definition.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-
----
-diff -purN vpnc-0.5.3.orig/Makefile vpnc-0.5.3/Makefile
---- vpnc-0.5.3.orig/Makefile 2012-08-06 00:03:22.677914146 +0200
-+++ vpnc-0.5.3/Makefile 2012-08-06 00:06:58.506744901 +0200
-@@ -19,21 +19,19 @@
- #
- # $Id: Makefile 312 2008-06-15 18:09:42Z Joerg Mayer $
-
--DESTDIR=
--PREFIX=/usr/local
--ETCDIR=/etc/vpnc
--BINDIR=$(PREFIX)/bin
--SBINDIR=$(PREFIX)/sbin
--MANDIR=$(PREFIX)/share/man
--DOCDIR=$(PREFIX)/share/doc/vpnc
--
--SRCS = sysdep.c vpnc-debug.c isakmp-pkt.c tunip.c config.c dh.c math_group.c supp.c decrypt-utils.c
--BINS = vpnc cisco-decrypt
--OBJS = $(addsuffix .o,$(basename $(SRCS)))
-+DESTDIR =
-+PREFIX ?= /usr/local
-+ETCDIR = /etc/vpnc
-+BINDIR = $(PREFIX)/bin
-+SBINDIR = $(PREFIX)/sbin
-+MANDIR = $(PREFIX)/share/man
-+DOCDIR = $(PREFIX)/share/doc/vpnc
-+
-+SRCS = sysdep.c vpnc-debug.c isakmp-pkt.c tunip.c config.c dh.c math_group.c supp.c decrypt-utils.c
-+BINS = vpnc cisco-decrypt
-+OBJS = $(addsuffix .o,$(basename $(SRCS)))
- BINOBJS = $(addsuffix .o,$(BINS))
- BINSRCS = $(addsuffix .c,$(BINS))
--VERSION := $(shell sh mk-version)
--RELEASE_VERSION := $(shell cat VERSION)
-
- # The license of vpnc (Gpl >= 2) is quite likely incompatible with the
- # openssl license. Openssl is currently used to provide certificate
-@@ -50,13 +48,13 @@ RELEASE_VERSION := $(shell cat VERSION)
- #OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION
- #OPENSSLLIBS = -lcrypto
-
--CC=gcc
--CFLAGS ?= -O3 -g
--CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings
--CFLAGS += $(shell libgcrypt-config --cflags)
--CPPFLAGS += -DVERSION=\"$(VERSION)\" $(OPENSSL_GPL_VIOLATION)
--LDFLAGS ?= -g
--LDFLAGS += $(shell libgcrypt-config --libs) $(OPENSSLLIBS)
-+CC ?= gcc
-+CFLAGS ?= -O3 -g
-+CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings
-+CFLAGS += $(shell libgcrypt-config --cflags)
-+CPPFLAGS += $(OPENSSL_GPL_VIOLATION)
-+LDFLAGS ?= -g
-+LDFLAGS += $(shell libgcrypt-config --libs) $(OPENSSLLIBS)
-
- ifeq ($(shell uname -s), SunOS)
- LDFLAGS += -lnsl -lresolv -lsocket
-@@ -84,7 +82,7 @@ cisco-decrypt : cisco-decrypt.o decrypt-
- $(CC) -o $@ $^ $(LDFLAGS)
-
- .depend: $(SRCS) $(BINSRCS)
-- $(CC) -MM $(SRCS) $(BINSRCS) $(CFLAGS) $(CPPFLAGS) > $@
-+ $(CC) -MM $(SRCS) $(BINSRCS) $(CPPFLAGS) $(CFLAGS) > $@
-
- vpnc-debug.c vpnc-debug.h : isakmp.h enum2debug.pl
- LC_ALL=C perl -w ./enum2debug.pl isakmp.h >vpnc-debug.c 2>vpnc-debug.h
+++ /dev/null
-diff -urN vpnc-0.5.3-0rig/Makefile vpnc-0.5.3/Makefile
---- vpnc-0.5.3-0rig/Makefile 2008-11-19 21:36:12.000000000 +0100
-+++ vpnc-0.5.3/Makefile 2009-01-15 00:38:36.000000000 +0100
-@@ -72,7 +72,10 @@
- $(CC) -o $@ $^ $(LDFLAGS)
-
- vpnc.8 : vpnc.8.template makeman.pl vpnc
-- ./makeman.pl
-+ @echo "Cannot make manual when cross compiling"
-+ touch $@
-+
-+# ./makeman.pl
-
- vpnc-script : vpnc-script.in
- sed -e 's,@''PREFIX''@,$(PREFIX),g' $< > $@ && chmod 755 $@
+++ /dev/null
-diff -rdup vpnc-0.5.1.oorig/config.c vpnc-0.5.1/config.c
---- vpnc-0.5.1.oorig/config.c 2007-09-10 22:39:48.000000000 +0200
-+++ vpnc-0.5.1/config.c 2007-09-19 14:19:46.000000000 +0200
-@@ -538,7 +538,7 @@ static char *get_config_filename(const c
- {
- char *realname;
-
-- asprintf(&realname, "%s%s%s", index(name, '/') ? "" : "/etc/vpnc/", name, add_dot_conf ? ".conf" : "");
-+ asprintf(&realname, "%s%s%s", strchr(name, '/') ? "" : "/etc/vpnc/", name, add_dot_conf ? ".conf" : "");
- return realname;
- }
-
--- /dev/null
+Makefile.in: fix installation steps
+
+Not sure what the reason for that patch is, but originally added by Ulf
+Samuelsson <ulf.samuelsson@atmel.com>, when upgrading from 2.6.x to 3.0.2.
+
+yann.morin.1998@free.fr: the initial commit in the Buildroot tree had the
+SoB by Ulf, but it was not explicitly reproduced here in the patch; so I
+added it here directly in the patch.
+
+Somewhat-signed-off-by: Ulf Samuelsson <ulf.samuelsson@atmel.com>
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+diff -durN vtun-3.0.3.orig/Makefile.in vtun-3.0.3/Makefile.in
+--- vtun-3.0.3.orig/Makefile.in 2012-07-09 06:55:38.000000000 +0200
++++ vtun-3.0.3/Makefile.in 2013-02-16 23:28:47.034036869 +0100
+@@ -28,7 +28,7 @@
+ LEXFLAGS = -t
+
+ INSTALL = @INSTALL@
+-INSTALL_OWNER = -o root -g 0
++INSTALL_OWNER =
+
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+@@ -89,16 +89,15 @@
+
+ install_config:
+ $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR)
+- if [ ! -f $(ETC_DIR)/vtund.conf ]; then \
+- $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); \
+- fi
++ $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR);
++ $(INSTALL) -m 600 $(INSTALL_OWNER) scripts/vtund-start.conf $(DESTDIR)$(ETC_DIR);
+
+ install: vtund install_config install_man
+- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run
+ $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR)
+ $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR)
+ $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR)
+ $(INSTALL) -m 755 $(INSTALL_OWNER) vtund $(DESTDIR)$(SBIN_DIR)
+- $(BIN_DIR)/strip $(DESTDIR)$(SBIN_DIR)/vtund
++ $(INSTALL) -m 755 -D $(INSTALL_OWNER) scripts/vtund.rc.debian \
++ $(DESTDIR)$(ETC_DIR)/init.d/S90vtun
+
+ # DO NOT DELETE THIS LINE -- make depend depends on it.
--- /dev/null
+configure.in: do not hard-code search patch for SSL headers
+
+Do. Not. Do. That. It breaks cross-compilation.
+
+Also use the SSL headers dir to look for blowfish headers.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN vtun-3.0.3.orig/configure.in vtun-3.0.3/configure.in
+--- vtun-3.0.3.orig/configure.in 2009-03-29 12:08:51.000000000 +0200
++++ vtun-3.0.3/configure.in 2013-02-16 23:44:44.004339680 +0100
+@@ -166,7 +166,7 @@
+ AC_MSG_RESULT()
+ AC_CHECKING( for md5 Library and Header files ... )
+ AC_SEARCH_HEADERS(md5.h,
+- $SSL_HDR_DIR /usr/include/openssl "" /usr/include /usr/include/ssl /usr/local/include /usr/local/ssl/include /usr/include/sys,
++ $SSL_HDR_DIR "" ,
+ ,
+ AC_MSG_ERROR( SSL headers not found. )
+ )
+@@ -176,7 +176,7 @@
+ AC_MSG_RESULT()
+ AC_CHECKING( for blowfish Library and Header files ... )
+ AC_SEARCH_HEADERS(blowfish.h,
+- $BLOWFISH_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto,
++ $BLOWFISH_HDR_DIR $SSL_HDR_DIR,
+ AC_CHECK_LIB(crypto, BF_set_key,
+ [
+ LIBS="$LIBS -lcrypto"
+@@ -193,7 +193,7 @@
+ AC_MSG_RESULT()
+ AC_CHECKING( for AES Library and Header files ... )
+ AC_SEARCH_HEADERS(aes.h,
+- $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto,
++ $SSL_HDR_DIR ,
+ AC_CHECK_LIB(crypto, AES_set_encrypt_key,
+ [
+ AC_DEFINE(HAVE_SSL_AES)
+@@ -208,7 +208,7 @@
+ AC_MSG_RESULT()
+ AC_CHECKING( for EVP Library and Header files ... )
+ AC_SEARCH_HEADERS(evp.h,
+- $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto,
++ $SSL_HDR_DIR ,
+ AC_CHECK_LIB(crypto, EVP_EncryptInit,
+ [
+ AC_DEFINE(HAVE_SSL_EVP)
--- /dev/null
+configure.in: minimal syntax fixup for autoreconf
+
+This is the strictly minimal syntax fixups to make autoreconf happy...
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Note: configure.in is still full of incorrect syntax, but fixing it is
+a task for another day, and would have to be upstreamed. But upstream
+looks to be moribund at best, if not dead... :-(
+
+So, keep it for ourselves for now... Too bad, vtun is really helpfull.
+
+--- vtun-3.0.3.orig/configure.in 2013-02-16 23:54:52.582451817 +0100
++++ vtun-3.0.3/configure.in 2013-02-17 00:03:13.640887353 +0100
+@@ -110,10 +110,10 @@
+ AC_SEARCH_LIBS(nanosleep, rt posix4)
+
+ dnl Check for setproctitle in libutil
+-AC_SEARCH_LIBS(setproctitle, util bsd, AC_DEFINE(HAVE_SETPROC_TITLE) )
++AC_SEARCH_LIBS(setproctitle, util bsd, AC_DEFINE([HAVE_SETPROC_TITLE],[],[Define to set title in /proc]) )
+
+ if test "$SHAPER" = "yes"; then
+- AC_DEFINE(HAVE_SHAPER)
++ AC_DEFINE([HAVE_SHAPER],[],[Define to use shapper])
+ fi
+
+ if test "$ZLIB" = "yes"; then
+@@ -121,7 +121,7 @@
+ AC_CHECKING( for ZLIB Library and Header files ... )
+ AC_CHECK_LIB(z, deflate,
+ LIBS="$LIBS -lz"
+- AC_DEFINE(HAVE_ZLIB),
++ AC_DEFINE([HAVE_ZLIB],[],[Define to use ZLIB]),
+ AC_MSG_ERROR( Zlib library not found.)
+ )
+ fi
+@@ -148,7 +148,7 @@
+ AC_CHECK_LIB($I, lzo1x_decompress,
+ [
+ LIBS="$LIBS -l"$I
+- AC_DEFINE(HAVE_LZO)
++ AC_DEFINE([HAVE_LZO],[],[Define to use LZO])
+ havelzo=1
+ ]
+ )
+@@ -180,8 +180,8 @@
+ AC_CHECK_LIB(crypto, BF_set_key,
+ [
+ LIBS="$LIBS -lcrypto"
+- AC_DEFINE(HAVE_SSL)
+- AC_DEFINE(HAVE_SSL_BLOWFISH)
++ AC_DEFINE([HAVE_SSL],[],[Define to use SSL])
++ AC_DEFINE([HAVE_SSL_BLOWFISH],[],[Define to use blowfish])
+ ],
+ AC_MSG_ERROR( SSL library not found. )
+ ),
+@@ -196,7 +196,7 @@
+ $SSL_HDR_DIR ,
+ AC_CHECK_LIB(crypto, AES_set_encrypt_key,
+ [
+- AC_DEFINE(HAVE_SSL_AES)
++ AC_DEFINE([HAVE_SSL_AES],[],[Define to use AES])
+ ],
+ AC_MSG_ERROR( AES library not found. )
+ ),
+@@ -211,7 +211,7 @@
+ $SSL_HDR_DIR ,
+ AC_CHECK_LIB(crypto, EVP_EncryptInit,
+ [
+- AC_DEFINE(HAVE_SSL_EVP)
++ AC_DEFINE([HAVE_SSL_EVP],[],Define to use EVP)
+ ],
+ AC_MSG_ERROR( EVP library not found. )
+ ),
+@@ -220,7 +220,7 @@
+ fi
+
+ if test "$NATHACK" = "yes"; then
+- AC_DEFINE(ENABLE_NAT_HACK)
++ AC_DEFINE([ENABLE_NAT_HACK],[],[Define to use NAT hack])
+ fi
+
+ if test "$SOCKS" = "yes"; then
+@@ -274,6 +274,6 @@
+ REL=`echo 'BRANCH-3_X' | tr -d '$: \-' | sed 's/^[A-Za-z]*//' | sed 's/\_/\./'`
+ changequote([,])
+
+-AC_DEFINE_UNQUOTED(VTUN_VER, "$REL `date '+%m/%d/%Y'`")
++AC_DEFINE_UNQUOTED([VTUN_VER], ["$REL `date '+%m/%d/%Y'`"], [vtun version])
+
+ AC_OUTPUT(Makefile)
+++ /dev/null
-Makefile.in: fix installation steps
-
-Not sure what the reason for that patch is, but originally added by Ulf
-Samuelsson <ulf.samuelsson@atmel.com>, when upgrading from 2.6.x to 3.0.2.
-
-yann.morin.1998@free.fr: the initial commit in the Buildroot tree had the
-SoB by Ulf, but it was not explicitly reproduced here in the patch; so I
-added it here directly in the patch.
-
-Somewhat-signed-off-by: Ulf Samuelsson <ulf.samuelsson@atmel.com>
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-diff -durN vtun-3.0.3.orig/Makefile.in vtun-3.0.3/Makefile.in
---- vtun-3.0.3.orig/Makefile.in 2012-07-09 06:55:38.000000000 +0200
-+++ vtun-3.0.3/Makefile.in 2013-02-16 23:28:47.034036869 +0100
-@@ -28,7 +28,7 @@
- LEXFLAGS = -t
-
- INSTALL = @INSTALL@
--INSTALL_OWNER = -o root -g 0
-+INSTALL_OWNER =
-
- prefix = @prefix@
- exec_prefix = @exec_prefix@
-@@ -89,16 +89,15 @@
-
- install_config:
- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR)
-- if [ ! -f $(ETC_DIR)/vtund.conf ]; then \
-- $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); \
-- fi
-+ $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR);
-+ $(INSTALL) -m 600 $(INSTALL_OWNER) scripts/vtund-start.conf $(DESTDIR)$(ETC_DIR);
-
- install: vtund install_config install_man
-- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run
- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR)
- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR)
- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR)
- $(INSTALL) -m 755 $(INSTALL_OWNER) vtund $(DESTDIR)$(SBIN_DIR)
-- $(BIN_DIR)/strip $(DESTDIR)$(SBIN_DIR)/vtund
-+ $(INSTALL) -m 755 -D $(INSTALL_OWNER) scripts/vtund.rc.debian \
-+ $(DESTDIR)$(ETC_DIR)/init.d/S90vtun
-
- # DO NOT DELETE THIS LINE -- make depend depends on it.
+++ /dev/null
-configure.in: do not hard-code search patch for SSL headers
-
-Do. Not. Do. That. It breaks cross-compilation.
-
-Also use the SSL headers dir to look for blowfish headers.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
-diff -durN vtun-3.0.3.orig/configure.in vtun-3.0.3/configure.in
---- vtun-3.0.3.orig/configure.in 2009-03-29 12:08:51.000000000 +0200
-+++ vtun-3.0.3/configure.in 2013-02-16 23:44:44.004339680 +0100
-@@ -166,7 +166,7 @@
- AC_MSG_RESULT()
- AC_CHECKING( for md5 Library and Header files ... )
- AC_SEARCH_HEADERS(md5.h,
-- $SSL_HDR_DIR /usr/include/openssl "" /usr/include /usr/include/ssl /usr/local/include /usr/local/ssl/include /usr/include/sys,
-+ $SSL_HDR_DIR "" ,
- ,
- AC_MSG_ERROR( SSL headers not found. )
- )
-@@ -176,7 +176,7 @@
- AC_MSG_RESULT()
- AC_CHECKING( for blowfish Library and Header files ... )
- AC_SEARCH_HEADERS(blowfish.h,
-- $BLOWFISH_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto,
-+ $BLOWFISH_HDR_DIR $SSL_HDR_DIR,
- AC_CHECK_LIB(crypto, BF_set_key,
- [
- LIBS="$LIBS -lcrypto"
-@@ -193,7 +193,7 @@
- AC_MSG_RESULT()
- AC_CHECKING( for AES Library and Header files ... )
- AC_SEARCH_HEADERS(aes.h,
-- $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto,
-+ $SSL_HDR_DIR ,
- AC_CHECK_LIB(crypto, AES_set_encrypt_key,
- [
- AC_DEFINE(HAVE_SSL_AES)
-@@ -208,7 +208,7 @@
- AC_MSG_RESULT()
- AC_CHECKING( for EVP Library and Header files ... )
- AC_SEARCH_HEADERS(evp.h,
-- $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto,
-+ $SSL_HDR_DIR ,
- AC_CHECK_LIB(crypto, EVP_EncryptInit,
- [
- AC_DEFINE(HAVE_SSL_EVP)
+++ /dev/null
-configure.in: minimal syntax fixup for autoreconf
-
-This is the strictly minimal syntax fixups to make autoreconf happy...
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
----
-Note: configure.in is still full of incorrect syntax, but fixing it is
-a task for another day, and would have to be upstreamed. But upstream
-looks to be moribund at best, if not dead... :-(
-
-So, keep it for ourselves for now... Too bad, vtun is really helpfull.
-
---- vtun-3.0.3.orig/configure.in 2013-02-16 23:54:52.582451817 +0100
-+++ vtun-3.0.3/configure.in 2013-02-17 00:03:13.640887353 +0100
-@@ -110,10 +110,10 @@
- AC_SEARCH_LIBS(nanosleep, rt posix4)
-
- dnl Check for setproctitle in libutil
--AC_SEARCH_LIBS(setproctitle, util bsd, AC_DEFINE(HAVE_SETPROC_TITLE) )
-+AC_SEARCH_LIBS(setproctitle, util bsd, AC_DEFINE([HAVE_SETPROC_TITLE],[],[Define to set title in /proc]) )
-
- if test "$SHAPER" = "yes"; then
-- AC_DEFINE(HAVE_SHAPER)
-+ AC_DEFINE([HAVE_SHAPER],[],[Define to use shapper])
- fi
-
- if test "$ZLIB" = "yes"; then
-@@ -121,7 +121,7 @@
- AC_CHECKING( for ZLIB Library and Header files ... )
- AC_CHECK_LIB(z, deflate,
- LIBS="$LIBS -lz"
-- AC_DEFINE(HAVE_ZLIB),
-+ AC_DEFINE([HAVE_ZLIB],[],[Define to use ZLIB]),
- AC_MSG_ERROR( Zlib library not found.)
- )
- fi
-@@ -148,7 +148,7 @@
- AC_CHECK_LIB($I, lzo1x_decompress,
- [
- LIBS="$LIBS -l"$I
-- AC_DEFINE(HAVE_LZO)
-+ AC_DEFINE([HAVE_LZO],[],[Define to use LZO])
- havelzo=1
- ]
- )
-@@ -180,8 +180,8 @@
- AC_CHECK_LIB(crypto, BF_set_key,
- [
- LIBS="$LIBS -lcrypto"
-- AC_DEFINE(HAVE_SSL)
-- AC_DEFINE(HAVE_SSL_BLOWFISH)
-+ AC_DEFINE([HAVE_SSL],[],[Define to use SSL])
-+ AC_DEFINE([HAVE_SSL_BLOWFISH],[],[Define to use blowfish])
- ],
- AC_MSG_ERROR( SSL library not found. )
- ),
-@@ -196,7 +196,7 @@
- $SSL_HDR_DIR ,
- AC_CHECK_LIB(crypto, AES_set_encrypt_key,
- [
-- AC_DEFINE(HAVE_SSL_AES)
-+ AC_DEFINE([HAVE_SSL_AES],[],[Define to use AES])
- ],
- AC_MSG_ERROR( AES library not found. )
- ),
-@@ -211,7 +211,7 @@
- $SSL_HDR_DIR ,
- AC_CHECK_LIB(crypto, EVP_EncryptInit,
- [
-- AC_DEFINE(HAVE_SSL_EVP)
-+ AC_DEFINE([HAVE_SSL_EVP],[],Define to use EVP)
- ],
- AC_MSG_ERROR( EVP library not found. )
- ),
-@@ -220,7 +220,7 @@
- fi
-
- if test "$NATHACK" = "yes"; then
-- AC_DEFINE(ENABLE_NAT_HACK)
-+ AC_DEFINE([ENABLE_NAT_HACK],[],[Define to use NAT hack])
- fi
-
- if test "$SOCKS" = "yes"; then
-@@ -274,6 +274,6 @@
- REL=`echo 'BRANCH-3_X' | tr -d '$: \-' | sed 's/^[A-Za-z]*//' | sed 's/\_/\./'`
- changequote([,])
-
--AC_DEFINE_UNQUOTED(VTUN_VER, "$REL `date '+%m/%d/%Y'`")
-+AC_DEFINE_UNQUOTED([VTUN_VER], ["$REL `date '+%m/%d/%Y'`"], [vtun version])
-
- AC_OUTPUT(Makefile)
--- /dev/null
+Add missing symbol for WebCore::TextIterator::getLocationAndLengthFromRange
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+From f5bb58f9096061f00c948e668335811d364ba360 Mon Sep 17 00:00:00 2001
+From: "kov@webkit.org" <kov@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
+Date: Thu, 7 Feb 2013 13:48:46 +0000
+Subject: [PATCH] Unreviewed build fix after r141196 for 32 bits autotools.
+
+* Source/autotools/symbols.filter: restore 32 bits version of the
+WebCore::TextIterator::getLocationAndLengthFromRange(WebCore::Node*,
+WebCore::Range const*, unsigned int&, unsigned int&) symbol.
+
+git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+---
+ ChangeLog | 8 ++++++++
+ Source/autotools/symbols.filter | 1 +
+ 2 files changed, 9 insertions(+)
+
+diff --git a/Source/autotools/symbols.filter b/Source/autotools/symbols.filter
+index 9d730b3..2edefaf 100644
+--- a/Source/autotools/symbols.filter
++++ b/Source/autotools/symbols.filter
+@@ -57,6 +57,7 @@ _ZN7WebCore11HistoryItem16setDocumentStateERKN3WTF6VectorINS1_6StringELj0EEE;
+ _ZN7WebCore11HistoryItem16setDocumentStateERKN3WTF6VectorINS1_6StringELm0EEE;
+ _ZN7WebCore11MemoryCache14resourceForURLERKNS_4KURLE;
+ _ZN7WebCore12TextIterator26rangeFromLocationAndLengthEPNS_13ContainerNodeEiib;
++_ZN7WebCore12TextIterator29getLocationAndLengthFromRangeEPNS_4NodeEPKNS_5RangeERjS6_;
+ _ZN7WebCore12TextIterator29getLocationAndLengthFromRangeEPNS_4NodeEPKNS_5RangeERmS6_;
+ _ZN7WebCore12PrintContext20pageNumberForElementEPNS_7ElementERKNS_9FloatSizeE;
+ _ZN7WebCore13createWrapperEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_4NodeE;
+--
+1.8.3.2
+
--- /dev/null
+Make gstreamer support conditional
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+From f1055f61bce46eccf8dc0aa017113a08d3d71944 Mon Sep 17 00:00:00 2001
+From: "commit-queue@webkit.org"
+ <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
+Date: Fri, 15 Mar 2013 07:13:51 +0000
+Subject: [PATCH] Build fix for Tools/GtkLauncher/Programs_GtkLauncher-main.o
+ if gstreamer is not installed https://bugs.webkit.org/show_bug.cgi?id=112394
+
+Patch by Tobias Mueller <tobiasmue@gnome.org> on 2013-03-15
+Reviewed by Philippe Normand.
+
+* GtkLauncher/main.c:
+(main): Guard using the gstreamer function with #ifdef WTF_USE_GSTREAMER
+
+git-svn-id: http://svn.webkit.org/repository/webkit/trunk@145881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+---
+ Tools/ChangeLog | 10 ++++++++++
+ Tools/GtkLauncher/main.c | 5 ++++-
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/Tools/GtkLauncher/main.c b/Tools/GtkLauncher/main.c
+index 32baf4a..84c8833 100644
+--- a/Tools/GtkLauncher/main.c
++++ b/Tools/GtkLauncher/main.c
+@@ -28,7 +28,9 @@
+ #include "autotoolsconfig.h"
+ #include "LauncherInspectorWindow.h"
+ #include <errno.h>
++#ifdef WTF_USE_GSTREAMER
+ #include <gst/gst.h>
++#endif
+ #include <gtk/gtk.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -489,8 +491,9 @@ int main(int argc, char* argv[])
+ GOptionContext *context = g_option_context_new(0);
+ g_option_context_add_main_entries(context, commandLineOptions, 0);
+ g_option_context_add_group(context, gtk_get_option_group(TRUE));
++#ifdef WTF_USE_GSTREAMER
+ g_option_context_add_group(context, gst_init_get_option_group());
+-
++#endif
+ webkitSettings = webkit_web_settings_new();
+ g_object_set(webkitSettings, "enable-developer-extras", TRUE, NULL);
+ if (!addWebSettingsGroupToContext(context, webkitSettings)) {
+--
+1.8.3.2
+
--- /dev/null
+harfbuzz-icu detections based on the following upstream commits
+
+- 5f3ae29ffb29c499c1825578ba7f3ffcbf1aa8b9
+- ad2a23ec44b692bde43a13b658990770caa8dfc5
+- 22b4786377142424bfb6562ff029997acd0846d1
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+Index: webkit-1.11.5/configure.ac
+===================================================================
+--- webkit-1.11.5.orig/configure.ac
++++ webkit-1.11.5/configure.ac
+@@ -938,6 +938,15 @@ PKG_CHECK_MODULES([FREETYPE],
+ freetype2 >= $FREETYPE2_REQUIRED_VERSION
+ harfbuzz])
+ fi
++# HarfBuzz 0.9.18 splits harbuzz-icu into a separate library.
++# Since we support earlier HarfBuzz versions we keep this conditional for now.
++m4_define([harfbuzz_required_version], [0.9.7])
++if $PKG_CONFIG --atleast-version 0.9.18 harfbuzz; then
++ PKG_CHECK_MODULES([HARFBUZZ_ICU], [harfbuzz-icu >= $harfbuzz_required_version])
++ FREETYPE_CFLAGS+=" $HARFBUZZ_ICU_CFLAGS"
++ FREETYPE_LIBS+=" $HARFBUZZ_ICU_LIBS"
++fi
++
+ AC_SUBST([FREETYPE_CFLAGS])
+ AC_SUBST([FREETYPE_LIBS])
+
--- /dev/null
+This patch prevents documentation from being rebased or installed. This
+prevents an error when gtk-doc --rebase is called.
+
+Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+Index: webkit-1.11.5/Tools/GNUmakefile.am
+===================================================================
+--- webkit-1.11.5.orig/Tools/GNUmakefile.am
++++ webkit-1.11.5/Tools/GNUmakefile.am
+@@ -308,6 +308,8 @@ EXTRA_DIST += \
+ Tools/Scripts/webkit-build-directory \
+ Tools/Scripts/webkitdirs.pm
+
++if ENABLE_GTK_DOC
++
+ docs: docs-build.stamp
+ .PHONY : docs
+ DISTCLEANFILES += docs-build.stamp
+@@ -412,7 +414,6 @@ if ENABLE_WEBKIT2
+ rm -rf $${installdir}
+ endif
+
+-if ENABLE_GTK_DOC
+ all: docs-build.stamp
+ endif
+
--- /dev/null
+This prevents the Webkit test suites from being built.
+
+Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
+----
+Index: webkit-1.9.6/GNUmakefile.am
+===================================================================
+--- webkit-1.9.6.orig/GNUmakefile.am 2012-08-06 03:17:24.000000000 -0500
++++ webkit-1.9.6/GNUmakefile.am 2013-05-28 10:08:53.645129501 -0500
+@@ -282,11 +282,14 @@
+ include Tools/DumpRenderTree/gtk/GNUmakefile.ImageDiff.am
+
+ include Source/WebKit2/GNUmakefile.am
+-include Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
+ include Tools/MiniBrowser/gtk/GNUmakefile.am
++
++if ENABLE_TESTS
++include Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
+ include Tools/WebKitTestRunner/GNUmakefile.am
+ include Source/ThirdParty/gtest/GNUmakefile.am
+ include Tools/TestWebKitAPI/GNUmakefile.am
++endif # ENABLE_TESTS
+ # [GTK] Refactor the translations now that we have webkit2
+ # https://bugs.webkit.org/show_bug.cgi?id=55153
+
+Index: webkit-1.9.6/Source/WebKit/gtk/GNUmakefile.am
+===================================================================
+--- webkit-1.9.6.orig/Source/WebKit/gtk/GNUmakefile.am 2012-07-19 05:02:29.000000000 -0500
++++ webkit-1.9.6/Source/WebKit/gtk/GNUmakefile.am 2013-05-28 10:09:49.277130516 -0500
+@@ -413,6 +413,7 @@
+ dist_resources_DATA = \
+ $(shell ls $(srcdir)/Source/WebKit/gtk/resources/*.html)
+
++if ENABLE_TESTS
+ # Build unit tests
+ webkit_tests_cflags = \
+ -fno-strict-aliasing \
+@@ -613,6 +614,8 @@
+ Programs_unittests_testcopyandpaste_LDADD = $(webkit_tests_ldadd)
+ Programs_unittests_testcopyandpaste_LDFLAGS = $(webkit_tests_ldflags)
+
++endif # ENABLE_TESTS
++
+ # Project-wide clean rules
+ # Files that will be cleaned
+ CLEANFILES += \
+Index: webkit-1.9.6/configure.ac
+===================================================================
+--- webkit-1.9.6.orig/configure.ac 2012-08-06 08:45:10.000000000 -0500
++++ webkit-1.9.6/configure.ac 2013-05-28 10:07:55.817128445 -0500
+@@ -516,6 +516,14 @@
+ AC_SUBST(CAIRO_CFLAGS)
+ AC_SUBST(CAIRO_LIBS)
+
++# check wheter to build tests
++AC_MSG_CHECKING([wheter to build tests])
++AC_ARG_ENABLE(tests,
++ AC_HELP_STRING([--enable-tests],
++ [turn on tests [default=no]]),
++ [],[enable_debug="no"])
++AC_MSG_RESULT([$enable_tests])
++
+ # check whether to build with debugging enabled
+ AC_MSG_CHECKING([whether to do a debug build])
+ AC_ARG_ENABLE(debug,
+@@ -1423,6 +1431,7 @@
+ AM_CONDITIONAL([USE_FARSTREAM], [test "$have_farstream" = "yes"])
+
+ # WebKit feature conditionals
++AM_CONDITIONAL([ENABLE_TESTS],[test "$enable_tests" = "yes"])
+ AM_CONDITIONAL([ENABLE_DEBUG],[test "$enable_debug_features" = "yes"])
+ AM_CONDITIONAL([ENABLE_UNSTABLE_FEATURES],[test "$enable_unstable_features" = "yes"])
+ AM_CONDITIONAL([ENABLE_WEBGL],[test "$enable_webgl" = "yes"])
+@@ -1534,6 +1543,7 @@
+ WebKit was configured with the following options:
+
+ Build configuration:
++ Enable tests (slow) : $enable_tests
+ Enable debugging (slow) : $enable_debug
+ Compile with debug symbols (slow) : $enable_debug_symbols
+ Enable debug features (slow) : $enable_debug_features
--- /dev/null
+Fixes uclibc build as uclibc does not include backtrace functionality
+
+Signed-of-by: Spenser Gilliland <spenser@gillilanding.com>
+Signed-of-by: Markos Chandras <markos.chandras@imgtec.com>
+
+Index: webkit-1.11.5/Source/WTF/wtf/Assertions.cpp
+===================================================================
+--- webkit-1.11.5.orig/Source/WTF/wtf/Assertions.cpp
++++ webkit-1.11.5/Source/WTF/wtf/Assertions.cpp
+@@ -61,8 +61,10 @@
+ #if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
+ #include <cxxabi.h>
+ #include <dlfcn.h>
++#if !defined(__UCLIBC__)
+ #include <execinfo.h>
+ #endif
++#endif
+
+ #if OS(ANDROID)
+ #include "android/log.h"
--- /dev/null
+Upstream patch for DFG implementation for MIPS
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+From c921d19863ccf66bdd0ffa5d38eaf05efab6b136 Mon Sep 17 00:00:00 2001
+From: "commit-queue@webkit.org"
+ <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
+Date: Mon, 18 Feb 2013 19:25:23 +0000
+Subject: [PATCH] MIPS DFG implementation.
+ https://bugs.webkit.org/show_bug.cgi?id=101328
+
+Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-02-18
+Reviewed by Oliver Hunt.
+
+DFG implementation for MIPS.
+
+Source/JavaScriptCore:
+
+* assembler/MIPSAssembler.h:
+(JSC::MIPSAssembler::MIPSAssembler):
+(JSC::MIPSAssembler::sllv):
+(JSC::MIPSAssembler::movd):
+(MIPSAssembler):
+(JSC::MIPSAssembler::negd):
+(JSC::MIPSAssembler::labelForWatchpoint):
+(JSC::MIPSAssembler::label):
+(JSC::MIPSAssembler::vmov):
+(JSC::MIPSAssembler::linkDirectJump):
+(JSC::MIPSAssembler::maxJumpReplacementSize):
+(JSC::MIPSAssembler::revertJumpToMove):
+(JSC::MIPSAssembler::replaceWithJump):
+* assembler/MacroAssembler.h:
+(MacroAssembler):
+(JSC::MacroAssembler::poke):
+* assembler/MacroAssemblerMIPS.h:
+(JSC::MacroAssemblerMIPS::add32):
+(MacroAssemblerMIPS):
+(JSC::MacroAssemblerMIPS::and32):
+(JSC::MacroAssemblerMIPS::lshift32):
+(JSC::MacroAssemblerMIPS::mul32):
+(JSC::MacroAssemblerMIPS::or32):
+(JSC::MacroAssemblerMIPS::rshift32):
+(JSC::MacroAssemblerMIPS::urshift32):
+(JSC::MacroAssemblerMIPS::sub32):
+(JSC::MacroAssemblerMIPS::xor32):
+(JSC::MacroAssemblerMIPS::store32):
+(JSC::MacroAssemblerMIPS::jump):
+(JSC::MacroAssemblerMIPS::branchAdd32):
+(JSC::MacroAssemblerMIPS::branchMul32):
+(JSC::MacroAssemblerMIPS::branchSub32):
+(JSC::MacroAssemblerMIPS::branchNeg32):
+(JSC::MacroAssemblerMIPS::call):
+(JSC::MacroAssemblerMIPS::loadDouble):
+(JSC::MacroAssemblerMIPS::moveDouble):
+(JSC::MacroAssemblerMIPS::swapDouble):
+(JSC::MacroAssemblerMIPS::subDouble):
+(JSC::MacroAssemblerMIPS::mulDouble):
+(JSC::MacroAssemblerMIPS::divDouble):
+(JSC::MacroAssemblerMIPS::negateDouble):
+(JSC::MacroAssemblerMIPS::branchEqual):
+(JSC::MacroAssemblerMIPS::branchNotEqual):
+(JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32):
+(JSC::MacroAssemblerMIPS::branchTruncateDoubleToUint32):
+(JSC::MacroAssemblerMIPS::truncateDoubleToInt32):
+(JSC::MacroAssemblerMIPS::truncateDoubleToUint32):
+(JSC::MacroAssemblerMIPS::branchDoubleNonZero):
+(JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN):
+(JSC::MacroAssemblerMIPS::invert):
+(JSC::MacroAssemblerMIPS::replaceWithJump):
+(JSC::MacroAssemblerMIPS::maxJumpReplacementSize):
+* dfg/DFGAssemblyHelpers.h:
+(AssemblyHelpers):
+(JSC::DFG::AssemblyHelpers::preserveReturnAddressAfterCall):
+(JSC::DFG::AssemblyHelpers::restoreReturnAddressBeforeReturn):
+(JSC::DFG::AssemblyHelpers::debugCall):
+* dfg/DFGCCallHelpers.h:
+(CCallHelpers):
+(JSC::DFG::CCallHelpers::setupArguments):
+(JSC::DFG::CCallHelpers::setupArgumentsWithExecState):
+* dfg/DFGFPRInfo.h:
+(DFG):
+(FPRInfo):
+(JSC::DFG::FPRInfo::toRegister):
+(JSC::DFG::FPRInfo::toIndex):
+(JSC::DFG::FPRInfo::debugName):
+* dfg/DFGGPRInfo.h:
+(DFG):
+(GPRInfo):
+(JSC::DFG::GPRInfo::toRegister):
+(JSC::DFG::GPRInfo::toIndex):
+(JSC::DFG::GPRInfo::debugName):
+* dfg/DFGSpeculativeJIT.h:
+(SpeculativeJIT):
+* jit/JSInterfaceJIT.h:
+(JSInterfaceJIT):
+* runtime/JSGlobalData.h:
+(JSC::ScratchBuffer::allocationSize):
+(ScratchBuffer):
+
+Source/WTF:
+
+* wtf/Platform.h:
+
+git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+---
+ Source/JavaScriptCore/ChangeLog | 90 ++++
+ Source/JavaScriptCore/assembler/MIPSAssembler.h | 109 ++++-
+ Source/JavaScriptCore/assembler/MacroAssembler.h | 7 +
+ .../JavaScriptCore/assembler/MacroAssemblerMIPS.h | 480 +++++++++++++++++++--
+ Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h | 19 +-
+ Source/JavaScriptCore/dfg/DFGCCallHelpers.h | 92 ++--
+ Source/JavaScriptCore/dfg/DFGFPRInfo.h | 68 +++
+ Source/JavaScriptCore/dfg/DFGGPRInfo.h | 67 +++
+ Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h | 4 +-
+ Source/JavaScriptCore/jit/JSInterfaceJIT.h | 4 +
+ Source/JavaScriptCore/runtime/JSGlobalData.h | 6 +-
+ Source/WTF/ChangeLog | 11 +
+ Source/WTF/wtf/Platform.h | 4 +
+ 13 files changed, 888 insertions(+), 73 deletions(-)
+
+diff --git a/Source/JavaScriptCore/assembler/MIPSAssembler.h b/Source/JavaScriptCore/assembler/MIPSAssembler.h
+index 026f87e..7f553bb 100644
+--- a/Source/JavaScriptCore/assembler/MIPSAssembler.h
++++ b/Source/JavaScriptCore/assembler/MIPSAssembler.h
+@@ -152,6 +152,8 @@ public:
+ typedef SegmentedVector<AssemblerLabel, 64> Jumps;
+
+ MIPSAssembler()
++ : m_indexOfLastWatchpoint(INT_MIN)
++ , m_indexOfTailOfLastWatchpoint(INT_MIN)
+ {
+ }
+
+@@ -325,7 +327,7 @@ public:
+ emitInst(0x00000000 | (rd << OP_SH_RD) | (rt << OP_SH_RT) | ((shamt & 0x1f) << OP_SH_SHAMT));
+ }
+
+- void sllv(RegisterID rd, RegisterID rt, int rs)
++ void sllv(RegisterID rd, RegisterID rt, RegisterID rs)
+ {
+ emitInst(0x00000004 | (rd << OP_SH_RD) | (rt << OP_SH_RT) | (rs << OP_SH_RS));
+ }
+@@ -527,6 +529,16 @@ public:
+ emitInst(0x46200004 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
+ }
+
++ void movd(FPRegisterID fd, FPRegisterID fs)
++ {
++ emitInst(0x46200006 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
++ }
++
++ void negd(FPRegisterID fd, FPRegisterID fs)
++ {
++ emitInst(0x46200007 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
++ }
++
+ void truncwd(FPRegisterID fd, FPRegisterID fs)
+ {
+ emitInst(0x4620000d | (fd << OP_SH_FD) | (fs << OP_SH_FS));
+@@ -619,9 +631,24 @@ public:
+ return m_buffer.label();
+ }
+
++ AssemblerLabel labelForWatchpoint()
++ {
++ AssemblerLabel result = m_buffer.label();
++ if (static_cast<int>(result.m_offset) != m_indexOfLastWatchpoint)
++ result = label();
++ m_indexOfLastWatchpoint = result.m_offset;
++ m_indexOfTailOfLastWatchpoint = result.m_offset + maxJumpReplacementSize();
++ return result;
++ }
++
+ AssemblerLabel label()
+ {
+- return m_buffer.label();
++ AssemblerLabel result = m_buffer.label();
++ while (UNLIKELY(static_cast<int>(result.m_offset) < m_indexOfTailOfLastWatchpoint)) {
++ nop();
++ result = m_buffer.label();
++ }
++ return result;
+ }
+
+ AssemblerLabel align(int alignment)
+@@ -664,14 +691,24 @@ public:
+ // Assembly helpers for moving data between fp and registers.
+ void vmov(RegisterID rd1, RegisterID rd2, FPRegisterID rn)
+ {
++#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
++ mfc1(rd1, rn);
++ mfhc1(rd2, rn);
++#else
+ mfc1(rd1, rn);
+ mfc1(rd2, FPRegisterID(rn + 1));
++#endif
+ }
+
+ void vmov(FPRegisterID rd, RegisterID rn1, RegisterID rn2)
+ {
++#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
++ mtc1(rn1, rd);
++ mthc1(rn2, rd);
++#else
+ mtc1(rn1, rd);
+ mtc1(rn2, FPRegisterID(rd + 1));
++#endif
+ }
+
+ static unsigned getCallReturnOffset(AssemblerLabel call)
+@@ -688,6 +725,35 @@ public:
+ // writable region of memory; to modify the code in an execute-only execuable
+ // pool the 'repatch' and 'relink' methods should be used.
+
++ static size_t linkDirectJump(void* code, void* to)
++ {
++ MIPSWord* insn = reinterpret_cast<MIPSWord*>(reinterpret_cast<intptr_t>(code));
++ size_t ops = 0;
++ int32_t slotAddr = reinterpret_cast<int>(insn) + 4;
++ int32_t toAddr = reinterpret_cast<int>(to);
++
++ if ((slotAddr & 0xf0000000) != (toAddr & 0xf0000000)) {
++ // lui
++ *insn = 0x3c000000 | (MIPSRegisters::t9 << OP_SH_RT) | ((toAddr >> 16) & 0xffff);
++ ++insn;
++ // ori
++ *insn = 0x34000000 | (MIPSRegisters::t9 << OP_SH_RT) | (MIPSRegisters::t9 << OP_SH_RS) | (toAddr & 0xffff);
++ ++insn;
++ // jr
++ *insn = 0x00000008 | (MIPSRegisters::t9 << OP_SH_RS);
++ ++insn;
++ ops = 4 * sizeof(MIPSWord);
++ } else {
++ // j
++ *insn = 0x08000000 | ((toAddr & 0x0fffffff) >> 2);
++ ++insn;
++ ops = 2 * sizeof(MIPSWord);
++ }
++ // nop
++ *insn = 0x00000000;
++ return ops;
++ }
++
+ void linkJump(AssemblerLabel from, AssemblerLabel to)
+ {
+ ASSERT(to.isSet());
+@@ -825,29 +891,36 @@ public:
+ #endif
+ }
+
+- static void revertJumpToMove(void* instructionStart, RegisterID rt, int imm)
++ static ptrdiff_t maxJumpReplacementSize()
+ {
+- MIPSWord* insn = static_cast<MIPSWord*>(instructionStart) + 1;
+- ASSERT((*insn & 0xfc000000) == 0x34000000);
+- *insn = (*insn & 0xfc1f0000) | (imm & 0xffff);
+- cacheFlush(insn, sizeof(MIPSWord));
++ return sizeof(MIPSWord) * 4;
+ }
+
+- static void replaceWithJump(void* instructionStart, void* to)
++ static void revertJumpToMove(void* instructionStart, RegisterID rt, int imm)
+ {
+- MIPSWord* instruction = reinterpret_cast<MIPSWord*>(instructionStart);
+- intptr_t jumpTo = reinterpret_cast<intptr_t>(to);
++ MIPSWord* insn = static_cast<MIPSWord*>(instructionStart);
++ size_t codeSize = 2 * sizeof(MIPSWord);
+
+ // lui
+- instruction[0] = 0x3c000000 | (MIPSRegisters::t9 << OP_SH_RT) | ((jumpTo >> 16) & 0xffff);
++ *insn = 0x3c000000 | (rt << OP_SH_RT) | ((imm >> 16) & 0xffff);
++ ++insn;
+ // ori
+- instruction[1] = 0x34000000 | (MIPSRegisters::t9 << OP_SH_RT) | (MIPSRegisters::t9 << OP_SH_RS) | (jumpTo & 0xffff);
+- // jr
+- instruction[2] = 0x00000008 | (MIPSRegisters::t9 << OP_SH_RS);
+- // nop
+- instruction[3] = 0x0;
++ *insn = 0x34000000 | (rt << OP_SH_RS) | (rt << OP_SH_RT) | (imm & 0xffff);
++ ++insn;
++ // if jr $t9
++ if (*insn == 0x03200008) {
++ *insn = 0x00000000;
++ codeSize += sizeof(MIPSWord);
++ }
++ cacheFlush(insn, codeSize);
++ }
+
+- cacheFlush(instruction, sizeof(MIPSWord) * 4);
++ static void replaceWithJump(void* instructionStart, void* to)
++ {
++ ASSERT(!(bitwise_cast<uintptr_t>(instructionStart) & 3));
++ ASSERT(!(bitwise_cast<uintptr_t>(to) & 3));
++ size_t ops = linkDirectJump(instructionStart, to);
++ cacheFlush(instructionStart, ops);
+ }
+
+ static void replaceWithLoad(void* instructionStart)
+@@ -1023,6 +1096,8 @@ private:
+
+ AssemblerBuffer m_buffer;
+ Jumps m_jumps;
++ int m_indexOfLastWatchpoint;
++ int m_indexOfTailOfLastWatchpoint;
+ };
+
+ } // namespace JSC
+diff --git a/Source/JavaScriptCore/assembler/MacroAssembler.h b/Source/JavaScriptCore/assembler/MacroAssembler.h
+index 60a93db..1f0c3de 100644
+--- a/Source/JavaScriptCore/assembler/MacroAssembler.h
++++ b/Source/JavaScriptCore/assembler/MacroAssembler.h
+@@ -200,6 +200,13 @@ public:
+ }
+ #endif
+
++#if CPU(MIPS)
++ void poke(FPRegisterID src, int index = 0)
++ {
++ ASSERT(!(index & 1));
++ storeDouble(src, addressForPoke(index));
++ }
++#endif
+
+ // Backwards banches, these are currently all implemented using existing forwards branch mechanisms.
+ void branchPtr(RelationalCondition cond, RegisterID op1, TrustedImmPtr imm, Label target)
+diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
+index 43ad434..4f14960 100644
+--- a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
++++ b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
+@@ -114,6 +114,11 @@ public:
+ m_assembler.addu(dest, dest, src);
+ }
+
++ void add32(RegisterID op1, RegisterID op2, RegisterID dest)
++ {
++ m_assembler.addu(dest, op1, op2);
++ }
++
+ void add32(TrustedImm32 imm, RegisterID dest)
+ {
+ add32(imm, dest, dest);
+@@ -267,6 +272,11 @@ public:
+ m_assembler.andInsn(dest, dest, src);
+ }
+
++ void and32(RegisterID op1, RegisterID op2, RegisterID dest)
++ {
++ m_assembler.andInsn(dest, op1, op2);
++ }
++
+ void and32(TrustedImm32 imm, RegisterID dest)
+ {
+ if (!imm.m_value && !m_fixedWidth)
+@@ -283,9 +293,16 @@ public:
+ }
+ }
+
+- void lshift32(TrustedImm32 imm, RegisterID dest)
++ void and32(TrustedImm32 imm, RegisterID src, RegisterID dest)
+ {
+- m_assembler.sll(dest, dest, imm.m_value);
++ if (!imm.m_value && !m_fixedWidth)
++ move(MIPSRegisters::zero, dest);
++ else if (imm.m_value > 0 && imm.m_value < 65535 && !m_fixedWidth)
++ m_assembler.andi(dest, src, imm.m_value);
++ else {
++ move(imm, immTempRegister);
++ m_assembler.andInsn(dest, src, immTempRegister);
++ }
+ }
+
+ void lshift32(RegisterID shiftAmount, RegisterID dest)
+@@ -293,11 +310,33 @@ public:
+ m_assembler.sllv(dest, dest, shiftAmount);
+ }
+
++ void lshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
++ {
++ m_assembler.sllv(dest, src, shiftAmount);
++ }
++
++ void lshift32(TrustedImm32 imm, RegisterID dest)
++ {
++ move(imm, immTempRegister);
++ m_assembler.sllv(dest, dest, immTempRegister);
++ }
++
++ void lshift32(RegisterID src, TrustedImm32 imm, RegisterID dest)
++ {
++ move(imm, immTempRegister);
++ m_assembler.sllv(dest, src, immTempRegister);
++ }
++
+ void mul32(RegisterID src, RegisterID dest)
+ {
+ m_assembler.mul(dest, dest, src);
+ }
+
++ void mul32(RegisterID op1, RegisterID op2, RegisterID dest)
++ {
++ m_assembler.mul(dest, op1, op2);
++ }
++
+ void mul32(TrustedImm32 imm, RegisterID src, RegisterID dest)
+ {
+ if (!imm.m_value && !m_fixedWidth)
+@@ -348,6 +387,24 @@ public:
+ m_assembler.orInsn(dest, dest, dataTempRegister);
+ }
+
++ void or32(TrustedImm32 imm, RegisterID src, RegisterID dest)
++ {
++ if (!imm.m_value && !m_fixedWidth)
++ return;
++
++ if (imm.m_value > 0 && imm.m_value < 65535 && !m_fixedWidth) {
++ m_assembler.ori(dest, src, imm.m_value);
++ return;
++ }
++
++ /*
++ li dataTemp, imm
++ or dest, src, dataTemp
++ */
++ move(imm, dataTempRegister);
++ m_assembler.orInsn(dest, src, dataTempRegister);
++ }
++
+ void or32(RegisterID src, AbsoluteAddress dest)
+ {
+ load32(dest.m_ptr, dataTempRegister);
+@@ -360,6 +417,11 @@ public:
+ m_assembler.srav(dest, dest, shiftAmount);
+ }
+
++ void rshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
++ {
++ m_assembler.srav(dest, src, shiftAmount);
++ }
++
+ void rshift32(TrustedImm32 imm, RegisterID dest)
+ {
+ m_assembler.sra(dest, dest, imm.m_value);
+@@ -375,16 +437,31 @@ public:
+ m_assembler.srlv(dest, dest, shiftAmount);
+ }
+
++ void urshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
++ {
++ m_assembler.srlv(dest, src, shiftAmount);
++ }
++
+ void urshift32(TrustedImm32 imm, RegisterID dest)
+ {
+ m_assembler.srl(dest, dest, imm.m_value);
+ }
+
++ void urshift32(RegisterID src, TrustedImm32 imm, RegisterID dest)
++ {
++ m_assembler.srl(dest, src, imm.m_value);
++ }
++
+ void sub32(RegisterID src, RegisterID dest)
+ {
+ m_assembler.subu(dest, dest, src);
+ }
+
++ void sub32(RegisterID op1, RegisterID op2, RegisterID dest)
++ {
++ m_assembler.subu(dest, op1, op2);
++ }
++
+ void sub32(TrustedImm32 imm, RegisterID dest)
+ {
+ if (imm.m_value >= -32767 && imm.m_value <= 32768
+@@ -495,6 +572,11 @@ public:
+ m_assembler.xorInsn(dest, dest, src);
+ }
+
++ void xor32(RegisterID op1, RegisterID op2, RegisterID dest)
++ {
++ m_assembler.xorInsn(dest, op1, op2);
++ }
++
+ void xor32(TrustedImm32 imm, RegisterID dest)
+ {
+ if (imm.m_value == -1) {
+@@ -510,6 +592,21 @@ public:
+ m_assembler.xorInsn(dest, dest, immTempRegister);
+ }
+
++ void xor32(TrustedImm32 imm, RegisterID src, RegisterID dest)
++ {
++ if (imm.m_value == -1) {
++ m_assembler.nor(dest, src, MIPSRegisters::zero);
++ return;
++ }
++
++ /*
++ li immTemp, imm
++ xor dest, dest, immTemp
++ */
++ move(imm, immTempRegister);
++ m_assembler.xorInsn(dest, src, immTempRegister);
++ }
++
+ void sqrtDouble(FPRegisterID src, FPRegisterID dst)
+ {
+ m_assembler.sqrtd(dst, src);
+@@ -989,6 +1086,44 @@ public:
+ }
+ }
+
++ void store32(TrustedImm32 imm, BaseIndex address)
++ {
++ if (address.offset >= -32768 && address.offset <= 32767 && !m_fixedWidth) {
++ /*
++ sll addrTemp, address.index, address.scale
++ addu addrTemp, addrTemp, address.base
++ sw src, address.offset(addrTemp)
++ */
++ m_assembler.sll(addrTempRegister, address.index, address.scale);
++ m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
++ if (!imm.m_value)
++ m_assembler.sw(MIPSRegisters::zero, addrTempRegister, address.offset);
++ else {
++ move(imm, immTempRegister);
++ m_assembler.sw(immTempRegister, addrTempRegister, address.offset);
++ }
++ } else {
++ /*
++ sll addrTemp, address.index, address.scale
++ addu addrTemp, addrTemp, address.base
++ lui immTemp, (address.offset + 0x8000) >> 16
++ addu addrTemp, addrTemp, immTemp
++ sw src, (address.offset & 0xffff)(at)
++ */
++ m_assembler.sll(addrTempRegister, address.index, address.scale);
++ m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
++ m_assembler.lui(immTempRegister, (address.offset + 0x8000) >> 16);
++ m_assembler.addu(addrTempRegister, addrTempRegister, immTempRegister);
++ if (!imm.m_value && !m_fixedWidth)
++ m_assembler.sw(MIPSRegisters::zero, addrTempRegister, address.offset);
++ else {
++ move(imm, immTempRegister);
++ m_assembler.sw(immTempRegister, addrTempRegister, address.offset);
++ }
++ }
++ }
++
++
+ void store32(RegisterID src, const void* address)
+ {
+ /*
+@@ -1336,6 +1471,15 @@ public:
+ m_fixedWidth = false;
+ }
+
++ void jump(AbsoluteAddress address)
++ {
++ m_fixedWidth = true;
++ load32(address.m_ptr, MIPSRegisters::t9);
++ m_assembler.jr(MIPSRegisters::t9);
++ m_assembler.nop();
++ m_fixedWidth = false;
++ }
++
+ void moveDoubleToInts(FPRegisterID src, RegisterID dest1, RegisterID dest2)
+ {
+ m_assembler.vmov(dest1, dest2, src);
+@@ -1404,6 +1548,53 @@ public:
+ return Jump();
+ }
+
++ Jump branchAdd32(ResultCondition cond, RegisterID op1, RegisterID op2, RegisterID dest)
++ {
++ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
++ if (cond == Overflow) {
++ /*
++ move dataTemp, op1
++ xor cmpTemp, dataTemp, op2
++ bltz cmpTemp, No_overflow # diff sign bit -> no overflow
++ addu dest, dataTemp, op2
++ xor cmpTemp, dest, dataTemp
++ bgez cmpTemp, No_overflow # same sign big -> no overflow
++ nop
++ b Overflow
++ nop
++ nop
++ nop
++ nop
++ nop
++ No_overflow:
++ */
++ move(op1, dataTempRegister);
++ m_assembler.xorInsn(cmpTempRegister, dataTempRegister, op2);
++ m_assembler.bltz(cmpTempRegister, 10);
++ m_assembler.addu(dest, dataTempRegister, op2);
++ m_assembler.xorInsn(cmpTempRegister, dest, dataTempRegister);
++ m_assembler.bgez(cmpTempRegister, 7);
++ m_assembler.nop();
++ return jump();
++ }
++ if (cond == Signed) {
++ add32(op1, op2, dest);
++ // Check if dest is negative.
++ m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
++ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
++ }
++ if (cond == Zero) {
++ add32(op1, op2, dest);
++ return branchEqual(dest, MIPSRegisters::zero);
++ }
++ if (cond == NonZero) {
++ add32(op1, op2, dest);
++ return branchNotEqual(dest, MIPSRegisters::zero);
++ }
++ ASSERT(0);
++ return Jump();
++ }
++
+ Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, RegisterID dest)
+ {
+ move(imm, immTempRegister);
+@@ -1417,6 +1608,111 @@ public:
+ return branchAdd32(cond, immTempRegister, dest);
+ }
+
++ Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, AbsoluteAddress dest)
++ {
++ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
++ if (cond == Overflow) {
++ /*
++ move dataTemp, dest
++ xori cmpTemp, dataTemp, imm
++ bltz cmpTemp, No_overflow # diff sign bit -> no overflow
++ addiu dataTemp, dataTemp, imm
++ move dest, dataTemp
++ xori cmpTemp, dataTemp, imm
++ bgez cmpTemp, No_overflow # same sign big -> no overflow
++ nop
++ b Overflow
++ nop
++ nop
++ nop
++ nop
++ nop
++ No_overflow:
++ */
++ if (imm.m_value >= -32768 && imm.m_value <= 32767 && !m_fixedWidth) {
++ load32(dest.m_ptr, dataTempRegister);
++ m_assembler.xori(cmpTempRegister, dataTempRegister, imm.m_value);
++ m_assembler.bltz(cmpTempRegister, 10);
++ m_assembler.addiu(dataTempRegister, dataTempRegister, imm.m_value);
++ store32(dataTempRegister, dest.m_ptr);
++ m_assembler.xori(cmpTempRegister, dataTempRegister, imm.m_value);
++ m_assembler.bgez(cmpTempRegister, 7);
++ m_assembler.nop();
++ } else {
++ load32(dest.m_ptr, dataTempRegister);
++ move(imm, immTempRegister);
++ m_assembler.xorInsn(cmpTempRegister, dataTempRegister, immTempRegister);
++ m_assembler.bltz(cmpTempRegister, 10);
++ m_assembler.addiu(dataTempRegister, dataTempRegister, immTempRegister);
++ store32(dataTempRegister, dest.m_ptr);
++ m_assembler.xori(cmpTempRegister, dataTempRegister, immTempRegister);
++ m_assembler.bgez(cmpTempRegister, 7);
++ m_assembler.nop();
++ }
++ return jump();
++ }
++ move(imm, immTempRegister);
++ load32(dest.m_ptr, dataTempRegister);
++ add32(immTempRegister, dataTempRegister);
++ store32(dataTempRegister, dest.m_ptr);
++ if (cond == Signed) {
++ // Check if dest is negative.
++ m_assembler.slt(cmpTempRegister, dataTempRegister, MIPSRegisters::zero);
++ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
++ }
++ if (cond == Zero)
++ return branchEqual(dataTempRegister, MIPSRegisters::zero);
++ if (cond == NonZero)
++ return branchNotEqual(dataTempRegister, MIPSRegisters::zero);
++ ASSERT(0);
++ return Jump();
++ }
++
++ Jump branchMul32(ResultCondition cond, RegisterID src1, RegisterID src2, RegisterID dest)
++ {
++ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
++ if (cond == Overflow) {
++ /*
++ mult src, dest
++ mfhi dataTemp
++ mflo dest
++ sra addrTemp, dest, 31
++ beq dataTemp, addrTemp, No_overflow # all sign bits (bit 63 to bit 31) are the same -> no overflow
++ nop
++ b Overflow
++ nop
++ nop
++ nop
++ nop
++ nop
++ No_overflow:
++ */
++ m_assembler.mult(src1, src2);
++ m_assembler.mfhi(dataTempRegister);
++ m_assembler.mflo(dest);
++ m_assembler.sra(addrTempRegister, dest, 31);
++ m_assembler.beq(dataTempRegister, addrTempRegister, 7);
++ m_assembler.nop();
++ return jump();
++ }
++ if (cond == Signed) {
++ mul32(src1, src2, dest);
++ // Check if dest is negative.
++ m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
++ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
++ }
++ if (cond == Zero) {
++ mul32(src1, src2, dest);
++ return branchEqual(dest, MIPSRegisters::zero);
++ }
++ if (cond == NonZero) {
++ mul32(src1, src2, dest);
++ return branchNotEqual(dest, MIPSRegisters::zero);
++ }
++ ASSERT(0);
++ return Jump();
++ }
++
+ Jump branchMul32(ResultCondition cond, RegisterID src, RegisterID dest)
+ {
+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
+@@ -1465,8 +1761,7 @@ public:
+ Jump branchMul32(ResultCondition cond, TrustedImm32 imm, RegisterID src, RegisterID dest)
+ {
+ move(imm, immTempRegister);
+- move(src, dest);
+- return branchMul32(cond, immTempRegister, dest);
++ return branchMul32(cond, immTempRegister, src, dest);
+ }
+
+ Jump branchSub32(ResultCondition cond, RegisterID src, RegisterID dest)
+@@ -1525,8 +1820,60 @@ public:
+ Jump branchSub32(ResultCondition cond, RegisterID src, TrustedImm32 imm, RegisterID dest)
+ {
+ move(imm, immTempRegister);
+- move(src, dest);
+- return branchSub32(cond, immTempRegister, dest);
++ return branchSub32(cond, src, immTempRegister, dest);
++ }
++
++ Jump branchSub32(ResultCondition cond, RegisterID op1, RegisterID op2, RegisterID dest)
++ {
++ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
++ if (cond == Overflow) {
++ /*
++ move dataTemp, op1
++ xor cmpTemp, dataTemp, op2
++ bgez cmpTemp, No_overflow # same sign bit -> no overflow
++ subu dest, dataTemp, op2
++ xor cmpTemp, dest, dataTemp
++ bgez cmpTemp, No_overflow # same sign bit -> no overflow
++ nop
++ b Overflow
++ nop
++ nop
++ nop
++ nop
++ nop
++ No_overflow:
++ */
++ move(op1, dataTempRegister);
++ m_assembler.xorInsn(cmpTempRegister, dataTempRegister, op2);
++ m_assembler.bgez(cmpTempRegister, 10);
++ m_assembler.subu(dest, dataTempRegister, op2);
++ m_assembler.xorInsn(cmpTempRegister, dest, dataTempRegister);
++ m_assembler.bgez(cmpTempRegister, 7);
++ m_assembler.nop();
++ return jump();
++ }
++ if (cond == Signed) {
++ sub32(op1, op2, dest);
++ // Check if dest is negative.
++ m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
++ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
++ }
++ if (cond == Zero) {
++ sub32(op1, op2, dest);
++ return branchEqual(dest, MIPSRegisters::zero);
++ }
++ if (cond == NonZero) {
++ sub32(op1, op2, dest);
++ return branchNotEqual(dest, MIPSRegisters::zero);
++ }
++ ASSERT(0);
++ return Jump();
++ }
++
++ Jump branchNeg32(ResultCondition cond, RegisterID srcDest)
++ {
++ m_assembler.li(dataTempRegister, -1);
++ return branchMul32(cond, dataTempRegister, srcDest);
+ }
+
+ Jump branchOr32(ResultCondition cond, RegisterID src, RegisterID dest)
+@@ -1578,7 +1925,8 @@ public:
+
+ Call call(RegisterID target)
+ {
+- m_assembler.jalr(target);
++ move(target, MIPSRegisters::t9);
++ m_assembler.jalr(MIPSRegisters::t9);
+ m_assembler.nop();
+ return Call(m_assembler.label(), Call::None);
+ }
+@@ -1822,7 +2170,7 @@ public:
+ lui immTemp, (address.offset + 0x8000) >> 16
+ addu addrTemp, addrTemp, immTemp
+ lwc1 dest, (address.offset & 0xffff)(at)
+- lwc1 dest+4, (address.offset & 0xffff + 4)(at)
++ lwc1 dest+1, (address.offset & 0xffff + 4)(at)
+ */
+ m_assembler.sll(addrTempRegister, address.index, address.scale);
+ m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
+@@ -2009,6 +2357,19 @@ public:
+ #endif
+ }
+
++ void moveDouble(FPRegisterID src, FPRegisterID dest)
++ {
++ if (src != dest || m_fixedWidth)
++ m_assembler.movd(dest, src);
++ }
++
++ void swapDouble(FPRegisterID fr1, FPRegisterID fr2)
++ {
++ moveDouble(fr1, fpTempRegister);
++ moveDouble(fr2, fr1);
++ moveDouble(fpTempRegister, fr2);
++ }
++
+ void addDouble(FPRegisterID src, FPRegisterID dest)
+ {
+ m_assembler.addd(dest, dest, src);
+@@ -2036,6 +2397,11 @@ public:
+ m_assembler.subd(dest, dest, src);
+ }
+
++ void subDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
++ {
++ m_assembler.subd(dest, op1, op2);
++ }
++
+ void subDouble(Address src, FPRegisterID dest)
+ {
+ loadDouble(src, fpTempRegister);
+@@ -2053,11 +2419,32 @@ public:
+ m_assembler.muld(dest, dest, fpTempRegister);
+ }
+
++ void mulDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
++ {
++ m_assembler.muld(dest, op1, op2);
++ }
++
+ void divDouble(FPRegisterID src, FPRegisterID dest)
+ {
+ m_assembler.divd(dest, dest, src);
+ }
+
++ void divDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
++ {
++ m_assembler.divd(dest, op1, op2);
++ }
++
++ void divDouble(Address src, FPRegisterID dest)
++ {
++ loadDouble(src, fpTempRegister);
++ m_assembler.divd(dest, dest, fpTempRegister);
++ }
++
++ void negateDouble(FPRegisterID src, FPRegisterID dest)
++ {
++ m_assembler.negd(dest, src);
++ }
++
+ void convertInt32ToDouble(RegisterID src, FPRegisterID dest)
+ {
+ m_assembler.mtc1(src, fpTempRegister);
+@@ -2117,6 +2504,8 @@ public:
+
+ Jump branchEqual(RegisterID rs, RegisterID rt)
+ {
++ m_assembler.nop();
++ m_assembler.nop();
+ m_assembler.appendJump();
+ m_assembler.beq(rs, rt, 0);
+ m_assembler.nop();
+@@ -2126,6 +2515,8 @@ public:
+
+ Jump branchNotEqual(RegisterID rs, RegisterID rt)
+ {
++ m_assembler.nop();
++ m_assembler.nop();
+ m_assembler.appendJump();
+ m_assembler.bne(rs, rt, 0);
+ m_assembler.nop();
+@@ -2192,11 +2583,33 @@ public:
+ // If the result is not representable as a 32 bit value, branch.
+ // May also branch for some values that are representable in 32 bits
+ // (specifically, in this case, INT_MAX 0x7fffffff).
+- Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest)
++ enum BranchTruncateType { BranchIfTruncateFailed, BranchIfTruncateSuccessful };
++ Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest, BranchTruncateType branchType = BranchIfTruncateFailed)
++ {
++ m_assembler.truncwd(fpTempRegister, src);
++ m_assembler.mfc1(dest, fpTempRegister);
++ return branch32(branchType == BranchIfTruncateFailed ? Equal : NotEqual, dest, TrustedImm32(0x7fffffff));
++ }
++
++ Jump branchTruncateDoubleToUint32(FPRegisterID src, RegisterID dest, BranchTruncateType branchType = BranchIfTruncateFailed)
++ {
++ m_assembler.truncwd(fpTempRegister, src);
++ m_assembler.mfc1(dest, fpTempRegister);
++ return branch32(branchType == BranchIfTruncateFailed ? Equal : NotEqual, dest, TrustedImm32(0));
++ }
++
++ // Result is undefined if the value is outside of the integer range.
++ void truncateDoubleToInt32(FPRegisterID src, RegisterID dest)
++ {
++ m_assembler.truncwd(fpTempRegister, src);
++ m_assembler.mfc1(dest, fpTempRegister);
++ }
++
++ // Result is undefined if src > 2^31
++ void truncateDoubleToUint32(FPRegisterID src, RegisterID dest)
+ {
+ m_assembler.truncwd(fpTempRegister, src);
+ m_assembler.mfc1(dest, fpTempRegister);
+- return branch32(Equal, dest, TrustedImm32(0x7fffffff));
+ }
+
+ // Convert 'src' to an integer, and places the resulting 'dest'.
+@@ -2218,28 +2631,43 @@ public:
+
+ Jump branchDoubleNonZero(FPRegisterID reg, FPRegisterID scratch)
+ {
+-#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
+- m_assembler.mtc1(MIPSRegisters::zero, scratch);
+- m_assembler.mthc1(MIPSRegisters::zero, scratch);
+-#else
+- m_assembler.mtc1(MIPSRegisters::zero, scratch);
+- m_assembler.mtc1(MIPSRegisters::zero, FPRegisterID(scratch + 1));
+-#endif
++ m_assembler.vmov(scratch, MIPSRegisters::zero, MIPSRegisters::zero);
+ return branchDouble(DoubleNotEqual, reg, scratch);
+ }
+
+ Jump branchDoubleZeroOrNaN(FPRegisterID reg, FPRegisterID scratch)
+ {
+-#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
+- m_assembler.mtc1(MIPSRegisters::zero, scratch);
+- m_assembler.mthc1(MIPSRegisters::zero, scratch);
+-#else
+- m_assembler.mtc1(MIPSRegisters::zero, scratch);
+- m_assembler.mtc1(MIPSRegisters::zero, FPRegisterID(scratch + 1));
+-#endif
++ m_assembler.vmov(scratch, MIPSRegisters::zero, MIPSRegisters::zero);
+ return branchDouble(DoubleEqualOrUnordered, reg, scratch);
+ }
+
++ // Invert a relational condition, e.g. == becomes !=, < becomes >=, etc.
++ static RelationalCondition invert(RelationalCondition cond)
++ {
++ RelationalCondition r;
++ if (cond == Equal)
++ r = NotEqual;
++ else if (cond == NotEqual)
++ r = Equal;
++ else if (cond == Above)
++ r = BelowOrEqual;
++ else if (cond == AboveOrEqual)
++ r = Below;
++ else if (cond == Below)
++ r = AboveOrEqual;
++ else if (cond == BelowOrEqual)
++ r = Above;
++ else if (cond == GreaterThan)
++ r = LessThanOrEqual;
++ else if (cond == GreaterThanOrEqual)
++ r = LessThan;
++ else if (cond == LessThan)
++ r = GreaterThanOrEqual;
++ else if (cond == LessThanOrEqual)
++ r = GreaterThan;
++ return r;
++ }
++
+ void nop()
+ {
+ m_assembler.nop();
+@@ -2252,12 +2680,12 @@ public:
+
+ static void replaceWithJump(CodeLocationLabel instructionStart, CodeLocationLabel destination)
+ {
+- RELEASE_ASSERT_NOT_REACHED();
++ MIPSAssembler::replaceWithJump(instructionStart.dataLocation(), destination.dataLocation());
+ }
+
+ static ptrdiff_t maxJumpReplacementSize()
+ {
+- RELEASE_ASSERT_NOT_REACHED();
++ MIPSAssembler::maxJumpReplacementSize();
+ return 0;
+ }
+
+diff --git a/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h b/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
+index fa0f5e0..573d8dc 100644
+--- a/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
++++ b/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
+@@ -93,6 +93,23 @@ public:
+ }
+ #endif
+
++#if CPU(MIPS)
++ ALWAYS_INLINE void preserveReturnAddressAfterCall(RegisterID reg)
++ {
++ move(returnAddressRegister, reg);
++ }
++
++ ALWAYS_INLINE void restoreReturnAddressBeforeReturn(RegisterID reg)
++ {
++ move(reg, returnAddressRegister);
++ }
++
++ ALWAYS_INLINE void restoreReturnAddressBeforeReturn(Address address)
++ {
++ loadPtr(address, returnAddressRegister);
++ }
++#endif
++
+ void emitGetFromCallFrameHeaderPtr(JSStack::CallFrameHeaderEntry entry, GPRReg to)
+ {
+ loadPtr(Address(GPRInfo::callFrameRegister, entry * sizeof(Register)), to);
+@@ -193,7 +210,7 @@ public:
+ move(TrustedImmPtr(scratchBuffer->activeLengthPtr()), GPRInfo::regT0);
+ storePtr(TrustedImmPtr(scratchSize), GPRInfo::regT0);
+
+-#if CPU(X86_64) || CPU(ARM)
++#if CPU(X86_64) || CPU(ARM) || CPU(MIPS)
+ move(TrustedImmPtr(buffer), GPRInfo::argumentGPR2);
+ move(TrustedImmPtr(argument), GPRInfo::argumentGPR1);
+ move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
+diff --git a/Source/JavaScriptCore/dfg/DFGCCallHelpers.h b/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
+index 8adde05..3d99f6f 100644
+--- a/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
++++ b/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
+@@ -576,6 +576,39 @@ public:
+ poke(GPRInfo::nonArgGPR0);
+ }
+ #endif // CPU(ARM_HARDFP)
++#elif CPU(MIPS)
++ ALWAYS_INLINE void setupArguments(FPRReg arg1)
++ {
++ moveDouble(arg1, FPRInfo::argumentFPR0);
++ }
++
++ ALWAYS_INLINE void setupArguments(FPRReg arg1, FPRReg arg2)
++ {
++ if (arg2 != FPRInfo::argumentFPR0) {
++ moveDouble(arg1, FPRInfo::argumentFPR0);
++ moveDouble(arg2, FPRInfo::argumentFPR1);
++ } else if (arg1 != FPRInfo::argumentFPR1) {
++ moveDouble(arg2, FPRInfo::argumentFPR1);
++ moveDouble(arg1, FPRInfo::argumentFPR0);
++ } else {
++ // Swap arg1, arg2.
++ swapDouble(FPRInfo::argumentFPR0, FPRInfo::argumentFPR1);
++ }
++ }
++
++ ALWAYS_INLINE void setupArgumentsWithExecState(FPRReg arg1, GPRReg arg2)
++ {
++ assembler().vmov(GPRInfo::argumentGPR2, GPRInfo::argumentGPR3, arg1);
++ move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
++ poke(arg2, 4);
++ }
++
++ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, FPRReg arg3)
++ {
++ setupStubArguments(arg1, arg2);
++ move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
++ poke(arg3, 4);
++ }
+ #else
+ #error "DFG JIT not supported on this platform."
+ #endif
+@@ -803,119 +836,126 @@ public:
+ // These methods are suitable for any calling convention that provides for
+ // exactly 4 argument registers, e.g. ARMv7.
+ #if NUMBER_OF_ARGUMENT_REGISTERS == 4
++
++#if CPU(MIPS)
++#define POKE_ARGUMENT_OFFSET 4
++#else
++#define POKE_ARGUMENT_OFFSET 0
++#endif
++
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, TrustedImm32 arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, TrustedImmPtr arg2, TrustedImm32 arg3, GPRReg arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, TrustedImmPtr arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
+ {
+- poke(arg5, 1);
+- poke(arg4);
++ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, TrustedImm32 arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImm32 arg2, GPRReg arg3, GPRReg arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, TrustedImmPtr arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, GPRReg arg5)
+ {
+- poke(arg5, 1);
+- poke(arg4);
++ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, TrustedImmPtr arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, TrustedImm32 arg3, TrustedImmPtr arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4)
+ {
+- poke(arg4);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
+ {
+- poke(arg5, 1);
+- poke(arg4);
++ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4, TrustedImm32 arg5)
+ {
+- poke(arg5, 1);
+- poke(arg4);
++ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, TrustedImmPtr arg5)
+ {
+- poke(arg5, 1);
+- poke(arg4);
++ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, TrustedImm32 arg4, TrustedImm32 arg5)
+ {
+- poke(arg5, 1);
+- poke(arg4);
++ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImm32 arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
+ {
+- poke(arg5, 1);
+- poke(arg4);
++ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+ ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, GPRReg arg5)
+ {
+- poke(arg5, 1);
+- poke(arg4);
++ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
++ poke(arg4, POKE_ARGUMENT_OFFSET);
+ setupArgumentsWithExecState(arg1, arg2, arg3);
+ }
+
+diff --git a/Source/JavaScriptCore/dfg/DFGFPRInfo.h b/Source/JavaScriptCore/dfg/DFGFPRInfo.h
+index 17aaa7d..e18ec06 100644
+--- a/Source/JavaScriptCore/dfg/DFGFPRInfo.h
++++ b/Source/JavaScriptCore/dfg/DFGFPRInfo.h
+@@ -164,6 +164,74 @@ public:
+
+ #endif
+
++#if CPU(MIPS)
++
++class FPRInfo {
++public:
++ typedef FPRReg RegisterType;
++ static const unsigned numberOfRegisters = 6;
++
++ // Temporary registers.
++ static const FPRReg fpRegT0 = MIPSRegisters::f0;
++ static const FPRReg fpRegT1 = MIPSRegisters::f4;
++ static const FPRReg fpRegT2 = MIPSRegisters::f6;
++ static const FPRReg fpRegT3 = MIPSRegisters::f8;
++ static const FPRReg fpRegT4 = MIPSRegisters::f10;
++ static const FPRReg fpRegT5 = MIPSRegisters::f18;
++
++ static const FPRReg returnValueFPR = MIPSRegisters::f0;
++
++ static const FPRReg argumentFPR0 = MIPSRegisters::f12;
++ static const FPRReg argumentFPR1 = MIPSRegisters::f14;
++
++ static FPRReg toRegister(unsigned index)
++ {
++ static const FPRReg registerForIndex[numberOfRegisters] = {
++ fpRegT0, fpRegT1, fpRegT2, fpRegT3, fpRegT4, fpRegT5 };
++
++ ASSERT(index < numberOfRegisters);
++ return registerForIndex[index];
++ }
++
++ static unsigned toIndex(FPRReg reg)
++ {
++ ASSERT(reg != InvalidFPRReg);
++ ASSERT(reg < 20);
++ static const unsigned indexForRegister[20] = {
++ 0, InvalidIndex, InvalidIndex, InvalidIndex,
++ 1, InvalidIndex, 2, InvalidIndex,
++ 3, InvalidIndex, 4, InvalidIndex,
++ InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex,
++ InvalidIndex, InvalidIndex, 5, InvalidIndex,
++ };
++ unsigned result = indexForRegister[reg];
++ ASSERT(result != InvalidIndex);
++ return result;
++ }
++
++ static const char* debugName(FPRReg reg)
++ {
++ ASSERT(reg != InvalidFPRReg);
++ ASSERT(reg < 32);
++ static const char* nameForRegister[32] = {
++ "f0", "f1", "f2", "f3",
++ "f4", "f5", "f6", "f7",
++ "f8", "f9", "f10", "f11",
++ "f12", "f13", "f14", "f15"
++ "f16", "f17", "f18", "f19"
++ "f20", "f21", "f22", "f23"
++ "f24", "f25", "f26", "f27"
++ "f28", "f29", "f30", "f31"
++ };
++ return nameForRegister[reg];
++ }
++private:
++
++ static const unsigned InvalidIndex = 0xffffffff;
++};
++
++#endif
++
+ typedef RegisterBank<FPRInfo>::iterator fpr_iterator;
+
+ } } // namespace JSC::DFG
+diff --git a/Source/JavaScriptCore/dfg/DFGGPRInfo.h b/Source/JavaScriptCore/dfg/DFGGPRInfo.h
+index 3d07556..aa634cd 100644
+--- a/Source/JavaScriptCore/dfg/DFGGPRInfo.h
++++ b/Source/JavaScriptCore/dfg/DFGGPRInfo.h
+@@ -461,6 +461,73 @@ private:
+
+ #endif
+
++#if CPU(MIPS)
++#define NUMBER_OF_ARGUMENT_REGISTERS 4
++
++class GPRInfo {
++public:
++ typedef GPRReg RegisterType;
++ static const unsigned numberOfRegisters = 6;
++
++ // Temporary registers.
++ static const GPRReg regT0 = MIPSRegisters::v0;
++ static const GPRReg regT1 = MIPSRegisters::v1;
++ static const GPRReg regT2 = MIPSRegisters::t4;
++ static const GPRReg regT3 = MIPSRegisters::t5;
++ static const GPRReg regT4 = MIPSRegisters::t6;
++ static const GPRReg regT5 = MIPSRegisters::t7;
++ // These registers match the baseline JIT.
++ static const GPRReg cachedResultRegister = regT0;
++ static const GPRReg cachedResultRegister2 = regT1;
++ static const GPRReg callFrameRegister = MIPSRegisters::s0;
++ // These constants provide the names for the general purpose argument & return value registers.
++ static const GPRReg argumentGPR0 = MIPSRegisters::a0;
++ static const GPRReg argumentGPR1 = MIPSRegisters::a1;
++ static const GPRReg argumentGPR2 = MIPSRegisters::a2;
++ static const GPRReg argumentGPR3 = MIPSRegisters::a3;
++ static const GPRReg nonArgGPR0 = regT2;
++ static const GPRReg nonArgGPR1 = regT3;
++ static const GPRReg nonArgGPR2 = regT4;
++ static const GPRReg returnValueGPR = regT0;
++ static const GPRReg returnValueGPR2 = regT1;
++ static const GPRReg nonPreservedNonReturnGPR = regT5;
++
++ static GPRReg toRegister(unsigned index)
++ {
++ ASSERT(index < numberOfRegisters);
++ static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5 };
++ return registerForIndex[index];
++ }
++
++ static unsigned toIndex(GPRReg reg)
++ {
++ ASSERT(reg != InvalidGPRReg);
++ ASSERT(reg < 16);
++ static const unsigned indexForRegister[16] = { InvalidIndex, InvalidIndex, 0, 1, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, 2, 3, 4, 5 };
++ unsigned result = indexForRegister[reg];
++ ASSERT(result != InvalidIndex);
++ return result;
++ }
++
++ static const char* debugName(GPRReg reg)
++ {
++ ASSERT(reg != InvalidGPRReg);
++ ASSERT(reg < 16);
++ static const char* nameForRegister[16] = {
++ "zero", "at", "v0", "v1",
++ "a0", "a1", "a2", "a3",
++ "t0", "t1", "t2", "t3",
++ "t4", "t5", "t6", "t7"
++ };
++ return nameForRegister[reg];
++ }
++private:
++
++ static const unsigned InvalidIndex = 0xffffffff;
++};
++
++#endif
++
+ typedef RegisterBank<GPRInfo>::iterator gpr_iterator;
+
+ } } // namespace JSC::DFG
+diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
+index ea33f38..247274b 100644
+--- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
++++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
+@@ -1241,7 +1241,7 @@ public:
+
+ // EncodedJSValue in JSVALUE32_64 is a 64-bit integer. When being compiled in ARM EABI, it must be aligned even-numbered register (r0, r2 or [sp]).
+ // To avoid assemblies from using wrong registers, let's occupy r1 or r3 with a dummy argument when necessary.
+-#if COMPILER_SUPPORTS(EABI) && CPU(ARM)
++#if (COMPILER_SUPPORTS(EABI) && CPU(ARM)) || CPU(MIPS)
+ #define EABI_32BIT_DUMMY_ARG TrustedImm32(0),
+ #else
+ #define EABI_32BIT_DUMMY_ARG
+@@ -1691,7 +1691,7 @@ public:
+ }
+ #endif
+
+-#if !defined(NDEBUG) && !CPU(ARM)
++#if !defined(NDEBUG) && !CPU(ARM) && !CPU(MIPS)
+ void prepareForExternalCall()
+ {
+ // We're about to call out to a "native" helper function. The helper
+diff --git a/Source/JavaScriptCore/jit/JSInterfaceJIT.h b/Source/JavaScriptCore/jit/JSInterfaceJIT.h
+index 7fdeaf0..48ad6b2 100644
+--- a/Source/JavaScriptCore/jit/JSInterfaceJIT.h
++++ b/Source/JavaScriptCore/jit/JSInterfaceJIT.h
+@@ -125,6 +125,10 @@ namespace JSC {
+ static const RegisterID cachedResultRegister = MIPSRegisters::v0;
+ static const RegisterID firstArgumentRegister = MIPSRegisters::a0;
+
++#if ENABLE(VALUE_PROFILER)
++ static const RegisterID bucketCounterRegister = MIPSRegisters::s3;
++#endif
++
+ // regT0 must be v0 for returning a 32-bit value.
+ static const RegisterID regT0 = MIPSRegisters::v0;
+
+diff --git a/Source/JavaScriptCore/runtime/JSGlobalData.h b/Source/JavaScriptCore/runtime/JSGlobalData.h
+index 5d47ab9..c02f336 100644
+--- a/Source/JavaScriptCore/runtime/JSGlobalData.h
++++ b/Source/JavaScriptCore/runtime/JSGlobalData.h
+@@ -141,14 +141,18 @@ namespace JSC {
+ return result;
+ }
+
+- static size_t allocationSize(size_t bufferSize) { return sizeof(size_t) + bufferSize; }
++ static size_t allocationSize(size_t bufferSize) { return sizeof(ScratchBuffer) + bufferSize; }
+ void setActiveLength(size_t activeLength) { m_activeLength = activeLength; }
+ size_t activeLength() const { return m_activeLength; };
+ size_t* activeLengthPtr() { return &m_activeLength; };
+ void* dataBuffer() { return m_buffer; }
+
+ size_t m_activeLength;
++#if CPU(MIPS) && (defined WTF_MIPS_ARCH_REV && WTF_MIPS_ARCH_REV == 2)
++ void* m_buffer[0] __attribute__((aligned(8)));
++#else
+ void* m_buffer[0];
++#endif
+ };
+ #if COMPILER(MSVC)
+ #pragma warning(pop)
+diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
+index 1698247..2d90359 100644
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -818,6 +818,10 @@
+ #if CPU(ARM_TRADITIONAL)
+ #define ENABLE_DFG_JIT 1
+ #endif
++/* Enable the DFG JIT on MIPS. */
++#if CPU(MIPS)
++#define ENABLE_DFG_JIT 1
++#endif
+ #endif
+
+ /* If the jit is not available, enable the LLInt C Loop: */
+--
+1.8.3.2
+
--- /dev/null
+ANGLE doesn't build with bison 3.0
+
+Author: allan.jensen@digia.com
+​https://bugs.webkit.org/show_bug.cgi?id=119798
+Reviewed by Antti Koivisto.
+Make glslang.y compatible with bison 3.0, by using %lex-param
+to set YYLEX_PARAM and getting rid of useless YYID macro.
+
+From upstream: http://trac.webkit.org/changeset/154109
+[Arnout: adapted to our older webkit version]
+Signed-off-by: Arnout Vandecaeppelle (Essensium/Mind) <arnout@mind.be>
+---
+Index: trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y
+===================================================================
+--- trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y (revision 154108)
++++ trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y (revision 154109)
+@@ -48,4 +48,5 @@
+ %pure-parser
+ %parse-param {TParseContext* context}
++%lex-param {YYLEX_PARAM}
+
+ %union {
+++ /dev/null
-Add missing symbol for WebCore::TextIterator::getLocationAndLengthFromRange
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From f5bb58f9096061f00c948e668335811d364ba360 Mon Sep 17 00:00:00 2001
-From: "kov@webkit.org" <kov@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
-Date: Thu, 7 Feb 2013 13:48:46 +0000
-Subject: [PATCH] Unreviewed build fix after r141196 for 32 bits autotools.
-
-* Source/autotools/symbols.filter: restore 32 bits version of the
-WebCore::TextIterator::getLocationAndLengthFromRange(WebCore::Node*,
-WebCore::Range const*, unsigned int&, unsigned int&) symbol.
-
-git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
----
- ChangeLog | 8 ++++++++
- Source/autotools/symbols.filter | 1 +
- 2 files changed, 9 insertions(+)
-
-diff --git a/Source/autotools/symbols.filter b/Source/autotools/symbols.filter
-index 9d730b3..2edefaf 100644
---- a/Source/autotools/symbols.filter
-+++ b/Source/autotools/symbols.filter
-@@ -57,6 +57,7 @@ _ZN7WebCore11HistoryItem16setDocumentStateERKN3WTF6VectorINS1_6StringELj0EEE;
- _ZN7WebCore11HistoryItem16setDocumentStateERKN3WTF6VectorINS1_6StringELm0EEE;
- _ZN7WebCore11MemoryCache14resourceForURLERKNS_4KURLE;
- _ZN7WebCore12TextIterator26rangeFromLocationAndLengthEPNS_13ContainerNodeEiib;
-+_ZN7WebCore12TextIterator29getLocationAndLengthFromRangeEPNS_4NodeEPKNS_5RangeERjS6_;
- _ZN7WebCore12TextIterator29getLocationAndLengthFromRangeEPNS_4NodeEPKNS_5RangeERmS6_;
- _ZN7WebCore12PrintContext20pageNumberForElementEPNS_7ElementERKNS_9FloatSizeE;
- _ZN7WebCore13createWrapperEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_4NodeE;
---
-1.8.3.2
-
+++ /dev/null
-Make gstreamer support conditional
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From f1055f61bce46eccf8dc0aa017113a08d3d71944 Mon Sep 17 00:00:00 2001
-From: "commit-queue@webkit.org"
- <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
-Date: Fri, 15 Mar 2013 07:13:51 +0000
-Subject: [PATCH] Build fix for Tools/GtkLauncher/Programs_GtkLauncher-main.o
- if gstreamer is not installed https://bugs.webkit.org/show_bug.cgi?id=112394
-
-Patch by Tobias Mueller <tobiasmue@gnome.org> on 2013-03-15
-Reviewed by Philippe Normand.
-
-* GtkLauncher/main.c:
-(main): Guard using the gstreamer function with #ifdef WTF_USE_GSTREAMER
-
-git-svn-id: http://svn.webkit.org/repository/webkit/trunk@145881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
----
- Tools/ChangeLog | 10 ++++++++++
- Tools/GtkLauncher/main.c | 5 ++++-
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/Tools/GtkLauncher/main.c b/Tools/GtkLauncher/main.c
-index 32baf4a..84c8833 100644
---- a/Tools/GtkLauncher/main.c
-+++ b/Tools/GtkLauncher/main.c
-@@ -28,7 +28,9 @@
- #include "autotoolsconfig.h"
- #include "LauncherInspectorWindow.h"
- #include <errno.h>
-+#ifdef WTF_USE_GSTREAMER
- #include <gst/gst.h>
-+#endif
- #include <gtk/gtk.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -489,8 +491,9 @@ int main(int argc, char* argv[])
- GOptionContext *context = g_option_context_new(0);
- g_option_context_add_main_entries(context, commandLineOptions, 0);
- g_option_context_add_group(context, gtk_get_option_group(TRUE));
-+#ifdef WTF_USE_GSTREAMER
- g_option_context_add_group(context, gst_init_get_option_group());
--
-+#endif
- webkitSettings = webkit_web_settings_new();
- g_object_set(webkitSettings, "enable-developer-extras", TRUE, NULL);
- if (!addWebSettingsGroupToContext(context, webkitSettings)) {
---
-1.8.3.2
-
+++ /dev/null
-harfbuzz-icu detections based on the following upstream commits
-
-- 5f3ae29ffb29c499c1825578ba7f3ffcbf1aa8b9
-- ad2a23ec44b692bde43a13b658990770caa8dfc5
-- 22b4786377142424bfb6562ff029997acd0846d1
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: webkit-1.11.5/configure.ac
-===================================================================
---- webkit-1.11.5.orig/configure.ac
-+++ webkit-1.11.5/configure.ac
-@@ -938,6 +938,15 @@ PKG_CHECK_MODULES([FREETYPE],
- freetype2 >= $FREETYPE2_REQUIRED_VERSION
- harfbuzz])
- fi
-+# HarfBuzz 0.9.18 splits harbuzz-icu into a separate library.
-+# Since we support earlier HarfBuzz versions we keep this conditional for now.
-+m4_define([harfbuzz_required_version], [0.9.7])
-+if $PKG_CONFIG --atleast-version 0.9.18 harfbuzz; then
-+ PKG_CHECK_MODULES([HARFBUZZ_ICU], [harfbuzz-icu >= $harfbuzz_required_version])
-+ FREETYPE_CFLAGS+=" $HARFBUZZ_ICU_CFLAGS"
-+ FREETYPE_LIBS+=" $HARFBUZZ_ICU_LIBS"
-+fi
-+
- AC_SUBST([FREETYPE_CFLAGS])
- AC_SUBST([FREETYPE_LIBS])
-
+++ /dev/null
-This patch prevents documentation from being rebased or installed. This
-prevents an error when gtk-doc --rebase is called.
-
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: webkit-1.11.5/Tools/GNUmakefile.am
-===================================================================
---- webkit-1.11.5.orig/Tools/GNUmakefile.am
-+++ webkit-1.11.5/Tools/GNUmakefile.am
-@@ -308,6 +308,8 @@ EXTRA_DIST += \
- Tools/Scripts/webkit-build-directory \
- Tools/Scripts/webkitdirs.pm
-
-+if ENABLE_GTK_DOC
-+
- docs: docs-build.stamp
- .PHONY : docs
- DISTCLEANFILES += docs-build.stamp
-@@ -412,7 +414,6 @@ if ENABLE_WEBKIT2
- rm -rf $${installdir}
- endif
-
--if ENABLE_GTK_DOC
- all: docs-build.stamp
- endif
-
+++ /dev/null
-This prevents the Webkit test suites from being built.
-
-Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
-----
-Index: webkit-1.9.6/GNUmakefile.am
-===================================================================
---- webkit-1.9.6.orig/GNUmakefile.am 2012-08-06 03:17:24.000000000 -0500
-+++ webkit-1.9.6/GNUmakefile.am 2013-05-28 10:08:53.645129501 -0500
-@@ -282,11 +282,14 @@
- include Tools/DumpRenderTree/gtk/GNUmakefile.ImageDiff.am
-
- include Source/WebKit2/GNUmakefile.am
--include Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
- include Tools/MiniBrowser/gtk/GNUmakefile.am
-+
-+if ENABLE_TESTS
-+include Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
- include Tools/WebKitTestRunner/GNUmakefile.am
- include Source/ThirdParty/gtest/GNUmakefile.am
- include Tools/TestWebKitAPI/GNUmakefile.am
-+endif # ENABLE_TESTS
- # [GTK] Refactor the translations now that we have webkit2
- # https://bugs.webkit.org/show_bug.cgi?id=55153
-
-Index: webkit-1.9.6/Source/WebKit/gtk/GNUmakefile.am
-===================================================================
---- webkit-1.9.6.orig/Source/WebKit/gtk/GNUmakefile.am 2012-07-19 05:02:29.000000000 -0500
-+++ webkit-1.9.6/Source/WebKit/gtk/GNUmakefile.am 2013-05-28 10:09:49.277130516 -0500
-@@ -413,6 +413,7 @@
- dist_resources_DATA = \
- $(shell ls $(srcdir)/Source/WebKit/gtk/resources/*.html)
-
-+if ENABLE_TESTS
- # Build unit tests
- webkit_tests_cflags = \
- -fno-strict-aliasing \
-@@ -613,6 +614,8 @@
- Programs_unittests_testcopyandpaste_LDADD = $(webkit_tests_ldadd)
- Programs_unittests_testcopyandpaste_LDFLAGS = $(webkit_tests_ldflags)
-
-+endif # ENABLE_TESTS
-+
- # Project-wide clean rules
- # Files that will be cleaned
- CLEANFILES += \
-Index: webkit-1.9.6/configure.ac
-===================================================================
---- webkit-1.9.6.orig/configure.ac 2012-08-06 08:45:10.000000000 -0500
-+++ webkit-1.9.6/configure.ac 2013-05-28 10:07:55.817128445 -0500
-@@ -516,6 +516,14 @@
- AC_SUBST(CAIRO_CFLAGS)
- AC_SUBST(CAIRO_LIBS)
-
-+# check wheter to build tests
-+AC_MSG_CHECKING([wheter to build tests])
-+AC_ARG_ENABLE(tests,
-+ AC_HELP_STRING([--enable-tests],
-+ [turn on tests [default=no]]),
-+ [],[enable_debug="no"])
-+AC_MSG_RESULT([$enable_tests])
-+
- # check whether to build with debugging enabled
- AC_MSG_CHECKING([whether to do a debug build])
- AC_ARG_ENABLE(debug,
-@@ -1423,6 +1431,7 @@
- AM_CONDITIONAL([USE_FARSTREAM], [test "$have_farstream" = "yes"])
-
- # WebKit feature conditionals
-+AM_CONDITIONAL([ENABLE_TESTS],[test "$enable_tests" = "yes"])
- AM_CONDITIONAL([ENABLE_DEBUG],[test "$enable_debug_features" = "yes"])
- AM_CONDITIONAL([ENABLE_UNSTABLE_FEATURES],[test "$enable_unstable_features" = "yes"])
- AM_CONDITIONAL([ENABLE_WEBGL],[test "$enable_webgl" = "yes"])
-@@ -1534,6 +1543,7 @@
- WebKit was configured with the following options:
-
- Build configuration:
-+ Enable tests (slow) : $enable_tests
- Enable debugging (slow) : $enable_debug
- Compile with debug symbols (slow) : $enable_debug_symbols
- Enable debug features (slow) : $enable_debug_features
+++ /dev/null
-Fixes uclibc build as uclibc does not include backtrace functionality
-
-Signed-of-by: Spenser Gilliland <spenser@gillilanding.com>
-Signed-of-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: webkit-1.11.5/Source/WTF/wtf/Assertions.cpp
-===================================================================
---- webkit-1.11.5.orig/Source/WTF/wtf/Assertions.cpp
-+++ webkit-1.11.5/Source/WTF/wtf/Assertions.cpp
-@@ -61,8 +61,10 @@
- #if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
- #include <cxxabi.h>
- #include <dlfcn.h>
-+#if !defined(__UCLIBC__)
- #include <execinfo.h>
- #endif
-+#endif
-
- #if OS(ANDROID)
- #include "android/log.h"
+++ /dev/null
-Upstream patch for DFG implementation for MIPS
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-From c921d19863ccf66bdd0ffa5d38eaf05efab6b136 Mon Sep 17 00:00:00 2001
-From: "commit-queue@webkit.org"
- <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
-Date: Mon, 18 Feb 2013 19:25:23 +0000
-Subject: [PATCH] MIPS DFG implementation.
- https://bugs.webkit.org/show_bug.cgi?id=101328
-
-Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2013-02-18
-Reviewed by Oliver Hunt.
-
-DFG implementation for MIPS.
-
-Source/JavaScriptCore:
-
-* assembler/MIPSAssembler.h:
-(JSC::MIPSAssembler::MIPSAssembler):
-(JSC::MIPSAssembler::sllv):
-(JSC::MIPSAssembler::movd):
-(MIPSAssembler):
-(JSC::MIPSAssembler::negd):
-(JSC::MIPSAssembler::labelForWatchpoint):
-(JSC::MIPSAssembler::label):
-(JSC::MIPSAssembler::vmov):
-(JSC::MIPSAssembler::linkDirectJump):
-(JSC::MIPSAssembler::maxJumpReplacementSize):
-(JSC::MIPSAssembler::revertJumpToMove):
-(JSC::MIPSAssembler::replaceWithJump):
-* assembler/MacroAssembler.h:
-(MacroAssembler):
-(JSC::MacroAssembler::poke):
-* assembler/MacroAssemblerMIPS.h:
-(JSC::MacroAssemblerMIPS::add32):
-(MacroAssemblerMIPS):
-(JSC::MacroAssemblerMIPS::and32):
-(JSC::MacroAssemblerMIPS::lshift32):
-(JSC::MacroAssemblerMIPS::mul32):
-(JSC::MacroAssemblerMIPS::or32):
-(JSC::MacroAssemblerMIPS::rshift32):
-(JSC::MacroAssemblerMIPS::urshift32):
-(JSC::MacroAssemblerMIPS::sub32):
-(JSC::MacroAssemblerMIPS::xor32):
-(JSC::MacroAssemblerMIPS::store32):
-(JSC::MacroAssemblerMIPS::jump):
-(JSC::MacroAssemblerMIPS::branchAdd32):
-(JSC::MacroAssemblerMIPS::branchMul32):
-(JSC::MacroAssemblerMIPS::branchSub32):
-(JSC::MacroAssemblerMIPS::branchNeg32):
-(JSC::MacroAssemblerMIPS::call):
-(JSC::MacroAssemblerMIPS::loadDouble):
-(JSC::MacroAssemblerMIPS::moveDouble):
-(JSC::MacroAssemblerMIPS::swapDouble):
-(JSC::MacroAssemblerMIPS::subDouble):
-(JSC::MacroAssemblerMIPS::mulDouble):
-(JSC::MacroAssemblerMIPS::divDouble):
-(JSC::MacroAssemblerMIPS::negateDouble):
-(JSC::MacroAssemblerMIPS::branchEqual):
-(JSC::MacroAssemblerMIPS::branchNotEqual):
-(JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32):
-(JSC::MacroAssemblerMIPS::branchTruncateDoubleToUint32):
-(JSC::MacroAssemblerMIPS::truncateDoubleToInt32):
-(JSC::MacroAssemblerMIPS::truncateDoubleToUint32):
-(JSC::MacroAssemblerMIPS::branchDoubleNonZero):
-(JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN):
-(JSC::MacroAssemblerMIPS::invert):
-(JSC::MacroAssemblerMIPS::replaceWithJump):
-(JSC::MacroAssemblerMIPS::maxJumpReplacementSize):
-* dfg/DFGAssemblyHelpers.h:
-(AssemblyHelpers):
-(JSC::DFG::AssemblyHelpers::preserveReturnAddressAfterCall):
-(JSC::DFG::AssemblyHelpers::restoreReturnAddressBeforeReturn):
-(JSC::DFG::AssemblyHelpers::debugCall):
-* dfg/DFGCCallHelpers.h:
-(CCallHelpers):
-(JSC::DFG::CCallHelpers::setupArguments):
-(JSC::DFG::CCallHelpers::setupArgumentsWithExecState):
-* dfg/DFGFPRInfo.h:
-(DFG):
-(FPRInfo):
-(JSC::DFG::FPRInfo::toRegister):
-(JSC::DFG::FPRInfo::toIndex):
-(JSC::DFG::FPRInfo::debugName):
-* dfg/DFGGPRInfo.h:
-(DFG):
-(GPRInfo):
-(JSC::DFG::GPRInfo::toRegister):
-(JSC::DFG::GPRInfo::toIndex):
-(JSC::DFG::GPRInfo::debugName):
-* dfg/DFGSpeculativeJIT.h:
-(SpeculativeJIT):
-* jit/JSInterfaceJIT.h:
-(JSInterfaceJIT):
-* runtime/JSGlobalData.h:
-(JSC::ScratchBuffer::allocationSize):
-(ScratchBuffer):
-
-Source/WTF:
-
-* wtf/Platform.h:
-
-git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
----
- Source/JavaScriptCore/ChangeLog | 90 ++++
- Source/JavaScriptCore/assembler/MIPSAssembler.h | 109 ++++-
- Source/JavaScriptCore/assembler/MacroAssembler.h | 7 +
- .../JavaScriptCore/assembler/MacroAssemblerMIPS.h | 480 +++++++++++++++++++--
- Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h | 19 +-
- Source/JavaScriptCore/dfg/DFGCCallHelpers.h | 92 ++--
- Source/JavaScriptCore/dfg/DFGFPRInfo.h | 68 +++
- Source/JavaScriptCore/dfg/DFGGPRInfo.h | 67 +++
- Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h | 4 +-
- Source/JavaScriptCore/jit/JSInterfaceJIT.h | 4 +
- Source/JavaScriptCore/runtime/JSGlobalData.h | 6 +-
- Source/WTF/ChangeLog | 11 +
- Source/WTF/wtf/Platform.h | 4 +
- 13 files changed, 888 insertions(+), 73 deletions(-)
-
-diff --git a/Source/JavaScriptCore/assembler/MIPSAssembler.h b/Source/JavaScriptCore/assembler/MIPSAssembler.h
-index 026f87e..7f553bb 100644
---- a/Source/JavaScriptCore/assembler/MIPSAssembler.h
-+++ b/Source/JavaScriptCore/assembler/MIPSAssembler.h
-@@ -152,6 +152,8 @@ public:
- typedef SegmentedVector<AssemblerLabel, 64> Jumps;
-
- MIPSAssembler()
-+ : m_indexOfLastWatchpoint(INT_MIN)
-+ , m_indexOfTailOfLastWatchpoint(INT_MIN)
- {
- }
-
-@@ -325,7 +327,7 @@ public:
- emitInst(0x00000000 | (rd << OP_SH_RD) | (rt << OP_SH_RT) | ((shamt & 0x1f) << OP_SH_SHAMT));
- }
-
-- void sllv(RegisterID rd, RegisterID rt, int rs)
-+ void sllv(RegisterID rd, RegisterID rt, RegisterID rs)
- {
- emitInst(0x00000004 | (rd << OP_SH_RD) | (rt << OP_SH_RT) | (rs << OP_SH_RS));
- }
-@@ -527,6 +529,16 @@ public:
- emitInst(0x46200004 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
- }
-
-+ void movd(FPRegisterID fd, FPRegisterID fs)
-+ {
-+ emitInst(0x46200006 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
-+ }
-+
-+ void negd(FPRegisterID fd, FPRegisterID fs)
-+ {
-+ emitInst(0x46200007 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
-+ }
-+
- void truncwd(FPRegisterID fd, FPRegisterID fs)
- {
- emitInst(0x4620000d | (fd << OP_SH_FD) | (fs << OP_SH_FS));
-@@ -619,9 +631,24 @@ public:
- return m_buffer.label();
- }
-
-+ AssemblerLabel labelForWatchpoint()
-+ {
-+ AssemblerLabel result = m_buffer.label();
-+ if (static_cast<int>(result.m_offset) != m_indexOfLastWatchpoint)
-+ result = label();
-+ m_indexOfLastWatchpoint = result.m_offset;
-+ m_indexOfTailOfLastWatchpoint = result.m_offset + maxJumpReplacementSize();
-+ return result;
-+ }
-+
- AssemblerLabel label()
- {
-- return m_buffer.label();
-+ AssemblerLabel result = m_buffer.label();
-+ while (UNLIKELY(static_cast<int>(result.m_offset) < m_indexOfTailOfLastWatchpoint)) {
-+ nop();
-+ result = m_buffer.label();
-+ }
-+ return result;
- }
-
- AssemblerLabel align(int alignment)
-@@ -664,14 +691,24 @@ public:
- // Assembly helpers for moving data between fp and registers.
- void vmov(RegisterID rd1, RegisterID rd2, FPRegisterID rn)
- {
-+#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
-+ mfc1(rd1, rn);
-+ mfhc1(rd2, rn);
-+#else
- mfc1(rd1, rn);
- mfc1(rd2, FPRegisterID(rn + 1));
-+#endif
- }
-
- void vmov(FPRegisterID rd, RegisterID rn1, RegisterID rn2)
- {
-+#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
-+ mtc1(rn1, rd);
-+ mthc1(rn2, rd);
-+#else
- mtc1(rn1, rd);
- mtc1(rn2, FPRegisterID(rd + 1));
-+#endif
- }
-
- static unsigned getCallReturnOffset(AssemblerLabel call)
-@@ -688,6 +725,35 @@ public:
- // writable region of memory; to modify the code in an execute-only execuable
- // pool the 'repatch' and 'relink' methods should be used.
-
-+ static size_t linkDirectJump(void* code, void* to)
-+ {
-+ MIPSWord* insn = reinterpret_cast<MIPSWord*>(reinterpret_cast<intptr_t>(code));
-+ size_t ops = 0;
-+ int32_t slotAddr = reinterpret_cast<int>(insn) + 4;
-+ int32_t toAddr = reinterpret_cast<int>(to);
-+
-+ if ((slotAddr & 0xf0000000) != (toAddr & 0xf0000000)) {
-+ // lui
-+ *insn = 0x3c000000 | (MIPSRegisters::t9 << OP_SH_RT) | ((toAddr >> 16) & 0xffff);
-+ ++insn;
-+ // ori
-+ *insn = 0x34000000 | (MIPSRegisters::t9 << OP_SH_RT) | (MIPSRegisters::t9 << OP_SH_RS) | (toAddr & 0xffff);
-+ ++insn;
-+ // jr
-+ *insn = 0x00000008 | (MIPSRegisters::t9 << OP_SH_RS);
-+ ++insn;
-+ ops = 4 * sizeof(MIPSWord);
-+ } else {
-+ // j
-+ *insn = 0x08000000 | ((toAddr & 0x0fffffff) >> 2);
-+ ++insn;
-+ ops = 2 * sizeof(MIPSWord);
-+ }
-+ // nop
-+ *insn = 0x00000000;
-+ return ops;
-+ }
-+
- void linkJump(AssemblerLabel from, AssemblerLabel to)
- {
- ASSERT(to.isSet());
-@@ -825,29 +891,36 @@ public:
- #endif
- }
-
-- static void revertJumpToMove(void* instructionStart, RegisterID rt, int imm)
-+ static ptrdiff_t maxJumpReplacementSize()
- {
-- MIPSWord* insn = static_cast<MIPSWord*>(instructionStart) + 1;
-- ASSERT((*insn & 0xfc000000) == 0x34000000);
-- *insn = (*insn & 0xfc1f0000) | (imm & 0xffff);
-- cacheFlush(insn, sizeof(MIPSWord));
-+ return sizeof(MIPSWord) * 4;
- }
-
-- static void replaceWithJump(void* instructionStart, void* to)
-+ static void revertJumpToMove(void* instructionStart, RegisterID rt, int imm)
- {
-- MIPSWord* instruction = reinterpret_cast<MIPSWord*>(instructionStart);
-- intptr_t jumpTo = reinterpret_cast<intptr_t>(to);
-+ MIPSWord* insn = static_cast<MIPSWord*>(instructionStart);
-+ size_t codeSize = 2 * sizeof(MIPSWord);
-
- // lui
-- instruction[0] = 0x3c000000 | (MIPSRegisters::t9 << OP_SH_RT) | ((jumpTo >> 16) & 0xffff);
-+ *insn = 0x3c000000 | (rt << OP_SH_RT) | ((imm >> 16) & 0xffff);
-+ ++insn;
- // ori
-- instruction[1] = 0x34000000 | (MIPSRegisters::t9 << OP_SH_RT) | (MIPSRegisters::t9 << OP_SH_RS) | (jumpTo & 0xffff);
-- // jr
-- instruction[2] = 0x00000008 | (MIPSRegisters::t9 << OP_SH_RS);
-- // nop
-- instruction[3] = 0x0;
-+ *insn = 0x34000000 | (rt << OP_SH_RS) | (rt << OP_SH_RT) | (imm & 0xffff);
-+ ++insn;
-+ // if jr $t9
-+ if (*insn == 0x03200008) {
-+ *insn = 0x00000000;
-+ codeSize += sizeof(MIPSWord);
-+ }
-+ cacheFlush(insn, codeSize);
-+ }
-
-- cacheFlush(instruction, sizeof(MIPSWord) * 4);
-+ static void replaceWithJump(void* instructionStart, void* to)
-+ {
-+ ASSERT(!(bitwise_cast<uintptr_t>(instructionStart) & 3));
-+ ASSERT(!(bitwise_cast<uintptr_t>(to) & 3));
-+ size_t ops = linkDirectJump(instructionStart, to);
-+ cacheFlush(instructionStart, ops);
- }
-
- static void replaceWithLoad(void* instructionStart)
-@@ -1023,6 +1096,8 @@ private:
-
- AssemblerBuffer m_buffer;
- Jumps m_jumps;
-+ int m_indexOfLastWatchpoint;
-+ int m_indexOfTailOfLastWatchpoint;
- };
-
- } // namespace JSC
-diff --git a/Source/JavaScriptCore/assembler/MacroAssembler.h b/Source/JavaScriptCore/assembler/MacroAssembler.h
-index 60a93db..1f0c3de 100644
---- a/Source/JavaScriptCore/assembler/MacroAssembler.h
-+++ b/Source/JavaScriptCore/assembler/MacroAssembler.h
-@@ -200,6 +200,13 @@ public:
- }
- #endif
-
-+#if CPU(MIPS)
-+ void poke(FPRegisterID src, int index = 0)
-+ {
-+ ASSERT(!(index & 1));
-+ storeDouble(src, addressForPoke(index));
-+ }
-+#endif
-
- // Backwards banches, these are currently all implemented using existing forwards branch mechanisms.
- void branchPtr(RelationalCondition cond, RegisterID op1, TrustedImmPtr imm, Label target)
-diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
-index 43ad434..4f14960 100644
---- a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
-+++ b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
-@@ -114,6 +114,11 @@ public:
- m_assembler.addu(dest, dest, src);
- }
-
-+ void add32(RegisterID op1, RegisterID op2, RegisterID dest)
-+ {
-+ m_assembler.addu(dest, op1, op2);
-+ }
-+
- void add32(TrustedImm32 imm, RegisterID dest)
- {
- add32(imm, dest, dest);
-@@ -267,6 +272,11 @@ public:
- m_assembler.andInsn(dest, dest, src);
- }
-
-+ void and32(RegisterID op1, RegisterID op2, RegisterID dest)
-+ {
-+ m_assembler.andInsn(dest, op1, op2);
-+ }
-+
- void and32(TrustedImm32 imm, RegisterID dest)
- {
- if (!imm.m_value && !m_fixedWidth)
-@@ -283,9 +293,16 @@ public:
- }
- }
-
-- void lshift32(TrustedImm32 imm, RegisterID dest)
-+ void and32(TrustedImm32 imm, RegisterID src, RegisterID dest)
- {
-- m_assembler.sll(dest, dest, imm.m_value);
-+ if (!imm.m_value && !m_fixedWidth)
-+ move(MIPSRegisters::zero, dest);
-+ else if (imm.m_value > 0 && imm.m_value < 65535 && !m_fixedWidth)
-+ m_assembler.andi(dest, src, imm.m_value);
-+ else {
-+ move(imm, immTempRegister);
-+ m_assembler.andInsn(dest, src, immTempRegister);
-+ }
- }
-
- void lshift32(RegisterID shiftAmount, RegisterID dest)
-@@ -293,11 +310,33 @@ public:
- m_assembler.sllv(dest, dest, shiftAmount);
- }
-
-+ void lshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
-+ {
-+ m_assembler.sllv(dest, src, shiftAmount);
-+ }
-+
-+ void lshift32(TrustedImm32 imm, RegisterID dest)
-+ {
-+ move(imm, immTempRegister);
-+ m_assembler.sllv(dest, dest, immTempRegister);
-+ }
-+
-+ void lshift32(RegisterID src, TrustedImm32 imm, RegisterID dest)
-+ {
-+ move(imm, immTempRegister);
-+ m_assembler.sllv(dest, src, immTempRegister);
-+ }
-+
- void mul32(RegisterID src, RegisterID dest)
- {
- m_assembler.mul(dest, dest, src);
- }
-
-+ void mul32(RegisterID op1, RegisterID op2, RegisterID dest)
-+ {
-+ m_assembler.mul(dest, op1, op2);
-+ }
-+
- void mul32(TrustedImm32 imm, RegisterID src, RegisterID dest)
- {
- if (!imm.m_value && !m_fixedWidth)
-@@ -348,6 +387,24 @@ public:
- m_assembler.orInsn(dest, dest, dataTempRegister);
- }
-
-+ void or32(TrustedImm32 imm, RegisterID src, RegisterID dest)
-+ {
-+ if (!imm.m_value && !m_fixedWidth)
-+ return;
-+
-+ if (imm.m_value > 0 && imm.m_value < 65535 && !m_fixedWidth) {
-+ m_assembler.ori(dest, src, imm.m_value);
-+ return;
-+ }
-+
-+ /*
-+ li dataTemp, imm
-+ or dest, src, dataTemp
-+ */
-+ move(imm, dataTempRegister);
-+ m_assembler.orInsn(dest, src, dataTempRegister);
-+ }
-+
- void or32(RegisterID src, AbsoluteAddress dest)
- {
- load32(dest.m_ptr, dataTempRegister);
-@@ -360,6 +417,11 @@ public:
- m_assembler.srav(dest, dest, shiftAmount);
- }
-
-+ void rshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
-+ {
-+ m_assembler.srav(dest, src, shiftAmount);
-+ }
-+
- void rshift32(TrustedImm32 imm, RegisterID dest)
- {
- m_assembler.sra(dest, dest, imm.m_value);
-@@ -375,16 +437,31 @@ public:
- m_assembler.srlv(dest, dest, shiftAmount);
- }
-
-+ void urshift32(RegisterID src, RegisterID shiftAmount, RegisterID dest)
-+ {
-+ m_assembler.srlv(dest, src, shiftAmount);
-+ }
-+
- void urshift32(TrustedImm32 imm, RegisterID dest)
- {
- m_assembler.srl(dest, dest, imm.m_value);
- }
-
-+ void urshift32(RegisterID src, TrustedImm32 imm, RegisterID dest)
-+ {
-+ m_assembler.srl(dest, src, imm.m_value);
-+ }
-+
- void sub32(RegisterID src, RegisterID dest)
- {
- m_assembler.subu(dest, dest, src);
- }
-
-+ void sub32(RegisterID op1, RegisterID op2, RegisterID dest)
-+ {
-+ m_assembler.subu(dest, op1, op2);
-+ }
-+
- void sub32(TrustedImm32 imm, RegisterID dest)
- {
- if (imm.m_value >= -32767 && imm.m_value <= 32768
-@@ -495,6 +572,11 @@ public:
- m_assembler.xorInsn(dest, dest, src);
- }
-
-+ void xor32(RegisterID op1, RegisterID op2, RegisterID dest)
-+ {
-+ m_assembler.xorInsn(dest, op1, op2);
-+ }
-+
- void xor32(TrustedImm32 imm, RegisterID dest)
- {
- if (imm.m_value == -1) {
-@@ -510,6 +592,21 @@ public:
- m_assembler.xorInsn(dest, dest, immTempRegister);
- }
-
-+ void xor32(TrustedImm32 imm, RegisterID src, RegisterID dest)
-+ {
-+ if (imm.m_value == -1) {
-+ m_assembler.nor(dest, src, MIPSRegisters::zero);
-+ return;
-+ }
-+
-+ /*
-+ li immTemp, imm
-+ xor dest, dest, immTemp
-+ */
-+ move(imm, immTempRegister);
-+ m_assembler.xorInsn(dest, src, immTempRegister);
-+ }
-+
- void sqrtDouble(FPRegisterID src, FPRegisterID dst)
- {
- m_assembler.sqrtd(dst, src);
-@@ -989,6 +1086,44 @@ public:
- }
- }
-
-+ void store32(TrustedImm32 imm, BaseIndex address)
-+ {
-+ if (address.offset >= -32768 && address.offset <= 32767 && !m_fixedWidth) {
-+ /*
-+ sll addrTemp, address.index, address.scale
-+ addu addrTemp, addrTemp, address.base
-+ sw src, address.offset(addrTemp)
-+ */
-+ m_assembler.sll(addrTempRegister, address.index, address.scale);
-+ m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
-+ if (!imm.m_value)
-+ m_assembler.sw(MIPSRegisters::zero, addrTempRegister, address.offset);
-+ else {
-+ move(imm, immTempRegister);
-+ m_assembler.sw(immTempRegister, addrTempRegister, address.offset);
-+ }
-+ } else {
-+ /*
-+ sll addrTemp, address.index, address.scale
-+ addu addrTemp, addrTemp, address.base
-+ lui immTemp, (address.offset + 0x8000) >> 16
-+ addu addrTemp, addrTemp, immTemp
-+ sw src, (address.offset & 0xffff)(at)
-+ */
-+ m_assembler.sll(addrTempRegister, address.index, address.scale);
-+ m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
-+ m_assembler.lui(immTempRegister, (address.offset + 0x8000) >> 16);
-+ m_assembler.addu(addrTempRegister, addrTempRegister, immTempRegister);
-+ if (!imm.m_value && !m_fixedWidth)
-+ m_assembler.sw(MIPSRegisters::zero, addrTempRegister, address.offset);
-+ else {
-+ move(imm, immTempRegister);
-+ m_assembler.sw(immTempRegister, addrTempRegister, address.offset);
-+ }
-+ }
-+ }
-+
-+
- void store32(RegisterID src, const void* address)
- {
- /*
-@@ -1336,6 +1471,15 @@ public:
- m_fixedWidth = false;
- }
-
-+ void jump(AbsoluteAddress address)
-+ {
-+ m_fixedWidth = true;
-+ load32(address.m_ptr, MIPSRegisters::t9);
-+ m_assembler.jr(MIPSRegisters::t9);
-+ m_assembler.nop();
-+ m_fixedWidth = false;
-+ }
-+
- void moveDoubleToInts(FPRegisterID src, RegisterID dest1, RegisterID dest2)
- {
- m_assembler.vmov(dest1, dest2, src);
-@@ -1404,6 +1548,53 @@ public:
- return Jump();
- }
-
-+ Jump branchAdd32(ResultCondition cond, RegisterID op1, RegisterID op2, RegisterID dest)
-+ {
-+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-+ if (cond == Overflow) {
-+ /*
-+ move dataTemp, op1
-+ xor cmpTemp, dataTemp, op2
-+ bltz cmpTemp, No_overflow # diff sign bit -> no overflow
-+ addu dest, dataTemp, op2
-+ xor cmpTemp, dest, dataTemp
-+ bgez cmpTemp, No_overflow # same sign big -> no overflow
-+ nop
-+ b Overflow
-+ nop
-+ nop
-+ nop
-+ nop
-+ nop
-+ No_overflow:
-+ */
-+ move(op1, dataTempRegister);
-+ m_assembler.xorInsn(cmpTempRegister, dataTempRegister, op2);
-+ m_assembler.bltz(cmpTempRegister, 10);
-+ m_assembler.addu(dest, dataTempRegister, op2);
-+ m_assembler.xorInsn(cmpTempRegister, dest, dataTempRegister);
-+ m_assembler.bgez(cmpTempRegister, 7);
-+ m_assembler.nop();
-+ return jump();
-+ }
-+ if (cond == Signed) {
-+ add32(op1, op2, dest);
-+ // Check if dest is negative.
-+ m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
-+ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
-+ }
-+ if (cond == Zero) {
-+ add32(op1, op2, dest);
-+ return branchEqual(dest, MIPSRegisters::zero);
-+ }
-+ if (cond == NonZero) {
-+ add32(op1, op2, dest);
-+ return branchNotEqual(dest, MIPSRegisters::zero);
-+ }
-+ ASSERT(0);
-+ return Jump();
-+ }
-+
- Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, RegisterID dest)
- {
- move(imm, immTempRegister);
-@@ -1417,6 +1608,111 @@ public:
- return branchAdd32(cond, immTempRegister, dest);
- }
-
-+ Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, AbsoluteAddress dest)
-+ {
-+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-+ if (cond == Overflow) {
-+ /*
-+ move dataTemp, dest
-+ xori cmpTemp, dataTemp, imm
-+ bltz cmpTemp, No_overflow # diff sign bit -> no overflow
-+ addiu dataTemp, dataTemp, imm
-+ move dest, dataTemp
-+ xori cmpTemp, dataTemp, imm
-+ bgez cmpTemp, No_overflow # same sign big -> no overflow
-+ nop
-+ b Overflow
-+ nop
-+ nop
-+ nop
-+ nop
-+ nop
-+ No_overflow:
-+ */
-+ if (imm.m_value >= -32768 && imm.m_value <= 32767 && !m_fixedWidth) {
-+ load32(dest.m_ptr, dataTempRegister);
-+ m_assembler.xori(cmpTempRegister, dataTempRegister, imm.m_value);
-+ m_assembler.bltz(cmpTempRegister, 10);
-+ m_assembler.addiu(dataTempRegister, dataTempRegister, imm.m_value);
-+ store32(dataTempRegister, dest.m_ptr);
-+ m_assembler.xori(cmpTempRegister, dataTempRegister, imm.m_value);
-+ m_assembler.bgez(cmpTempRegister, 7);
-+ m_assembler.nop();
-+ } else {
-+ load32(dest.m_ptr, dataTempRegister);
-+ move(imm, immTempRegister);
-+ m_assembler.xorInsn(cmpTempRegister, dataTempRegister, immTempRegister);
-+ m_assembler.bltz(cmpTempRegister, 10);
-+ m_assembler.addiu(dataTempRegister, dataTempRegister, immTempRegister);
-+ store32(dataTempRegister, dest.m_ptr);
-+ m_assembler.xori(cmpTempRegister, dataTempRegister, immTempRegister);
-+ m_assembler.bgez(cmpTempRegister, 7);
-+ m_assembler.nop();
-+ }
-+ return jump();
-+ }
-+ move(imm, immTempRegister);
-+ load32(dest.m_ptr, dataTempRegister);
-+ add32(immTempRegister, dataTempRegister);
-+ store32(dataTempRegister, dest.m_ptr);
-+ if (cond == Signed) {
-+ // Check if dest is negative.
-+ m_assembler.slt(cmpTempRegister, dataTempRegister, MIPSRegisters::zero);
-+ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
-+ }
-+ if (cond == Zero)
-+ return branchEqual(dataTempRegister, MIPSRegisters::zero);
-+ if (cond == NonZero)
-+ return branchNotEqual(dataTempRegister, MIPSRegisters::zero);
-+ ASSERT(0);
-+ return Jump();
-+ }
-+
-+ Jump branchMul32(ResultCondition cond, RegisterID src1, RegisterID src2, RegisterID dest)
-+ {
-+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-+ if (cond == Overflow) {
-+ /*
-+ mult src, dest
-+ mfhi dataTemp
-+ mflo dest
-+ sra addrTemp, dest, 31
-+ beq dataTemp, addrTemp, No_overflow # all sign bits (bit 63 to bit 31) are the same -> no overflow
-+ nop
-+ b Overflow
-+ nop
-+ nop
-+ nop
-+ nop
-+ nop
-+ No_overflow:
-+ */
-+ m_assembler.mult(src1, src2);
-+ m_assembler.mfhi(dataTempRegister);
-+ m_assembler.mflo(dest);
-+ m_assembler.sra(addrTempRegister, dest, 31);
-+ m_assembler.beq(dataTempRegister, addrTempRegister, 7);
-+ m_assembler.nop();
-+ return jump();
-+ }
-+ if (cond == Signed) {
-+ mul32(src1, src2, dest);
-+ // Check if dest is negative.
-+ m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
-+ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
-+ }
-+ if (cond == Zero) {
-+ mul32(src1, src2, dest);
-+ return branchEqual(dest, MIPSRegisters::zero);
-+ }
-+ if (cond == NonZero) {
-+ mul32(src1, src2, dest);
-+ return branchNotEqual(dest, MIPSRegisters::zero);
-+ }
-+ ASSERT(0);
-+ return Jump();
-+ }
-+
- Jump branchMul32(ResultCondition cond, RegisterID src, RegisterID dest)
- {
- ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-@@ -1465,8 +1761,7 @@ public:
- Jump branchMul32(ResultCondition cond, TrustedImm32 imm, RegisterID src, RegisterID dest)
- {
- move(imm, immTempRegister);
-- move(src, dest);
-- return branchMul32(cond, immTempRegister, dest);
-+ return branchMul32(cond, immTempRegister, src, dest);
- }
-
- Jump branchSub32(ResultCondition cond, RegisterID src, RegisterID dest)
-@@ -1525,8 +1820,60 @@ public:
- Jump branchSub32(ResultCondition cond, RegisterID src, TrustedImm32 imm, RegisterID dest)
- {
- move(imm, immTempRegister);
-- move(src, dest);
-- return branchSub32(cond, immTempRegister, dest);
-+ return branchSub32(cond, src, immTempRegister, dest);
-+ }
-+
-+ Jump branchSub32(ResultCondition cond, RegisterID op1, RegisterID op2, RegisterID dest)
-+ {
-+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
-+ if (cond == Overflow) {
-+ /*
-+ move dataTemp, op1
-+ xor cmpTemp, dataTemp, op2
-+ bgez cmpTemp, No_overflow # same sign bit -> no overflow
-+ subu dest, dataTemp, op2
-+ xor cmpTemp, dest, dataTemp
-+ bgez cmpTemp, No_overflow # same sign bit -> no overflow
-+ nop
-+ b Overflow
-+ nop
-+ nop
-+ nop
-+ nop
-+ nop
-+ No_overflow:
-+ */
-+ move(op1, dataTempRegister);
-+ m_assembler.xorInsn(cmpTempRegister, dataTempRegister, op2);
-+ m_assembler.bgez(cmpTempRegister, 10);
-+ m_assembler.subu(dest, dataTempRegister, op2);
-+ m_assembler.xorInsn(cmpTempRegister, dest, dataTempRegister);
-+ m_assembler.bgez(cmpTempRegister, 7);
-+ m_assembler.nop();
-+ return jump();
-+ }
-+ if (cond == Signed) {
-+ sub32(op1, op2, dest);
-+ // Check if dest is negative.
-+ m_assembler.slt(cmpTempRegister, dest, MIPSRegisters::zero);
-+ return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
-+ }
-+ if (cond == Zero) {
-+ sub32(op1, op2, dest);
-+ return branchEqual(dest, MIPSRegisters::zero);
-+ }
-+ if (cond == NonZero) {
-+ sub32(op1, op2, dest);
-+ return branchNotEqual(dest, MIPSRegisters::zero);
-+ }
-+ ASSERT(0);
-+ return Jump();
-+ }
-+
-+ Jump branchNeg32(ResultCondition cond, RegisterID srcDest)
-+ {
-+ m_assembler.li(dataTempRegister, -1);
-+ return branchMul32(cond, dataTempRegister, srcDest);
- }
-
- Jump branchOr32(ResultCondition cond, RegisterID src, RegisterID dest)
-@@ -1578,7 +1925,8 @@ public:
-
- Call call(RegisterID target)
- {
-- m_assembler.jalr(target);
-+ move(target, MIPSRegisters::t9);
-+ m_assembler.jalr(MIPSRegisters::t9);
- m_assembler.nop();
- return Call(m_assembler.label(), Call::None);
- }
-@@ -1822,7 +2170,7 @@ public:
- lui immTemp, (address.offset + 0x8000) >> 16
- addu addrTemp, addrTemp, immTemp
- lwc1 dest, (address.offset & 0xffff)(at)
-- lwc1 dest+4, (address.offset & 0xffff + 4)(at)
-+ lwc1 dest+1, (address.offset & 0xffff + 4)(at)
- */
- m_assembler.sll(addrTempRegister, address.index, address.scale);
- m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
-@@ -2009,6 +2357,19 @@ public:
- #endif
- }
-
-+ void moveDouble(FPRegisterID src, FPRegisterID dest)
-+ {
-+ if (src != dest || m_fixedWidth)
-+ m_assembler.movd(dest, src);
-+ }
-+
-+ void swapDouble(FPRegisterID fr1, FPRegisterID fr2)
-+ {
-+ moveDouble(fr1, fpTempRegister);
-+ moveDouble(fr2, fr1);
-+ moveDouble(fpTempRegister, fr2);
-+ }
-+
- void addDouble(FPRegisterID src, FPRegisterID dest)
- {
- m_assembler.addd(dest, dest, src);
-@@ -2036,6 +2397,11 @@ public:
- m_assembler.subd(dest, dest, src);
- }
-
-+ void subDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
-+ {
-+ m_assembler.subd(dest, op1, op2);
-+ }
-+
- void subDouble(Address src, FPRegisterID dest)
- {
- loadDouble(src, fpTempRegister);
-@@ -2053,11 +2419,32 @@ public:
- m_assembler.muld(dest, dest, fpTempRegister);
- }
-
-+ void mulDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
-+ {
-+ m_assembler.muld(dest, op1, op2);
-+ }
-+
- void divDouble(FPRegisterID src, FPRegisterID dest)
- {
- m_assembler.divd(dest, dest, src);
- }
-
-+ void divDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest)
-+ {
-+ m_assembler.divd(dest, op1, op2);
-+ }
-+
-+ void divDouble(Address src, FPRegisterID dest)
-+ {
-+ loadDouble(src, fpTempRegister);
-+ m_assembler.divd(dest, dest, fpTempRegister);
-+ }
-+
-+ void negateDouble(FPRegisterID src, FPRegisterID dest)
-+ {
-+ m_assembler.negd(dest, src);
-+ }
-+
- void convertInt32ToDouble(RegisterID src, FPRegisterID dest)
- {
- m_assembler.mtc1(src, fpTempRegister);
-@@ -2117,6 +2504,8 @@ public:
-
- Jump branchEqual(RegisterID rs, RegisterID rt)
- {
-+ m_assembler.nop();
-+ m_assembler.nop();
- m_assembler.appendJump();
- m_assembler.beq(rs, rt, 0);
- m_assembler.nop();
-@@ -2126,6 +2515,8 @@ public:
-
- Jump branchNotEqual(RegisterID rs, RegisterID rt)
- {
-+ m_assembler.nop();
-+ m_assembler.nop();
- m_assembler.appendJump();
- m_assembler.bne(rs, rt, 0);
- m_assembler.nop();
-@@ -2192,11 +2583,33 @@ public:
- // If the result is not representable as a 32 bit value, branch.
- // May also branch for some values that are representable in 32 bits
- // (specifically, in this case, INT_MAX 0x7fffffff).
-- Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest)
-+ enum BranchTruncateType { BranchIfTruncateFailed, BranchIfTruncateSuccessful };
-+ Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest, BranchTruncateType branchType = BranchIfTruncateFailed)
-+ {
-+ m_assembler.truncwd(fpTempRegister, src);
-+ m_assembler.mfc1(dest, fpTempRegister);
-+ return branch32(branchType == BranchIfTruncateFailed ? Equal : NotEqual, dest, TrustedImm32(0x7fffffff));
-+ }
-+
-+ Jump branchTruncateDoubleToUint32(FPRegisterID src, RegisterID dest, BranchTruncateType branchType = BranchIfTruncateFailed)
-+ {
-+ m_assembler.truncwd(fpTempRegister, src);
-+ m_assembler.mfc1(dest, fpTempRegister);
-+ return branch32(branchType == BranchIfTruncateFailed ? Equal : NotEqual, dest, TrustedImm32(0));
-+ }
-+
-+ // Result is undefined if the value is outside of the integer range.
-+ void truncateDoubleToInt32(FPRegisterID src, RegisterID dest)
-+ {
-+ m_assembler.truncwd(fpTempRegister, src);
-+ m_assembler.mfc1(dest, fpTempRegister);
-+ }
-+
-+ // Result is undefined if src > 2^31
-+ void truncateDoubleToUint32(FPRegisterID src, RegisterID dest)
- {
- m_assembler.truncwd(fpTempRegister, src);
- m_assembler.mfc1(dest, fpTempRegister);
-- return branch32(Equal, dest, TrustedImm32(0x7fffffff));
- }
-
- // Convert 'src' to an integer, and places the resulting 'dest'.
-@@ -2218,28 +2631,43 @@ public:
-
- Jump branchDoubleNonZero(FPRegisterID reg, FPRegisterID scratch)
- {
--#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
-- m_assembler.mtc1(MIPSRegisters::zero, scratch);
-- m_assembler.mthc1(MIPSRegisters::zero, scratch);
--#else
-- m_assembler.mtc1(MIPSRegisters::zero, scratch);
-- m_assembler.mtc1(MIPSRegisters::zero, FPRegisterID(scratch + 1));
--#endif
-+ m_assembler.vmov(scratch, MIPSRegisters::zero, MIPSRegisters::zero);
- return branchDouble(DoubleNotEqual, reg, scratch);
- }
-
- Jump branchDoubleZeroOrNaN(FPRegisterID reg, FPRegisterID scratch)
- {
--#if WTF_MIPS_ISA_REV(2) && WTF_MIPS_FP64
-- m_assembler.mtc1(MIPSRegisters::zero, scratch);
-- m_assembler.mthc1(MIPSRegisters::zero, scratch);
--#else
-- m_assembler.mtc1(MIPSRegisters::zero, scratch);
-- m_assembler.mtc1(MIPSRegisters::zero, FPRegisterID(scratch + 1));
--#endif
-+ m_assembler.vmov(scratch, MIPSRegisters::zero, MIPSRegisters::zero);
- return branchDouble(DoubleEqualOrUnordered, reg, scratch);
- }
-
-+ // Invert a relational condition, e.g. == becomes !=, < becomes >=, etc.
-+ static RelationalCondition invert(RelationalCondition cond)
-+ {
-+ RelationalCondition r;
-+ if (cond == Equal)
-+ r = NotEqual;
-+ else if (cond == NotEqual)
-+ r = Equal;
-+ else if (cond == Above)
-+ r = BelowOrEqual;
-+ else if (cond == AboveOrEqual)
-+ r = Below;
-+ else if (cond == Below)
-+ r = AboveOrEqual;
-+ else if (cond == BelowOrEqual)
-+ r = Above;
-+ else if (cond == GreaterThan)
-+ r = LessThanOrEqual;
-+ else if (cond == GreaterThanOrEqual)
-+ r = LessThan;
-+ else if (cond == LessThan)
-+ r = GreaterThanOrEqual;
-+ else if (cond == LessThanOrEqual)
-+ r = GreaterThan;
-+ return r;
-+ }
-+
- void nop()
- {
- m_assembler.nop();
-@@ -2252,12 +2680,12 @@ public:
-
- static void replaceWithJump(CodeLocationLabel instructionStart, CodeLocationLabel destination)
- {
-- RELEASE_ASSERT_NOT_REACHED();
-+ MIPSAssembler::replaceWithJump(instructionStart.dataLocation(), destination.dataLocation());
- }
-
- static ptrdiff_t maxJumpReplacementSize()
- {
-- RELEASE_ASSERT_NOT_REACHED();
-+ MIPSAssembler::maxJumpReplacementSize();
- return 0;
- }
-
-diff --git a/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h b/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
-index fa0f5e0..573d8dc 100644
---- a/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
-+++ b/Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h
-@@ -93,6 +93,23 @@ public:
- }
- #endif
-
-+#if CPU(MIPS)
-+ ALWAYS_INLINE void preserveReturnAddressAfterCall(RegisterID reg)
-+ {
-+ move(returnAddressRegister, reg);
-+ }
-+
-+ ALWAYS_INLINE void restoreReturnAddressBeforeReturn(RegisterID reg)
-+ {
-+ move(reg, returnAddressRegister);
-+ }
-+
-+ ALWAYS_INLINE void restoreReturnAddressBeforeReturn(Address address)
-+ {
-+ loadPtr(address, returnAddressRegister);
-+ }
-+#endif
-+
- void emitGetFromCallFrameHeaderPtr(JSStack::CallFrameHeaderEntry entry, GPRReg to)
- {
- loadPtr(Address(GPRInfo::callFrameRegister, entry * sizeof(Register)), to);
-@@ -193,7 +210,7 @@ public:
- move(TrustedImmPtr(scratchBuffer->activeLengthPtr()), GPRInfo::regT0);
- storePtr(TrustedImmPtr(scratchSize), GPRInfo::regT0);
-
--#if CPU(X86_64) || CPU(ARM)
-+#if CPU(X86_64) || CPU(ARM) || CPU(MIPS)
- move(TrustedImmPtr(buffer), GPRInfo::argumentGPR2);
- move(TrustedImmPtr(argument), GPRInfo::argumentGPR1);
- move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
-diff --git a/Source/JavaScriptCore/dfg/DFGCCallHelpers.h b/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
-index 8adde05..3d99f6f 100644
---- a/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
-+++ b/Source/JavaScriptCore/dfg/DFGCCallHelpers.h
-@@ -576,6 +576,39 @@ public:
- poke(GPRInfo::nonArgGPR0);
- }
- #endif // CPU(ARM_HARDFP)
-+#elif CPU(MIPS)
-+ ALWAYS_INLINE void setupArguments(FPRReg arg1)
-+ {
-+ moveDouble(arg1, FPRInfo::argumentFPR0);
-+ }
-+
-+ ALWAYS_INLINE void setupArguments(FPRReg arg1, FPRReg arg2)
-+ {
-+ if (arg2 != FPRInfo::argumentFPR0) {
-+ moveDouble(arg1, FPRInfo::argumentFPR0);
-+ moveDouble(arg2, FPRInfo::argumentFPR1);
-+ } else if (arg1 != FPRInfo::argumentFPR1) {
-+ moveDouble(arg2, FPRInfo::argumentFPR1);
-+ moveDouble(arg1, FPRInfo::argumentFPR0);
-+ } else {
-+ // Swap arg1, arg2.
-+ swapDouble(FPRInfo::argumentFPR0, FPRInfo::argumentFPR1);
-+ }
-+ }
-+
-+ ALWAYS_INLINE void setupArgumentsWithExecState(FPRReg arg1, GPRReg arg2)
-+ {
-+ assembler().vmov(GPRInfo::argumentGPR2, GPRInfo::argumentGPR3, arg1);
-+ move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
-+ poke(arg2, 4);
-+ }
-+
-+ ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, FPRReg arg3)
-+ {
-+ setupStubArguments(arg1, arg2);
-+ move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
-+ poke(arg3, 4);
-+ }
- #else
- #error "DFG JIT not supported on this platform."
- #endif
-@@ -803,119 +836,126 @@ public:
- // These methods are suitable for any calling convention that provides for
- // exactly 4 argument registers, e.g. ARMv7.
- #if NUMBER_OF_ARGUMENT_REGISTERS == 4
-+
-+#if CPU(MIPS)
-+#define POKE_ARGUMENT_OFFSET 4
-+#else
-+#define POKE_ARGUMENT_OFFSET 0
-+#endif
-+
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, TrustedImm32 arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, TrustedImmPtr arg2, TrustedImm32 arg3, GPRReg arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, TrustedImmPtr arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
- {
-- poke(arg5, 1);
-- poke(arg4);
-+ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, TrustedImm32 arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImm32 arg2, GPRReg arg3, GPRReg arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, TrustedImmPtr arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, GPRReg arg5)
- {
-- poke(arg5, 1);
-- poke(arg4);
-+ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, TrustedImmPtr arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, TrustedImm32 arg3, TrustedImmPtr arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4)
- {
-- poke(arg4);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
- {
-- poke(arg5, 1);
-- poke(arg4);
-+ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, GPRReg arg4, TrustedImm32 arg5)
- {
-- poke(arg5, 1);
-- poke(arg4);
-+ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, TrustedImmPtr arg5)
- {
-- poke(arg5, 1);
-- poke(arg4);
-+ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, TrustedImm32 arg4, TrustedImm32 arg5)
- {
-- poke(arg5, 1);
-- poke(arg4);
-+ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImm32 arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5)
- {
-- poke(arg5, 1);
-- poke(arg4);
-+ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
- ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4, GPRReg arg5)
- {
-- poke(arg5, 1);
-- poke(arg4);
-+ poke(arg5, POKE_ARGUMENT_OFFSET + 1);
-+ poke(arg4, POKE_ARGUMENT_OFFSET);
- setupArgumentsWithExecState(arg1, arg2, arg3);
- }
-
-diff --git a/Source/JavaScriptCore/dfg/DFGFPRInfo.h b/Source/JavaScriptCore/dfg/DFGFPRInfo.h
-index 17aaa7d..e18ec06 100644
---- a/Source/JavaScriptCore/dfg/DFGFPRInfo.h
-+++ b/Source/JavaScriptCore/dfg/DFGFPRInfo.h
-@@ -164,6 +164,74 @@ public:
-
- #endif
-
-+#if CPU(MIPS)
-+
-+class FPRInfo {
-+public:
-+ typedef FPRReg RegisterType;
-+ static const unsigned numberOfRegisters = 6;
-+
-+ // Temporary registers.
-+ static const FPRReg fpRegT0 = MIPSRegisters::f0;
-+ static const FPRReg fpRegT1 = MIPSRegisters::f4;
-+ static const FPRReg fpRegT2 = MIPSRegisters::f6;
-+ static const FPRReg fpRegT3 = MIPSRegisters::f8;
-+ static const FPRReg fpRegT4 = MIPSRegisters::f10;
-+ static const FPRReg fpRegT5 = MIPSRegisters::f18;
-+
-+ static const FPRReg returnValueFPR = MIPSRegisters::f0;
-+
-+ static const FPRReg argumentFPR0 = MIPSRegisters::f12;
-+ static const FPRReg argumentFPR1 = MIPSRegisters::f14;
-+
-+ static FPRReg toRegister(unsigned index)
-+ {
-+ static const FPRReg registerForIndex[numberOfRegisters] = {
-+ fpRegT0, fpRegT1, fpRegT2, fpRegT3, fpRegT4, fpRegT5 };
-+
-+ ASSERT(index < numberOfRegisters);
-+ return registerForIndex[index];
-+ }
-+
-+ static unsigned toIndex(FPRReg reg)
-+ {
-+ ASSERT(reg != InvalidFPRReg);
-+ ASSERT(reg < 20);
-+ static const unsigned indexForRegister[20] = {
-+ 0, InvalidIndex, InvalidIndex, InvalidIndex,
-+ 1, InvalidIndex, 2, InvalidIndex,
-+ 3, InvalidIndex, 4, InvalidIndex,
-+ InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex,
-+ InvalidIndex, InvalidIndex, 5, InvalidIndex,
-+ };
-+ unsigned result = indexForRegister[reg];
-+ ASSERT(result != InvalidIndex);
-+ return result;
-+ }
-+
-+ static const char* debugName(FPRReg reg)
-+ {
-+ ASSERT(reg != InvalidFPRReg);
-+ ASSERT(reg < 32);
-+ static const char* nameForRegister[32] = {
-+ "f0", "f1", "f2", "f3",
-+ "f4", "f5", "f6", "f7",
-+ "f8", "f9", "f10", "f11",
-+ "f12", "f13", "f14", "f15"
-+ "f16", "f17", "f18", "f19"
-+ "f20", "f21", "f22", "f23"
-+ "f24", "f25", "f26", "f27"
-+ "f28", "f29", "f30", "f31"
-+ };
-+ return nameForRegister[reg];
-+ }
-+private:
-+
-+ static const unsigned InvalidIndex = 0xffffffff;
-+};
-+
-+#endif
-+
- typedef RegisterBank<FPRInfo>::iterator fpr_iterator;
-
- } } // namespace JSC::DFG
-diff --git a/Source/JavaScriptCore/dfg/DFGGPRInfo.h b/Source/JavaScriptCore/dfg/DFGGPRInfo.h
-index 3d07556..aa634cd 100644
---- a/Source/JavaScriptCore/dfg/DFGGPRInfo.h
-+++ b/Source/JavaScriptCore/dfg/DFGGPRInfo.h
-@@ -461,6 +461,73 @@ private:
-
- #endif
-
-+#if CPU(MIPS)
-+#define NUMBER_OF_ARGUMENT_REGISTERS 4
-+
-+class GPRInfo {
-+public:
-+ typedef GPRReg RegisterType;
-+ static const unsigned numberOfRegisters = 6;
-+
-+ // Temporary registers.
-+ static const GPRReg regT0 = MIPSRegisters::v0;
-+ static const GPRReg regT1 = MIPSRegisters::v1;
-+ static const GPRReg regT2 = MIPSRegisters::t4;
-+ static const GPRReg regT3 = MIPSRegisters::t5;
-+ static const GPRReg regT4 = MIPSRegisters::t6;
-+ static const GPRReg regT5 = MIPSRegisters::t7;
-+ // These registers match the baseline JIT.
-+ static const GPRReg cachedResultRegister = regT0;
-+ static const GPRReg cachedResultRegister2 = regT1;
-+ static const GPRReg callFrameRegister = MIPSRegisters::s0;
-+ // These constants provide the names for the general purpose argument & return value registers.
-+ static const GPRReg argumentGPR0 = MIPSRegisters::a0;
-+ static const GPRReg argumentGPR1 = MIPSRegisters::a1;
-+ static const GPRReg argumentGPR2 = MIPSRegisters::a2;
-+ static const GPRReg argumentGPR3 = MIPSRegisters::a3;
-+ static const GPRReg nonArgGPR0 = regT2;
-+ static const GPRReg nonArgGPR1 = regT3;
-+ static const GPRReg nonArgGPR2 = regT4;
-+ static const GPRReg returnValueGPR = regT0;
-+ static const GPRReg returnValueGPR2 = regT1;
-+ static const GPRReg nonPreservedNonReturnGPR = regT5;
-+
-+ static GPRReg toRegister(unsigned index)
-+ {
-+ ASSERT(index < numberOfRegisters);
-+ static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5 };
-+ return registerForIndex[index];
-+ }
-+
-+ static unsigned toIndex(GPRReg reg)
-+ {
-+ ASSERT(reg != InvalidGPRReg);
-+ ASSERT(reg < 16);
-+ static const unsigned indexForRegister[16] = { InvalidIndex, InvalidIndex, 0, 1, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, 2, 3, 4, 5 };
-+ unsigned result = indexForRegister[reg];
-+ ASSERT(result != InvalidIndex);
-+ return result;
-+ }
-+
-+ static const char* debugName(GPRReg reg)
-+ {
-+ ASSERT(reg != InvalidGPRReg);
-+ ASSERT(reg < 16);
-+ static const char* nameForRegister[16] = {
-+ "zero", "at", "v0", "v1",
-+ "a0", "a1", "a2", "a3",
-+ "t0", "t1", "t2", "t3",
-+ "t4", "t5", "t6", "t7"
-+ };
-+ return nameForRegister[reg];
-+ }
-+private:
-+
-+ static const unsigned InvalidIndex = 0xffffffff;
-+};
-+
-+#endif
-+
- typedef RegisterBank<GPRInfo>::iterator gpr_iterator;
-
- } } // namespace JSC::DFG
-diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
-index ea33f38..247274b 100644
---- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
-+++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h
-@@ -1241,7 +1241,7 @@ public:
-
- // EncodedJSValue in JSVALUE32_64 is a 64-bit integer. When being compiled in ARM EABI, it must be aligned even-numbered register (r0, r2 or [sp]).
- // To avoid assemblies from using wrong registers, let's occupy r1 or r3 with a dummy argument when necessary.
--#if COMPILER_SUPPORTS(EABI) && CPU(ARM)
-+#if (COMPILER_SUPPORTS(EABI) && CPU(ARM)) || CPU(MIPS)
- #define EABI_32BIT_DUMMY_ARG TrustedImm32(0),
- #else
- #define EABI_32BIT_DUMMY_ARG
-@@ -1691,7 +1691,7 @@ public:
- }
- #endif
-
--#if !defined(NDEBUG) && !CPU(ARM)
-+#if !defined(NDEBUG) && !CPU(ARM) && !CPU(MIPS)
- void prepareForExternalCall()
- {
- // We're about to call out to a "native" helper function. The helper
-diff --git a/Source/JavaScriptCore/jit/JSInterfaceJIT.h b/Source/JavaScriptCore/jit/JSInterfaceJIT.h
-index 7fdeaf0..48ad6b2 100644
---- a/Source/JavaScriptCore/jit/JSInterfaceJIT.h
-+++ b/Source/JavaScriptCore/jit/JSInterfaceJIT.h
-@@ -125,6 +125,10 @@ namespace JSC {
- static const RegisterID cachedResultRegister = MIPSRegisters::v0;
- static const RegisterID firstArgumentRegister = MIPSRegisters::a0;
-
-+#if ENABLE(VALUE_PROFILER)
-+ static const RegisterID bucketCounterRegister = MIPSRegisters::s3;
-+#endif
-+
- // regT0 must be v0 for returning a 32-bit value.
- static const RegisterID regT0 = MIPSRegisters::v0;
-
-diff --git a/Source/JavaScriptCore/runtime/JSGlobalData.h b/Source/JavaScriptCore/runtime/JSGlobalData.h
-index 5d47ab9..c02f336 100644
---- a/Source/JavaScriptCore/runtime/JSGlobalData.h
-+++ b/Source/JavaScriptCore/runtime/JSGlobalData.h
-@@ -141,14 +141,18 @@ namespace JSC {
- return result;
- }
-
-- static size_t allocationSize(size_t bufferSize) { return sizeof(size_t) + bufferSize; }
-+ static size_t allocationSize(size_t bufferSize) { return sizeof(ScratchBuffer) + bufferSize; }
- void setActiveLength(size_t activeLength) { m_activeLength = activeLength; }
- size_t activeLength() const { return m_activeLength; };
- size_t* activeLengthPtr() { return &m_activeLength; };
- void* dataBuffer() { return m_buffer; }
-
- size_t m_activeLength;
-+#if CPU(MIPS) && (defined WTF_MIPS_ARCH_REV && WTF_MIPS_ARCH_REV == 2)
-+ void* m_buffer[0] __attribute__((aligned(8)));
-+#else
- void* m_buffer[0];
-+#endif
- };
- #if COMPILER(MSVC)
- #pragma warning(pop)
-diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
-index 1698247..2d90359 100644
---- a/Source/WTF/wtf/Platform.h
-+++ b/Source/WTF/wtf/Platform.h
-@@ -818,6 +818,10 @@
- #if CPU(ARM_TRADITIONAL)
- #define ENABLE_DFG_JIT 1
- #endif
-+/* Enable the DFG JIT on MIPS. */
-+#if CPU(MIPS)
-+#define ENABLE_DFG_JIT 1
-+#endif
- #endif
-
- /* If the jit is not available, enable the LLInt C Loop: */
---
-1.8.3.2
-
+++ /dev/null
-ANGLE doesn't build with bison 3.0
-
-Author: allan.jensen@digia.com
-​https://bugs.webkit.org/show_bug.cgi?id=119798
-Reviewed by Antti Koivisto.
-Make glslang.y compatible with bison 3.0, by using %lex-param
-to set YYLEX_PARAM and getting rid of useless YYID macro.
-
-From upstream: http://trac.webkit.org/changeset/154109
-[Arnout: adapted to our older webkit version]
-Signed-off-by: Arnout Vandecaeppelle (Essensium/Mind) <arnout@mind.be>
----
-Index: trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y
-===================================================================
---- trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y (revision 154108)
-+++ trunk/Source/ThirdParty/ANGLE/src/compiler/glslang.y (revision 154109)
-@@ -48,4 +48,5 @@
- %pure-parser
- %parse-param {TParseContext* context}
-+%lex-param {YYLEX_PARAM}
-
- %union {
--- /dev/null
+LARGEFILE support shouldn't be forced into CFLAGS
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura wipe-2.3.1/configure.in wipe-2.3.1-lfs/configure.in
+--- wipe-2.3.1/configure.in 2009-06-15 22:55:11.000000000 -0300
++++ wipe-2.3.1-lfs/configure.in 2012-03-05 11:25:30.463221948 -0300
+@@ -91,7 +91,7 @@
+ test "$with_efence" = "yes" && temp2CFLAGS="$debugCFLAGS" && LIBS="-lefence"
+
+ DEBUG="$debugCFLAGS $fullCFLAGS"
+-fullCFLAGS="$temp2CFLAGS $fullCFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
++fullCFLAGS="$temp2CFLAGS $fullCFLAGS"
+ CFLAGS="$checkCFLAGS -D__USE_BSD -D_BSD_SOURCE -D__USE_POSIX -D_POSIX_SOURCE -D_POSIX_MAPPED_FILES"
+
+ dnl Checks for libraries.
+++ /dev/null
-LARGEFILE support shouldn't be forced into CFLAGS
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura wipe-2.3.1/configure.in wipe-2.3.1-lfs/configure.in
---- wipe-2.3.1/configure.in 2009-06-15 22:55:11.000000000 -0300
-+++ wipe-2.3.1-lfs/configure.in 2012-03-05 11:25:30.463221948 -0300
-@@ -91,7 +91,7 @@
- test "$with_efence" = "yes" && temp2CFLAGS="$debugCFLAGS" && LIBS="-lefence"
-
- DEBUG="$debugCFLAGS $fullCFLAGS"
--fullCFLAGS="$temp2CFLAGS $fullCFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-+fullCFLAGS="$temp2CFLAGS $fullCFLAGS"
- CFLAGS="$checkCFLAGS -D__USE_BSD -D_BSD_SOURCE -D__USE_POSIX -D_POSIX_SOURCE -D_POSIX_MAPPED_FILES"
-
- dnl Checks for libraries.
--- /dev/null
+Switch all instances of deprecated bzero() to memset() equivalent.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura wireless_tools.30/ifrename.c wireless_tools.30-bzero/ifrename.c
+--- wireless_tools.30/ifrename.c 2007-10-16 20:12:41.000000000 -0300
++++ wireless_tools.30-bzero/ifrename.c 2014-06-11 09:52:59.623741119 -0300
+@@ -541,7 +541,7 @@
+ victimname, autoname);
+
+ /* Prepare request */
+- bzero(&ifr, sizeof(struct ifreq));
++ memset(&ifr, 0, sizeof(struct ifreq));
+ strncpy(ifr.ifr_name, victimname, IFNAMSIZ);
+ strncpy(ifr.ifr_newname, autoname, IFNAMSIZ);
+
+@@ -587,7 +587,7 @@
+ }
+
+ /* Prepare request */
+- bzero(&ifr, sizeof(struct ifreq));
++ memset(&ifr, 0, sizeof(struct ifreq));
+ strncpy(ifr.ifr_name, oldname, IFNAMSIZ);
+ strncpy(ifr.ifr_newname, newname, IFNAMSIZ);
+
+@@ -747,7 +747,7 @@
+ int i;
+
+ /* Get MAC address */
+- bzero(&ifr, sizeof(struct ifreq));
++ memset(&ifr, 0, sizeof(struct ifreq));
+ strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
+ ret = ioctl(skfd, SIOCGIFHWADDR, &ifr);
+ if(ret < 0)
+@@ -1040,8 +1040,8 @@
+ return(0);
+
+ /* Prepare request */
+- bzero(&ifr, sizeof(struct ifreq));
+- bzero(&drvinfo, sizeof(struct ethtool_drvinfo));
++ memset(&ifr, 0, sizeof(struct ifreq));
++ memset(&drvinfo, 0, sizeof(struct ethtool_drvinfo));
+ strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
+ drvinfo.cmd = ETHTOOL_GDRVINFO;
+ ifr.ifr_data = (caddr_t) &drvinfo;
+@@ -1206,8 +1206,8 @@
+ return(0);
+
+ /* Prepare request */
+- bzero(&ifr, sizeof(struct ifreq));
+- bzero(&map, sizeof(struct ifmap));
++ memset(&ifr, 0, sizeof(struct ifreq));
++ memset(&map, 0, sizeof(struct ifmap));
+ strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
+
+ /* Do it */
+@@ -2050,7 +2050,7 @@
+ struct add_extra extrainfo;
+
+ /* Reset the list of filters */
+- bzero(selector_active, sizeof(selector_active));
++ memset(selector_active, 0, sizeof(selector_active));
+
+ /* Check filename */
+ if(!strcmp(filename, "-"))
+diff -Nura wireless_tools.30/iwlib.c wireless_tools.30-bzero/iwlib.c
+--- wireless_tools.30/iwlib.c 2009-11-23 23:28:59.000000000 -0300
++++ wireless_tools.30-bzero/iwlib.c 2014-06-11 09:50:20.611371384 -0300
+@@ -484,7 +484,7 @@
+ union iw_range_raw * range_raw;
+
+ /* Cleanup */
+- bzero(buffer, sizeof(buffer));
++ memset(buffer, 0, sizeof(buffer));
+
+ wrq.u.data.pointer = (caddr_t) buffer;
+ wrq.u.data.length = sizeof(buffer);
+@@ -513,7 +513,7 @@
+ else
+ {
+ /* Zero unknown fields */
+- bzero((char *) range, sizeof(struct iw_range));
++ memset((char *) range, 0, sizeof(struct iw_range));
+
+ /* Initial part unmoved */
+ memcpy((char *) range,
+@@ -3064,7 +3064,7 @@
+ oldwscan->next = wscan;
+
+ /* Reset it */
+- bzero(wscan, sizeof(struct wireless_scan));
++ memset(wscan, 0, sizeof(struct wireless_scan));
+
+ /* Save cell identifier */
+ wscan->has_ap_addr = 1;
+++ /dev/null
-Switch all instances of deprecated bzero() to memset() equivalent.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura wireless_tools.30/ifrename.c wireless_tools.30-bzero/ifrename.c
---- wireless_tools.30/ifrename.c 2007-10-16 20:12:41.000000000 -0300
-+++ wireless_tools.30-bzero/ifrename.c 2014-06-11 09:52:59.623741119 -0300
-@@ -541,7 +541,7 @@
- victimname, autoname);
-
- /* Prepare request */
-- bzero(&ifr, sizeof(struct ifreq));
-+ memset(&ifr, 0, sizeof(struct ifreq));
- strncpy(ifr.ifr_name, victimname, IFNAMSIZ);
- strncpy(ifr.ifr_newname, autoname, IFNAMSIZ);
-
-@@ -587,7 +587,7 @@
- }
-
- /* Prepare request */
-- bzero(&ifr, sizeof(struct ifreq));
-+ memset(&ifr, 0, sizeof(struct ifreq));
- strncpy(ifr.ifr_name, oldname, IFNAMSIZ);
- strncpy(ifr.ifr_newname, newname, IFNAMSIZ);
-
-@@ -747,7 +747,7 @@
- int i;
-
- /* Get MAC address */
-- bzero(&ifr, sizeof(struct ifreq));
-+ memset(&ifr, 0, sizeof(struct ifreq));
- strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- ret = ioctl(skfd, SIOCGIFHWADDR, &ifr);
- if(ret < 0)
-@@ -1040,8 +1040,8 @@
- return(0);
-
- /* Prepare request */
-- bzero(&ifr, sizeof(struct ifreq));
-- bzero(&drvinfo, sizeof(struct ethtool_drvinfo));
-+ memset(&ifr, 0, sizeof(struct ifreq));
-+ memset(&drvinfo, 0, sizeof(struct ethtool_drvinfo));
- strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- drvinfo.cmd = ETHTOOL_GDRVINFO;
- ifr.ifr_data = (caddr_t) &drvinfo;
-@@ -1206,8 +1206,8 @@
- return(0);
-
- /* Prepare request */
-- bzero(&ifr, sizeof(struct ifreq));
-- bzero(&map, sizeof(struct ifmap));
-+ memset(&ifr, 0, sizeof(struct ifreq));
-+ memset(&map, 0, sizeof(struct ifmap));
- strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-
- /* Do it */
-@@ -2050,7 +2050,7 @@
- struct add_extra extrainfo;
-
- /* Reset the list of filters */
-- bzero(selector_active, sizeof(selector_active));
-+ memset(selector_active, 0, sizeof(selector_active));
-
- /* Check filename */
- if(!strcmp(filename, "-"))
-diff -Nura wireless_tools.30/iwlib.c wireless_tools.30-bzero/iwlib.c
---- wireless_tools.30/iwlib.c 2009-11-23 23:28:59.000000000 -0300
-+++ wireless_tools.30-bzero/iwlib.c 2014-06-11 09:50:20.611371384 -0300
-@@ -484,7 +484,7 @@
- union iw_range_raw * range_raw;
-
- /* Cleanup */
-- bzero(buffer, sizeof(buffer));
-+ memset(buffer, 0, sizeof(buffer));
-
- wrq.u.data.pointer = (caddr_t) buffer;
- wrq.u.data.length = sizeof(buffer);
-@@ -513,7 +513,7 @@
- else
- {
- /* Zero unknown fields */
-- bzero((char *) range, sizeof(struct iw_range));
-+ memset((char *) range, 0, sizeof(struct iw_range));
-
- /* Initial part unmoved */
- memcpy((char *) range,
-@@ -3064,7 +3064,7 @@
- oldwscan->next = wscan;
-
- /* Reset it */
-- bzero(wscan, sizeof(struct wireless_scan));
-+ memset(wscan, 0, sizeof(struct wireless_scan));
-
- /* Save cell identifier */
- wscan->has_ap_addr = 1;
--- /dev/null
+AC_WIRESHARK_GCC_CFLAGS_CHECK checks for valid CFLAGS against CC and pushes
+them into CFLAGS and CFLAGS_FOR_BUILD.
+This is wrong since CC_FOR_BUILD might be wildly different and older than CC
+leading to build errors.
+
+Upstream status: reported in tracker
+https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9507
+
+Patch status: Interim to fix:
+http://autobuild.buildroot.net/results/2b1/2b1a0654b649618422d65edf370b82476ba84491/
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura wireshark-1.12.0.orig/acinclude.m4 wireshark-1.12.0/acinclude.m4
+--- wireshark-1.12.0.orig/acinclude.m4 2014-09-04 15:45:38.365255309 -0300
++++ wireshark-1.12.0/acinclude.m4 2014-09-04 15:46:23.349810353 -0300
+@@ -1755,10 +1755,6 @@
+ # just the new option.
+ #
+ CFLAGS="$CFLAGS_saved $GCC_OPTION"
+- #
+- # Add it to the flags we use when building build tools.
+- #
+- CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD $GCC_OPTION"
+ ],
+ [
+ AC_MSG_RESULT(yes)
+@@ -1771,10 +1767,6 @@
+ # just the new option.
+ #
+ CFLAGS="$CFLAGS_saved $GCC_OPTION"
+- #
+- # Add it to the flags we use when building build tools.
+- #
+- CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD $GCC_OPTION"
+ fi
+ ],
+ [
+++ /dev/null
-AC_WIRESHARK_GCC_CFLAGS_CHECK checks for valid CFLAGS against CC and pushes
-them into CFLAGS and CFLAGS_FOR_BUILD.
-This is wrong since CC_FOR_BUILD might be wildly different and older than CC
-leading to build errors.
-
-Upstream status: reported in tracker
-https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9507
-
-Patch status: Interim to fix:
-http://autobuild.buildroot.net/results/2b1/2b1a0654b649618422d65edf370b82476ba84491/
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura wireshark-1.12.0.orig/acinclude.m4 wireshark-1.12.0/acinclude.m4
---- wireshark-1.12.0.orig/acinclude.m4 2014-09-04 15:45:38.365255309 -0300
-+++ wireshark-1.12.0/acinclude.m4 2014-09-04 15:46:23.349810353 -0300
-@@ -1755,10 +1755,6 @@
- # just the new option.
- #
- CFLAGS="$CFLAGS_saved $GCC_OPTION"
-- #
-- # Add it to the flags we use when building build tools.
-- #
-- CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD $GCC_OPTION"
- ],
- [
- AC_MSG_RESULT(yes)
-@@ -1771,10 +1767,6 @@
- # just the new option.
- #
- CFLAGS="$CFLAGS_saved $GCC_OPTION"
-- #
-- # Add it to the flags we use when building build tools.
-- #
-- CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD $GCC_OPTION"
- fi
- ],
- [
--- /dev/null
+From ccc079dc16e70844bb28e84d00bd26b61ecc755c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <jkrause@posteo.de>
+Date: Wed, 3 Dec 2014 22:29:29 +0100
+Subject: [PATCH 1/1] fix musl build error
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Building wpa_supplicant with the musl C library fails since musl does not
+define type names such as '__uint32_t'. To support building wpa_supplicant
+with the musl C library use the integer types declared in the ISO C standard
+header file <stdint.h>.
+
+Signed-off-by: Jörg Krause <jkrause@posteo.de>
+---
+ src/drivers/linux_wext.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/drivers/linux_wext.h b/src/drivers/linux_wext.h
+index 55cf955..e7c7001 100644
+--- a/src/drivers/linux_wext.h
++++ b/src/drivers/linux_wext.h
+@@ -19,13 +19,13 @@
+ #define _LINUX_SOCKET_H
+ #define _LINUX_IF_H
+
+-#include <sys/types.h>
++#include <stdint.h>
+ #include <net/if.h>
+-typedef __uint32_t __u32;
+-typedef __int32_t __s32;
+-typedef __uint16_t __u16;
+-typedef __int16_t __s16;
+-typedef __uint8_t __u8;
++typedef uint32_t __u32;
++typedef int32_t __s32;
++typedef uint16_t __u16;
++typedef int16_t __s16;
++typedef uint8_t __u8;
+ #ifndef __user
+ #define __user
+ #endif /* __user */
+--
+2.1.3
+
+++ /dev/null
-From ccc079dc16e70844bb28e84d00bd26b61ecc755c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Krause?= <jkrause@posteo.de>
-Date: Wed, 3 Dec 2014 22:29:29 +0100
-Subject: [PATCH 1/1] fix musl build error
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Building wpa_supplicant with the musl C library fails since musl does not
-define type names such as '__uint32_t'. To support building wpa_supplicant
-with the musl C library use the integer types declared in the ISO C standard
-header file <stdint.h>.
-
-Signed-off-by: Jörg Krause <jkrause@posteo.de>
----
- src/drivers/linux_wext.h | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/drivers/linux_wext.h b/src/drivers/linux_wext.h
-index 55cf955..e7c7001 100644
---- a/src/drivers/linux_wext.h
-+++ b/src/drivers/linux_wext.h
-@@ -19,13 +19,13 @@
- #define _LINUX_SOCKET_H
- #define _LINUX_IF_H
-
--#include <sys/types.h>
-+#include <stdint.h>
- #include <net/if.h>
--typedef __uint32_t __u32;
--typedef __int32_t __s32;
--typedef __uint16_t __u16;
--typedef __int16_t __s16;
--typedef __uint8_t __u8;
-+typedef uint32_t __u32;
-+typedef int32_t __s32;
-+typedef uint16_t __u16;
-+typedef int16_t __s16;
-+typedef uint8_t __u8;
- #ifndef __user
- #define __user
- #endif /* __user */
---
-2.1.3
-
--- /dev/null
+Fix wvdial so that it works with scandir as defined in uClibc.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/wvmodemscan.cc b/wvmodemscan.cc
+--- a/wvmodemscan.cc 2009-09-29 18:27:28.000000000 +0100
++++ b/wvmodemscan.cc 2012-07-28 14:03:56.359729660 +0100
+@@ -495,13 +495,13 @@ static int fileselect(const struct diren
+ // (no internal ISDN support) || !strncmp(e->d_name, "ttyI", 4);
+ }
+
+-#if defined(__GLIBC__) && __GLIBC_PREREQ(2, 10)
++#if defined(__UCLIBC__) || (defined(__GLIBC__) && __GLIBC_PREREQ(2, 10))
+ static int filesort(const dirent **e1, const dirent **e2)
+ #else
+ static int filesort(const void *_e1, const void *_e2)
+ #endif
+ {
+-#if !(defined(__GLIBC__) && __GLIBC_PREREQ(2, 10))
++#if !(defined(__UCLIBC__) || (defined(__GLIBC__) && __GLIBC_PREREQ(2, 10)))
+ dirent const * const *e1 = (dirent const * const *)_e1;
+ dirent const * const *e2 = (dirent const * const *)_e2;
+ #endif
+++ /dev/null
-Fix wvdial so that it works with scandir as defined in uClibc.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/wvmodemscan.cc b/wvmodemscan.cc
---- a/wvmodemscan.cc 2009-09-29 18:27:28.000000000 +0100
-+++ b/wvmodemscan.cc 2012-07-28 14:03:56.359729660 +0100
-@@ -495,13 +495,13 @@ static int fileselect(const struct diren
- // (no internal ISDN support) || !strncmp(e->d_name, "ttyI", 4);
- }
-
--#if defined(__GLIBC__) && __GLIBC_PREREQ(2, 10)
-+#if defined(__UCLIBC__) || (defined(__GLIBC__) && __GLIBC_PREREQ(2, 10))
- static int filesort(const dirent **e1, const dirent **e2)
- #else
- static int filesort(const void *_e1, const void *_e2)
- #endif
- {
--#if !(defined(__GLIBC__) && __GLIBC_PREREQ(2, 10))
-+#if !(defined(__UCLIBC__) || (defined(__GLIBC__) && __GLIBC_PREREQ(2, 10)))
- dirent const * const *e1 = (dirent const * const *)_e1;
- dirent const * const *e2 = (dirent const * const *)_e2;
- #endif
--- /dev/null
+Fix wvstreams so that it builds with uClibc, which does not have the
+getcontext() and setcontext() functions.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/include/wvtask.h b/include/wvtask.h
+--- a/include/wvtask.h 2008-07-14 20:11:35.000000000 +0100
++++ b/include/wvtask.h 2012-07-28 12:29:53.559981240 +0100
+@@ -28,6 +28,13 @@
+
+ #define WVTASK_MAGIC 0x123678
+
++#undef HAVE_GETCONTEXT
++#ifdef HAVE_GETCONTEXT
++typedef ucontext_t TaskContext;
++#else
++typedef jmp_buf TaskContext;
++#endif
++
+ class WvTaskMan;
+
+ /** Represents a single thread of control. */
+@@ -54,8 +61,8 @@ class WvTask
+ bool running, recycled;
+
+ WvTaskMan &man;
+- ucontext_t mystate; // used for resuming the task
+- ucontext_t func_call, func_return;
++ TaskContext mystate; // used for resuming the task
++ TaskContext func_call, func_return;
+
+ TaskFunc *func;
+ void *userdata;
+@@ -94,13 +101,13 @@ class WvTaskMan
+ static void call_func(WvTask *task);
+
+ static char *stacktop;
+- static ucontext_t stackmaster_task;
++ static TaskContext stackmaster_task;
+
+ static WvTask *stack_target;
+- static ucontext_t get_stack_return;
++ static TaskContext get_stack_return;
+
+ static WvTask *current_task;
+- static ucontext_t toplevel;
++ static TaskContext toplevel;
+
+ WvTaskMan();
+ virtual ~WvTaskMan();
+diff -Nurp a/utils/wvtask.cc b/utils/wvtask.cc
+--- a/utils/wvtask.cc 2009-05-13 22:42:52.000000000 +0100
++++ b/utils/wvtask.cc 2012-07-28 12:32:23.855974538 +0100
+@@ -60,12 +60,14 @@ int WvTask::taskcount, WvTask::numtasks,
+ WvTaskMan *WvTaskMan::singleton;
+ int WvTaskMan::links, WvTaskMan::magic_number;
+ WvTaskList WvTaskMan::all_tasks, WvTaskMan::free_tasks;
+-ucontext_t WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return,
++TaskContext WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return,
+ WvTaskMan::toplevel;
+ WvTask *WvTaskMan::current_task, *WvTaskMan::stack_target;
+ char *WvTaskMan::stacktop;
+
++#ifdef HAVE_GETCONTEXT
+ static int context_return;
++#endif
+
+
+ static bool use_shared_stack()
+@@ -198,9 +200,13 @@ WvTaskMan::WvTaskMan()
+
+ stacktop = (char *)alloca(0);
+
++#ifdef HAVE_GETCONTEXT
+ context_return = 0;
+ assert(getcontext(&get_stack_return) == 0);
+ if (context_return == 0)
++#else
++ if (setjmp(get_stack_return) == 0)
++#endif
+ {
+ // initial setup - start the stackmaster() task (never returns!)
+ stackmaster();
+@@ -257,22 +263,30 @@ int WvTaskMan::run(WvTask &task, int val
+
+ WvTask *old_task = current_task;
+ current_task = &task;
+- ucontext_t *state;
++ TaskContext *state;
+
+ if (!old_task)
+ state = &toplevel; // top-level call (not in an actual task yet)
+ else
+ state = &old_task->mystate;
+
++#ifdef HAVE_GETCONTEXT
+ context_return = 0;
+ assert(getcontext(state) == 0);
+ int newval = context_return;
++#else
++ int newval = setjmp(*state);
++#endif
+ if (newval == 0)
+ {
+ // saved the state, now run the task.
++#ifdef HAVE_GETCONTEXT
+ context_return = val;
+ setcontext(&task.mystate);
+ return -1;
++#else
++ longjmp(task.mystate, val);
++#endif
+ }
+ else
+ {
+@@ -317,16 +331,24 @@ int WvTaskMan::yield(int val)
+ (long)current_task->stacksize);
+ }
+ #endif
+-
++
++#ifdef HAVE_GETCONTEXT
+ context_return = 0;
+ assert(getcontext(¤t_task->mystate) == 0);
+ int newval = context_return;
++#else
++ int newval = setjmp(current_task->mystate);
++#endif
+ if (newval == 0)
+ {
+ // saved the task state; now yield to the toplevel.
++#ifdef HAVE_GETCONTEXT
+ context_return = val;
+ setcontext(&toplevel);
+ return -1;
++#else
++ longjmp(toplevel, val);
++#endif
+ }
+ else
+ {
+@@ -340,9 +362,13 @@ int WvTaskMan::yield(int val)
+
+ void WvTaskMan::get_stack(WvTask &task, size_t size)
+ {
++#ifdef HAVE_GETCONTEXT
+ context_return = 0;
+ assert(getcontext(&get_stack_return) == 0);
+ if (context_return == 0)
++#else
++ if (setjmp(get_stack_return) == 0)
++#endif
+ {
+ assert(magic_number == -WVTASK_MAGIC);
+ assert(task.magic_number == WVTASK_MAGIC);
+@@ -358,6 +384,7 @@ void WvTaskMan::get_stack(WvTask &task,
+ static char *next_stack_addr = NULL;
+ #endif
+
++#ifndef HAVE_GETCONTEXT
+ task.stack = mmap(next_stack_addr, task.stacksize,
+ PROT_READ | PROT_WRITE,
+ #ifndef MACOS
+@@ -366,12 +393,17 @@ void WvTaskMan::get_stack(WvTask &task,
+ MAP_PRIVATE,
+ #endif
+ -1, 0);
++#endif // !HAVE_GETCONTEXT
+ }
+
+ // initial setup
+ stack_target = &task;
++#ifdef HAVE_GETCONTEXT
+ context_return = size/1024 + (size%1024 > 0);
+ setcontext(&stackmaster_task);
++#else
++ longjmp(stackmaster_task, size/1024 + (size%1024 > 0));
++#endif
+ }
+ else
+ {
+@@ -408,9 +440,13 @@ void WvTaskMan::_stackmaster()
+ {
+ assert(magic_number == -WVTASK_MAGIC);
+
++#ifdef HAVE_GETCONTEXT
+ context_return = 0;
+ assert(getcontext(&stackmaster_task) == 0);
+ val = context_return;
++#else
++ val = setjmp(stackmaster_task);
++#endif
+ if (val == 0)
+ {
+ assert(magic_number == -WVTASK_MAGIC);
+@@ -418,8 +454,12 @@ void WvTaskMan::_stackmaster()
+ // just did setjmp; save stackmaster's current state (with
+ // all current stack allocations) and go back to get_stack
+ // (or the constructor, if that's what called us)
++#ifdef HAVE_GETCONTEXT
+ context_return = 1;
+ setcontext(&get_stack_return);
++#else
++ longjmp(get_stack_return, 1);
++#endif
+ }
+ else
+ {
+@@ -462,7 +502,9 @@ void WvTaskMan::call_func(WvTask *task)
+ task->func(task->userdata);
+ Dprintf("WvTaskMan: returning from task #%d (%s)\n",
+ task->tid, (const char *)task->name);
++#ifdef HAVE_GETCONTEXT
+ context_return = 1;
++#endif
+ }
+
+
+@@ -473,9 +515,13 @@ void WvTaskMan::do_task()
+ assert(task->magic_number == WVTASK_MAGIC);
+
+ // back here from longjmp; someone wants stack space.
++#ifdef HAVE_GETCONTEXT
+ context_return = 0;
+ assert(getcontext(&task->mystate) == 0);
+ if (context_return == 0)
++#else
++ if (setjmp(task->mystate) == 0)
++#endif
+ {
+ // done the setjmp; that means the target task now has
+ // a working jmp_buf all set up. Leave space on the stack
+@@ -510,6 +556,7 @@ void WvTaskMan::do_task()
+ }
+ else
+ {
++#ifdef HAVE_GETCONTEXT
+ assert(getcontext(&task->func_call) == 0);
+ task->func_call.uc_stack.ss_size = task->stacksize;
+ task->func_call.uc_stack.ss_sp = task->stack;
+@@ -519,11 +566,19 @@ void WvTaskMan::do_task()
+ task->tid, (const char *)task->name);
+ makecontext(&task->func_call,
+ (void (*)(void))call_func, 1, task);
++#else
++ assert(setjmp(task->func_call) == 0);
++#endif
+
++#ifdef HAVE_GETCONTEXT
+ context_return = 0;
+ assert(getcontext(&task->func_return) == 0);
+ if (context_return == 0)
+ setcontext(&task->func_call);
++#else
++ if (setjmp(task->func_return) == 0)
++ longjmp(task->func_call, 0);
++#endif
+ }
+
+ // the task's function terminated.
+@@ -544,8 +599,12 @@ const void *WvTaskMan::current_top_of_st
+ if (use_shared_stack() || current_task == NULL)
+ return __libc_stack_end;
+ else
++#ifdef HAVE_GETCONTEXT
+ return (const char *)current_task->stack + current_task->stacksize;
+ #else
++ return 0;
++#endif
++#else
+ return 0;
+ #endif
+ }
--- /dev/null
+Fix wvstreams so that it builds with uClibc: we don't have execinfo.h,
+so we can't do backtrace() stuff.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/utils/wvcrash.cc b/utils/wvcrash.cc
+--- a/utils/wvcrash.cc 2008-12-17 12:24:20.000000000 +0000
++++ b/utils/wvcrash.cc 2012-07-27 22:00:15.456502262 +0100
+@@ -28,7 +28,9 @@
+ // FIXME: this file mostly only works in Linux
+ #ifdef __linux
+
+-# include <execinfo.h>
++#ifdef HAVE_EXECINFO_H
++#include <execinfo.h>
++#endif
+ #include <unistd.h>
+
+ #ifdef __USE_GNU
+@@ -267,9 +269,11 @@ static void wvcrash_real(int sig, int fd
+ }
+ }
+
++#ifdef HAVE_EXECINFO_H
+ wr(fd, "\nBacktrace:\n");
+ backtrace_symbols_fd(trace,
+ backtrace(trace, sizeof(trace)/sizeof(trace[0])), fd);
++#endif
+
+ if (pid > 0)
+ {
--- /dev/null
+Fix wvstreams so that it builds with uClibc: const cast problem.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/crypto/wvx509.cc b/crypto/wvx509.cc
+--- a/crypto/wvx509.cc 2008-10-23 21:23:49.000000000 +0100
++++ b/crypto/wvx509.cc 2012-06-15 18:45:06.605899292 +0100
+@@ -1157,7 +1157,7 @@ WvString WvX509::get_extension(int nid)
+
+ if (ext)
+ {
+- X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++ X509V3_EXT_METHOD *method = const_cast<X509V3_EXT_METHOD *>(X509V3_EXT_get(ext));
+ if (!method)
+ {
+ WvDynBuf buf;
--- /dev/null
+Add missing includes for proper build on Linux/glibc
+
+The current wvstreams code doesn't build on Linux/glibc, with error
+about chmod() not being available (for wvunixdgsocket.cc) or umask()
+not being available (for wvatomicfile.cc). Those errors turn out to be
+missing includes. Those includes were in fact already done, but
+conditionally for MacOS. We make them unconditional (it probably
+breaks other platforms, but since Buildroot is Linux only, we don't
+care).
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/ipstreams/wvunixdgsocket.cc
+===================================================================
+--- a/ipstreams/wvunixdgsocket.cc
++++ b/ipstreams/wvunixdgsocket.cc
+@@ -1,8 +1,6 @@
+ #include "wvunixdgsocket.h"
+-#ifdef MACOS
+ #include <sys/types.h>
+ #include <sys/stat.h>
+-#endif
+
+ WvUnixDGSocket::WvUnixDGSocket(WvStringParm filename, bool _server, int perms)
+ : socketfile(filename)
+Index: b/streams/wvatomicfile.cc
+===================================================================
+--- a/streams/wvatomicfile.cc
++++ b/streams/wvatomicfile.cc
+@@ -10,10 +10,7 @@
+ #include "wvatomicfile.h"
+ #include "wvfileutils.h"
+ #include "wvstrutils.h"
+-
+-#ifdef MACOS
+ #include <sys/stat.h>
+-#endif
+
+ WvAtomicFile::WvAtomicFile(WvStringParm filename, int flags, mode_t create_mode)
+ : tmp_file(WvString::null)
--- /dev/null
+[PATCH] wvuid.cc: getuid needs sys/types.h + unistd.h
+
+Otherwise the build fails with:
+
+utils/wvuid.cc: In function 'wvuid_t wvgetuid()':
+utils/wvuid.cc:63:19: error: 'getuid' was not declared in this scope
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ utils/wvuid.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: wvstreams-4.6.1/utils/wvuid.cc
+===================================================================
+--- wvstreams-4.6.1.orig/utils/wvuid.cc
++++ wvstreams-4.6.1/utils/wvuid.cc
+@@ -33,6 +33,8 @@
+
+ #else // not WIN32
+
++#include <unistd.h>
++#include <sys/types.h>
+
+ WvString wv_username_from_uid(wvuid_t uid)
+ {
+++ /dev/null
-Fix wvstreams so that it builds with uClibc, which does not have the
-getcontext() and setcontext() functions.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/include/wvtask.h b/include/wvtask.h
---- a/include/wvtask.h 2008-07-14 20:11:35.000000000 +0100
-+++ b/include/wvtask.h 2012-07-28 12:29:53.559981240 +0100
-@@ -28,6 +28,13 @@
-
- #define WVTASK_MAGIC 0x123678
-
-+#undef HAVE_GETCONTEXT
-+#ifdef HAVE_GETCONTEXT
-+typedef ucontext_t TaskContext;
-+#else
-+typedef jmp_buf TaskContext;
-+#endif
-+
- class WvTaskMan;
-
- /** Represents a single thread of control. */
-@@ -54,8 +61,8 @@ class WvTask
- bool running, recycled;
-
- WvTaskMan &man;
-- ucontext_t mystate; // used for resuming the task
-- ucontext_t func_call, func_return;
-+ TaskContext mystate; // used for resuming the task
-+ TaskContext func_call, func_return;
-
- TaskFunc *func;
- void *userdata;
-@@ -94,13 +101,13 @@ class WvTaskMan
- static void call_func(WvTask *task);
-
- static char *stacktop;
-- static ucontext_t stackmaster_task;
-+ static TaskContext stackmaster_task;
-
- static WvTask *stack_target;
-- static ucontext_t get_stack_return;
-+ static TaskContext get_stack_return;
-
- static WvTask *current_task;
-- static ucontext_t toplevel;
-+ static TaskContext toplevel;
-
- WvTaskMan();
- virtual ~WvTaskMan();
-diff -Nurp a/utils/wvtask.cc b/utils/wvtask.cc
---- a/utils/wvtask.cc 2009-05-13 22:42:52.000000000 +0100
-+++ b/utils/wvtask.cc 2012-07-28 12:32:23.855974538 +0100
-@@ -60,12 +60,14 @@ int WvTask::taskcount, WvTask::numtasks,
- WvTaskMan *WvTaskMan::singleton;
- int WvTaskMan::links, WvTaskMan::magic_number;
- WvTaskList WvTaskMan::all_tasks, WvTaskMan::free_tasks;
--ucontext_t WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return,
-+TaskContext WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return,
- WvTaskMan::toplevel;
- WvTask *WvTaskMan::current_task, *WvTaskMan::stack_target;
- char *WvTaskMan::stacktop;
-
-+#ifdef HAVE_GETCONTEXT
- static int context_return;
-+#endif
-
-
- static bool use_shared_stack()
-@@ -198,9 +200,13 @@ WvTaskMan::WvTaskMan()
-
- stacktop = (char *)alloca(0);
-
-+#ifdef HAVE_GETCONTEXT
- context_return = 0;
- assert(getcontext(&get_stack_return) == 0);
- if (context_return == 0)
-+#else
-+ if (setjmp(get_stack_return) == 0)
-+#endif
- {
- // initial setup - start the stackmaster() task (never returns!)
- stackmaster();
-@@ -257,22 +263,30 @@ int WvTaskMan::run(WvTask &task, int val
-
- WvTask *old_task = current_task;
- current_task = &task;
-- ucontext_t *state;
-+ TaskContext *state;
-
- if (!old_task)
- state = &toplevel; // top-level call (not in an actual task yet)
- else
- state = &old_task->mystate;
-
-+#ifdef HAVE_GETCONTEXT
- context_return = 0;
- assert(getcontext(state) == 0);
- int newval = context_return;
-+#else
-+ int newval = setjmp(*state);
-+#endif
- if (newval == 0)
- {
- // saved the state, now run the task.
-+#ifdef HAVE_GETCONTEXT
- context_return = val;
- setcontext(&task.mystate);
- return -1;
-+#else
-+ longjmp(task.mystate, val);
-+#endif
- }
- else
- {
-@@ -317,16 +331,24 @@ int WvTaskMan::yield(int val)
- (long)current_task->stacksize);
- }
- #endif
--
-+
-+#ifdef HAVE_GETCONTEXT
- context_return = 0;
- assert(getcontext(¤t_task->mystate) == 0);
- int newval = context_return;
-+#else
-+ int newval = setjmp(current_task->mystate);
-+#endif
- if (newval == 0)
- {
- // saved the task state; now yield to the toplevel.
-+#ifdef HAVE_GETCONTEXT
- context_return = val;
- setcontext(&toplevel);
- return -1;
-+#else
-+ longjmp(toplevel, val);
-+#endif
- }
- else
- {
-@@ -340,9 +362,13 @@ int WvTaskMan::yield(int val)
-
- void WvTaskMan::get_stack(WvTask &task, size_t size)
- {
-+#ifdef HAVE_GETCONTEXT
- context_return = 0;
- assert(getcontext(&get_stack_return) == 0);
- if (context_return == 0)
-+#else
-+ if (setjmp(get_stack_return) == 0)
-+#endif
- {
- assert(magic_number == -WVTASK_MAGIC);
- assert(task.magic_number == WVTASK_MAGIC);
-@@ -358,6 +384,7 @@ void WvTaskMan::get_stack(WvTask &task,
- static char *next_stack_addr = NULL;
- #endif
-
-+#ifndef HAVE_GETCONTEXT
- task.stack = mmap(next_stack_addr, task.stacksize,
- PROT_READ | PROT_WRITE,
- #ifndef MACOS
-@@ -366,12 +393,17 @@ void WvTaskMan::get_stack(WvTask &task,
- MAP_PRIVATE,
- #endif
- -1, 0);
-+#endif // !HAVE_GETCONTEXT
- }
-
- // initial setup
- stack_target = &task;
-+#ifdef HAVE_GETCONTEXT
- context_return = size/1024 + (size%1024 > 0);
- setcontext(&stackmaster_task);
-+#else
-+ longjmp(stackmaster_task, size/1024 + (size%1024 > 0));
-+#endif
- }
- else
- {
-@@ -408,9 +440,13 @@ void WvTaskMan::_stackmaster()
- {
- assert(magic_number == -WVTASK_MAGIC);
-
-+#ifdef HAVE_GETCONTEXT
- context_return = 0;
- assert(getcontext(&stackmaster_task) == 0);
- val = context_return;
-+#else
-+ val = setjmp(stackmaster_task);
-+#endif
- if (val == 0)
- {
- assert(magic_number == -WVTASK_MAGIC);
-@@ -418,8 +454,12 @@ void WvTaskMan::_stackmaster()
- // just did setjmp; save stackmaster's current state (with
- // all current stack allocations) and go back to get_stack
- // (or the constructor, if that's what called us)
-+#ifdef HAVE_GETCONTEXT
- context_return = 1;
- setcontext(&get_stack_return);
-+#else
-+ longjmp(get_stack_return, 1);
-+#endif
- }
- else
- {
-@@ -462,7 +502,9 @@ void WvTaskMan::call_func(WvTask *task)
- task->func(task->userdata);
- Dprintf("WvTaskMan: returning from task #%d (%s)\n",
- task->tid, (const char *)task->name);
-+#ifdef HAVE_GETCONTEXT
- context_return = 1;
-+#endif
- }
-
-
-@@ -473,9 +515,13 @@ void WvTaskMan::do_task()
- assert(task->magic_number == WVTASK_MAGIC);
-
- // back here from longjmp; someone wants stack space.
-+#ifdef HAVE_GETCONTEXT
- context_return = 0;
- assert(getcontext(&task->mystate) == 0);
- if (context_return == 0)
-+#else
-+ if (setjmp(task->mystate) == 0)
-+#endif
- {
- // done the setjmp; that means the target task now has
- // a working jmp_buf all set up. Leave space on the stack
-@@ -510,6 +556,7 @@ void WvTaskMan::do_task()
- }
- else
- {
-+#ifdef HAVE_GETCONTEXT
- assert(getcontext(&task->func_call) == 0);
- task->func_call.uc_stack.ss_size = task->stacksize;
- task->func_call.uc_stack.ss_sp = task->stack;
-@@ -519,11 +566,19 @@ void WvTaskMan::do_task()
- task->tid, (const char *)task->name);
- makecontext(&task->func_call,
- (void (*)(void))call_func, 1, task);
-+#else
-+ assert(setjmp(task->func_call) == 0);
-+#endif
-
-+#ifdef HAVE_GETCONTEXT
- context_return = 0;
- assert(getcontext(&task->func_return) == 0);
- if (context_return == 0)
- setcontext(&task->func_call);
-+#else
-+ if (setjmp(task->func_return) == 0)
-+ longjmp(task->func_call, 0);
-+#endif
- }
-
- // the task's function terminated.
-@@ -544,8 +599,12 @@ const void *WvTaskMan::current_top_of_st
- if (use_shared_stack() || current_task == NULL)
- return __libc_stack_end;
- else
-+#ifdef HAVE_GETCONTEXT
- return (const char *)current_task->stack + current_task->stacksize;
- #else
-+ return 0;
-+#endif
-+#else
- return 0;
- #endif
- }
+++ /dev/null
-Fix wvstreams so that it builds with uClibc: we don't have execinfo.h,
-so we can't do backtrace() stuff.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/utils/wvcrash.cc b/utils/wvcrash.cc
---- a/utils/wvcrash.cc 2008-12-17 12:24:20.000000000 +0000
-+++ b/utils/wvcrash.cc 2012-07-27 22:00:15.456502262 +0100
-@@ -28,7 +28,9 @@
- // FIXME: this file mostly only works in Linux
- #ifdef __linux
-
--# include <execinfo.h>
-+#ifdef HAVE_EXECINFO_H
-+#include <execinfo.h>
-+#endif
- #include <unistd.h>
-
- #ifdef __USE_GNU
-@@ -267,9 +269,11 @@ static void wvcrash_real(int sig, int fd
- }
- }
-
-+#ifdef HAVE_EXECINFO_H
- wr(fd, "\nBacktrace:\n");
- backtrace_symbols_fd(trace,
- backtrace(trace, sizeof(trace)/sizeof(trace[0])), fd);
-+#endif
-
- if (pid > 0)
- {
+++ /dev/null
-Fix wvstreams so that it builds with uClibc: const cast problem.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/crypto/wvx509.cc b/crypto/wvx509.cc
---- a/crypto/wvx509.cc 2008-10-23 21:23:49.000000000 +0100
-+++ b/crypto/wvx509.cc 2012-06-15 18:45:06.605899292 +0100
-@@ -1157,7 +1157,7 @@ WvString WvX509::get_extension(int nid)
-
- if (ext)
- {
-- X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
-+ X509V3_EXT_METHOD *method = const_cast<X509V3_EXT_METHOD *>(X509V3_EXT_get(ext));
- if (!method)
- {
- WvDynBuf buf;
+++ /dev/null
-Add missing includes for proper build on Linux/glibc
-
-The current wvstreams code doesn't build on Linux/glibc, with error
-about chmod() not being available (for wvunixdgsocket.cc) or umask()
-not being available (for wvatomicfile.cc). Those errors turn out to be
-missing includes. Those includes were in fact already done, but
-conditionally for MacOS. We make them unconditional (it probably
-breaks other platforms, but since Buildroot is Linux only, we don't
-care).
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/ipstreams/wvunixdgsocket.cc
-===================================================================
---- a/ipstreams/wvunixdgsocket.cc
-+++ b/ipstreams/wvunixdgsocket.cc
-@@ -1,8 +1,6 @@
- #include "wvunixdgsocket.h"
--#ifdef MACOS
- #include <sys/types.h>
- #include <sys/stat.h>
--#endif
-
- WvUnixDGSocket::WvUnixDGSocket(WvStringParm filename, bool _server, int perms)
- : socketfile(filename)
-Index: b/streams/wvatomicfile.cc
-===================================================================
---- a/streams/wvatomicfile.cc
-+++ b/streams/wvatomicfile.cc
-@@ -10,10 +10,7 @@
- #include "wvatomicfile.h"
- #include "wvfileutils.h"
- #include "wvstrutils.h"
--
--#ifdef MACOS
- #include <sys/stat.h>
--#endif
-
- WvAtomicFile::WvAtomicFile(WvStringParm filename, int flags, mode_t create_mode)
- : tmp_file(WvString::null)
+++ /dev/null
-[PATCH] wvuid.cc: getuid needs sys/types.h + unistd.h
-
-Otherwise the build fails with:
-
-utils/wvuid.cc: In function 'wvuid_t wvgetuid()':
-utils/wvuid.cc:63:19: error: 'getuid' was not declared in this scope
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- utils/wvuid.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-Index: wvstreams-4.6.1/utils/wvuid.cc
-===================================================================
---- wvstreams-4.6.1.orig/utils/wvuid.cc
-+++ wvstreams-4.6.1/utils/wvuid.cc
-@@ -33,6 +33,8 @@
-
- #else // not WIN32
-
-+#include <unistd.h>
-+#include <sys/types.h>
-
- WvString wv_username_from_uid(wvuid_t uid)
- {
--- /dev/null
+Suggested workaround to build with recent gcc versions
+
+Upstream bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47792
+
+Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
+
+Index: xapp_luit-1.1.1/sys.c
+===================================================================
+--- xapp_luit-1.1.1.orig/sys.c
++++ xapp_luit-1.1.1/sys.c
+@@ -20,6 +20,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWAR
+ THE SOFTWARE.
+ */
+
++#define _XOPEN_SOURCE 600
++
+ #ifdef HAVE_CONFIG_H
+ # include "config.h"
+ #endif
+++ /dev/null
-Suggested workaround to build with recent gcc versions
-
-Upstream bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47792
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-
-Index: xapp_luit-1.1.1/sys.c
-===================================================================
---- xapp_luit-1.1.1.orig/sys.c
-+++ xapp_luit-1.1.1/sys.c
-@@ -20,6 +20,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWAR
- THE SOFTWARE.
- */
-
-+#define _XOPEN_SOURCE 600
-+
- #ifdef HAVE_CONFIG_H
- # include "config.h"
- #endif
--- /dev/null
+Do not symlink to a host directory
+
+The installation of xcursor-transparent-theme creates many symbolic
+links to the 'transp' cursor file, but it does so using an absolute
+directory, that happens to point to the installation location, which
+is incorrect when cross-compiling.
+
+Also add the -f option so that the package can be reinstalled even if
+it has already been installed.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/cursors/Makefile.am
+===================================================================
+--- a/cursors/Makefile.am
++++ b/cursors/Makefile.am
+@@ -91,6 +91,6 @@
+ $(INSTALL_DATA) $(CURSOR_REAL) $(DESTDIR)$(CURSOR_DIR)/
+ for CURSOR in $(CURSOR_NAMES); do \
+ echo '-- Installing cursor '$$CURSOR; \
+- ln -s $(DESTDIR)$(CURSOR_DIR)/transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
++ ln -sf transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
+ done
+
+Index: b/cursors/Makefile.in
+===================================================================
+--- a/cursors/Makefile.in
++++ b/cursors/Makefile.in
+@@ -177,7 +177,7 @@
+ $(INSTALL_DATA) $(CURSOR_REAL) $(DESTDIR)$(CURSOR_DIR)/
+ for CURSOR in $(CURSOR_NAMES); do \
+ echo '-- Installing cursor '$$CURSOR; \
+- ln -s $(DESTDIR)$(CURSOR_DIR)/transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
++ ln -sf transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
+ done
+
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+++ /dev/null
-Do not symlink to a host directory
-
-The installation of xcursor-transparent-theme creates many symbolic
-links to the 'transp' cursor file, but it does so using an absolute
-directory, that happens to point to the installation location, which
-is incorrect when cross-compiling.
-
-Also add the -f option so that the package can be reinstalled even if
-it has already been installed.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/cursors/Makefile.am
-===================================================================
---- a/cursors/Makefile.am
-+++ b/cursors/Makefile.am
-@@ -91,6 +91,6 @@
- $(INSTALL_DATA) $(CURSOR_REAL) $(DESTDIR)$(CURSOR_DIR)/
- for CURSOR in $(CURSOR_NAMES); do \
- echo '-- Installing cursor '$$CURSOR; \
-- ln -s $(DESTDIR)$(CURSOR_DIR)/transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
-+ ln -sf transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
- done
-
-Index: b/cursors/Makefile.in
-===================================================================
---- a/cursors/Makefile.in
-+++ b/cursors/Makefile.in
-@@ -177,7 +177,7 @@
- $(INSTALL_DATA) $(CURSOR_REAL) $(DESTDIR)$(CURSOR_DIR)/
- for CURSOR in $(CURSOR_NAMES); do \
- echo '-- Installing cursor '$$CURSOR; \
-- ln -s $(DESTDIR)$(CURSOR_DIR)/transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
-+ ln -sf transp $(DESTDIR)$(CURSOR_DIR)/$$CURSOR; \
- done
-
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
--- /dev/null
+Fetch from: https://launchpad.net/ubuntu/+archive/primary/+files/xf86-input-tslib_0.0.6-7build3.debian.tar.gz
+
+Signed-off-by: Jesper Baekdahl <jbb@gamblify.com>
+---
+--- xf86-input-tslib-0.0.6/src/tslib.c 2009-10-19 18:07:18.000000000 +0300
++++ xf86-input-tslib-0.0.6.new/src/tslib.c 2010-02-12 16:15:05.000000000 +0200
+@@ -103,8 +103,6 @@
+ static void
+ PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
+ {
+- ErrorF("%s\n", __FUNCTION__);
+- return;
+ }
+
+ static Bool
+@@ -406,7 +404,9 @@
+ xf86MotionHistoryAllocate(pInfo);
+ #endif
+
+- break;
++ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc))
++ return !Success;
++ break;
+
+ case DEVICE_ON:
+ AddEnabledDevice(pInfo->fd);
+@@ -435,6 +435,7 @@
+ xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
+ ts_close(priv->ts);
+ xfree(pInfo->private);
++ pInfo->private = NULL;
+ xf86DeleteInput(pInfo, 0);
+ }
+
--- /dev/null
+Fetch from: https://launchpad.net/ubuntu/+archive/primary/+files/xf86-input-tslib_0.0.6-7build3.debian.tar.gz
+Fixes build against newer versions of xorg.
+
+Signed-off-by: Jesper Baekdahl <jbb@gamblify.com>
+---
+Index: xf86-input-tslib-trunk/src/tslib.c
+===================================================================
+--- xf86-input-tslib-trunk/src/tslib.c (revision 48)
++++ xf86-input-tslib-trunk/src/tslib.c (working copy)
+@@ -69,6 +69,13 @@
+ #define DEFAULT_HEIGHT 240
+ #define DEFAULT_WIDTH 320
+
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
++#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options), NULL)
++#else
++#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options))
++#endif
++
++
+ enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 };
+
+ enum button_state { BUTTON_NOT_PRESSED = 0, BUTTON_1_PRESSED = 1, BUTTON_3_CLICK = 3, BUTTON_3_CLICKED=4, BUTTON_EMULATION_OFF=-1 };
+@@ -106,7 +113,7 @@
+ }
+
+ static Bool
+-ConvertProc( LocalDevicePtr local,
++ConvertProc( InputInfoPtr local,
+ int first,
+ int num,
+ int v0,
+@@ -135,7 +142,7 @@
+ return t;
+ }
+
+-static void ReadInput (LocalDevicePtr local)
++static void ReadInput (InputInfoPtr local)
+ {
+ struct ts_priv *priv = (struct ts_priv *) (local->private);
+ struct ts_sample samp;
+@@ -382,7 +389,11 @@
+ axiswidth - 1, /* max val */
+ axiswidth, /* resolution */
+ 0, /* min_res */
+- axiswidth); /* max_res */
++ axiswidth /* max_res */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++ ,Absolute
++#endif
++ );
+
+ InitValuatorAxisStruct(device, 1,
+ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+@@ -392,7 +403,11 @@
+ axisheight - 1, /* max val */
+ axisheight, /* resolution */
+ 0, /* min_res */
+- axisheight); /* max_res */
++ axisheight /* max_res */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++ ,Absolute
++#endif
++ );
+
+ if (InitProximityClassDeviceStruct (device) == FALSE) {
+ ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n");
+@@ -434,7 +449,7 @@
+ ErrorF("%s\n", __FUNCTION__);
+ xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
+ ts_close(priv->ts);
+- xfree(pInfo->private);
++ free(pInfo->private);
+ pInfo->private = NULL;
+ xf86DeleteInput(pInfo, 0);
+ }
+@@ -444,47 +459,57 @@
+ *
+ * called when the module subsection is found in XF86Config
+ */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++static int
++xf86TslibInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
++#else
+ static InputInfoPtr
+ xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
++#endif
+ {
+ struct ts_priv *priv;
+ char *s;
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ InputInfoPtr pInfo;
++#endif
+
+- priv = xcalloc (1, sizeof (struct ts_priv));
++ priv = calloc (1, sizeof (struct ts_priv));
+ if (!priv)
+- return NULL;
++ return BadValue;
+
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ if (!(pInfo = xf86AllocateInput(drv, 0))) {
+- xfree(priv);
+- return NULL;
++ free(priv);
++ return BadValue;
+ }
+
+ /* Initialise the InputInfoRec. */
+ pInfo->name = dev->identifier;
+- pInfo->type_name = XI_TOUCHSCREEN;
+ pInfo->flags =
+ XI86_KEYBOARD_CAPABLE | XI86_POINTER_CAPABLE |
+ XI86_SEND_DRAG_EVENTS;
+- pInfo->device_control = xf86TslibControlProc;
+- pInfo->read_input = ReadInput;
+ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
+ pInfo->motion_history_proc = xf86GetMotionEvents;
+ pInfo->history_size = 0;
+ #endif
+- pInfo->control_proc = NULL;
++ pInfo->conf_idev = dev;
+ pInfo->close_proc = NULL;
+- pInfo->switch_mode = NULL;
+ pInfo->conversion_proc = ConvertProc;
+ pInfo->reverse_conversion_proc = NULL;
+- pInfo->dev = NULL;
+ pInfo->private_flags = 0;
+ pInfo->always_core_feedback = 0;
+- pInfo->conf_idev = dev;
++#endif
++
++ pInfo->type_name = XI_TOUCHSCREEN;
++ pInfo->control_proc = NULL;
++ pInfo->read_input = ReadInput;
++ pInfo->device_control = xf86TslibControlProc;
++ pInfo->switch_mode = NULL;
+ pInfo->private = priv;
++ pInfo->dev = NULL;
+
+ /* Collect the options, and process the common options. */
+- xf86CollectInputOptions(pInfo, NULL, NULL);
++ COLLECT_INPUT_OPTIONS(pInfo, NULL);
+ xf86ProcessCommonOptions(pInfo, pInfo->options);
+
+ priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 );
+@@ -510,23 +535,31 @@
+ priv->rotate = TSLIB_ROTATE_NONE;
+ }
+
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ s = xf86CheckStrOption(dev->commonOptions, "path", NULL);
++#else
++ s = xf86CheckStrOption(pInfo->options, "path", NULL);
++#endif
+ if (!s)
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ s = xf86CheckStrOption(dev->commonOptions, "Device", NULL);
++#else
++ s = xf86CheckStrOption(pInfo->options, "Device", NULL);
++#endif
+
+ priv->ts = ts_open(s, 1);
+- xfree(s);
++ free(s);
+
+ if (!priv->ts) {
+ ErrorF("ts_open failed (device=%s)\n",s);
+ xf86DeleteInput(pInfo, 0);
+- return NULL;
++ return BadValue;
+ }
+
+ if (ts_config(priv->ts)) {
+ ErrorF("ts_config failed\n");
+ xf86DeleteInput(pInfo, 0);
+- return NULL;
++ return BadValue;
+ }
+
+ pInfo->fd = ts_fd(priv->ts);
+@@ -536,11 +569,13 @@
+ priv->state = BUTTON_EMULATION_OFF;
+ }
+
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ /* Mark the device configured */
+ pInfo->flags |= XI86_CONFIGURED;
++#endif
+
+ /* Return the configured device */
+- return (pInfo);
++ return Success;
+ }
+
+ _X_EXPORT InputDriverRec TSLIB = {
+++ /dev/null
-Fetch from: https://launchpad.net/ubuntu/+archive/primary/+files/xf86-input-tslib_0.0.6-7build3.debian.tar.gz
-
-Signed-off-by: Jesper Baekdahl <jbb@gamblify.com>
----
---- xf86-input-tslib-0.0.6/src/tslib.c 2009-10-19 18:07:18.000000000 +0300
-+++ xf86-input-tslib-0.0.6.new/src/tslib.c 2010-02-12 16:15:05.000000000 +0200
-@@ -103,8 +103,6 @@
- static void
- PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
- {
-- ErrorF("%s\n", __FUNCTION__);
-- return;
- }
-
- static Bool
-@@ -406,7 +404,9 @@
- xf86MotionHistoryAllocate(pInfo);
- #endif
-
-- break;
-+ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc))
-+ return !Success;
-+ break;
-
- case DEVICE_ON:
- AddEnabledDevice(pInfo->fd);
-@@ -435,6 +435,7 @@
- xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
- ts_close(priv->ts);
- xfree(pInfo->private);
-+ pInfo->private = NULL;
- xf86DeleteInput(pInfo, 0);
- }
-
+++ /dev/null
-Fetch from: https://launchpad.net/ubuntu/+archive/primary/+files/xf86-input-tslib_0.0.6-7build3.debian.tar.gz
-Fixes build against newer versions of xorg.
-
-Signed-off-by: Jesper Baekdahl <jbb@gamblify.com>
----
-Index: xf86-input-tslib-trunk/src/tslib.c
-===================================================================
---- xf86-input-tslib-trunk/src/tslib.c (revision 48)
-+++ xf86-input-tslib-trunk/src/tslib.c (working copy)
-@@ -69,6 +69,13 @@
- #define DEFAULT_HEIGHT 240
- #define DEFAULT_WIDTH 320
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
-+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options), NULL)
-+#else
-+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options))
-+#endif
-+
-+
- enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 };
-
- enum button_state { BUTTON_NOT_PRESSED = 0, BUTTON_1_PRESSED = 1, BUTTON_3_CLICK = 3, BUTTON_3_CLICKED=4, BUTTON_EMULATION_OFF=-1 };
-@@ -106,7 +113,7 @@
- }
-
- static Bool
--ConvertProc( LocalDevicePtr local,
-+ConvertProc( InputInfoPtr local,
- int first,
- int num,
- int v0,
-@@ -135,7 +142,7 @@
- return t;
- }
-
--static void ReadInput (LocalDevicePtr local)
-+static void ReadInput (InputInfoPtr local)
- {
- struct ts_priv *priv = (struct ts_priv *) (local->private);
- struct ts_sample samp;
-@@ -382,7 +389,11 @@
- axiswidth - 1, /* max val */
- axiswidth, /* resolution */
- 0, /* min_res */
-- axiswidth); /* max_res */
-+ axiswidth /* max_res */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+ ,Absolute
-+#endif
-+ );
-
- InitValuatorAxisStruct(device, 1,
- #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
-@@ -392,7 +403,11 @@
- axisheight - 1, /* max val */
- axisheight, /* resolution */
- 0, /* min_res */
-- axisheight); /* max_res */
-+ axisheight /* max_res */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+ ,Absolute
-+#endif
-+ );
-
- if (InitProximityClassDeviceStruct (device) == FALSE) {
- ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n");
-@@ -434,7 +449,7 @@
- ErrorF("%s\n", __FUNCTION__);
- xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
- ts_close(priv->ts);
-- xfree(pInfo->private);
-+ free(pInfo->private);
- pInfo->private = NULL;
- xf86DeleteInput(pInfo, 0);
- }
-@@ -444,47 +459,57 @@
- *
- * called when the module subsection is found in XF86Config
- */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+static int
-+xf86TslibInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
-+#else
- static InputInfoPtr
- xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
-+#endif
- {
- struct ts_priv *priv;
- char *s;
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- InputInfoPtr pInfo;
-+#endif
-
-- priv = xcalloc (1, sizeof (struct ts_priv));
-+ priv = calloc (1, sizeof (struct ts_priv));
- if (!priv)
-- return NULL;
-+ return BadValue;
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- if (!(pInfo = xf86AllocateInput(drv, 0))) {
-- xfree(priv);
-- return NULL;
-+ free(priv);
-+ return BadValue;
- }
-
- /* Initialise the InputInfoRec. */
- pInfo->name = dev->identifier;
-- pInfo->type_name = XI_TOUCHSCREEN;
- pInfo->flags =
- XI86_KEYBOARD_CAPABLE | XI86_POINTER_CAPABLE |
- XI86_SEND_DRAG_EVENTS;
-- pInfo->device_control = xf86TslibControlProc;
-- pInfo->read_input = ReadInput;
- #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
- pInfo->motion_history_proc = xf86GetMotionEvents;
- pInfo->history_size = 0;
- #endif
-- pInfo->control_proc = NULL;
-+ pInfo->conf_idev = dev;
- pInfo->close_proc = NULL;
-- pInfo->switch_mode = NULL;
- pInfo->conversion_proc = ConvertProc;
- pInfo->reverse_conversion_proc = NULL;
-- pInfo->dev = NULL;
- pInfo->private_flags = 0;
- pInfo->always_core_feedback = 0;
-- pInfo->conf_idev = dev;
-+#endif
-+
-+ pInfo->type_name = XI_TOUCHSCREEN;
-+ pInfo->control_proc = NULL;
-+ pInfo->read_input = ReadInput;
-+ pInfo->device_control = xf86TslibControlProc;
-+ pInfo->switch_mode = NULL;
- pInfo->private = priv;
-+ pInfo->dev = NULL;
-
- /* Collect the options, and process the common options. */
-- xf86CollectInputOptions(pInfo, NULL, NULL);
-+ COLLECT_INPUT_OPTIONS(pInfo, NULL);
- xf86ProcessCommonOptions(pInfo, pInfo->options);
-
- priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 );
-@@ -510,23 +535,31 @@
- priv->rotate = TSLIB_ROTATE_NONE;
- }
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- s = xf86CheckStrOption(dev->commonOptions, "path", NULL);
-+#else
-+ s = xf86CheckStrOption(pInfo->options, "path", NULL);
-+#endif
- if (!s)
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- s = xf86CheckStrOption(dev->commonOptions, "Device", NULL);
-+#else
-+ s = xf86CheckStrOption(pInfo->options, "Device", NULL);
-+#endif
-
- priv->ts = ts_open(s, 1);
-- xfree(s);
-+ free(s);
-
- if (!priv->ts) {
- ErrorF("ts_open failed (device=%s)\n",s);
- xf86DeleteInput(pInfo, 0);
-- return NULL;
-+ return BadValue;
- }
-
- if (ts_config(priv->ts)) {
- ErrorF("ts_config failed\n");
- xf86DeleteInput(pInfo, 0);
-- return NULL;
-+ return BadValue;
- }
-
- pInfo->fd = ts_fd(priv->ts);
-@@ -536,11 +569,13 @@
- priv->state = BUTTON_EMULATION_OFF;
- }
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- /* Mark the device configured */
- pInfo->flags |= XI86_CONFIGURED;
-+#endif
-
- /* Return the configured device */
-- return (pInfo);
-+ return Success;
- }
-
- _X_EXPORT InputDriverRec TSLIB = {
--- /dev/null
+From 3a3eb72baec46f48e6cf15a834271c3d3386deac Mon Sep 17 00:00:00 2001
+From: Gaetan Nadon <memsize@videotron.ca>
+Date: Tue, 17 Sep 2013 19:55:37 +0000
+Subject: Remove usage of mibstore.h (removed from server)
+
+The module had a compile error for this missing header file.
+
+Changes similar to vmware commit
+23d87c92b7211cc5249eefe4ab3a2c7f370e279e
+
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-ark/commit/?id=3a3eb72baec46f48e6cf15a834271c3d3386deac
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/ark_driver.c b/src/ark_driver.c
+index b7c287c..65cfe84 100644
+--- a/src/ark_driver.c
++++ b/src/ark_driver.c
+@@ -39,7 +39,6 @@
+ #include "compiler.h"
+ #include "mipointer.h"
+ #include "micmap.h"
+-#include "mibstore.h"
+ #include "fb.h"
+ #include "ark.h"
+
+@@ -538,7 +537,6 @@ static Bool ARKScreenInit(SCREEN_INIT_ARGS_DECL)
+
+ fbPictureInit (pScreen, 0, 0);
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+
+ if (!pARK->NoAccel) {
+--
+cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 3a3eb72baec46f48e6cf15a834271c3d3386deac Mon Sep 17 00:00:00 2001
-From: Gaetan Nadon <memsize@videotron.ca>
-Date: Tue, 17 Sep 2013 19:55:37 +0000
-Subject: Remove usage of mibstore.h (removed from server)
-
-The module had a compile error for this missing header file.
-
-Changes similar to vmware commit
-23d87c92b7211cc5249eefe4ab3a2c7f370e279e
-
-Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-ark/commit/?id=3a3eb72baec46f48e6cf15a834271c3d3386deac
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/ark_driver.c b/src/ark_driver.c
-index b7c287c..65cfe84 100644
---- a/src/ark_driver.c
-+++ b/src/ark_driver.c
-@@ -39,7 +39,6 @@
- #include "compiler.h"
- #include "mipointer.h"
- #include "micmap.h"
--#include "mibstore.h"
- #include "fb.h"
- #include "ark.h"
-
-@@ -538,7 +537,6 @@ static Bool ARKScreenInit(SCREEN_INIT_ARGS_DECL)
-
- fbPictureInit (pScreen, 0, 0);
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
-
- if (!pARK->NoAccel) {
---
-cgit v0.9.0.2-2-gbebe
--- /dev/null
+XAA support was removed from xorg xserver
+http://cgit.freedesktop.org/xorg/xserver/commit/?id=e191e296e6e7861978ea4a0ae9aa7b780e52732b
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff -uNr xf86-video-ati-6.14.6.org/configure.ac xf86-video-ati-6.14.6/configure.ac
+--- xf86-video-ati-6.14.6.org/configure.ac 2012-06-29 15:46:11.000000000 +0200
++++ xf86-video-ati-6.14.6/configure.ac 2014-03-29 17:21:35.805208243 +0100
+@@ -163,8 +163,6 @@
+ AM_CONDITIONAL(DRM_MODE, test x$DRM_MODE = xyes)
+ AM_CONDITIONAL(LIBUDEV, test x$LIBUDEV = xyes)
+
+-AC_DEFINE(USE_XAA, 1, [Build support for XAA])
+-
+ # Properly handle EXA.
+ AC_MSG_CHECKING([whether to enable EXA support])
+ if test "x$EXA" = xyes; then
--- /dev/null
+patch adapted from upstream:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=e8cb0b721e6ea251f85c799ca0563bfa59a2d37c
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff -uNr xf86-video-ati-6.14.6.org/src/radeon_driver.c xf86-video-ati-6.14.6/src/radeon_driver.c
+--- xf86-video-ati-6.14.6.org/src/radeon_driver.c 2012-06-25 10:19:41.000000000 +0200
++++ xf86-video-ati-6.14.6/src/radeon_driver.c 2014-03-29 17:27:54.712440644 +0100
+@@ -3753,10 +3753,6 @@
+ RADEONInitMemMapRegisters(pScrn, info->ModeReg, info);
+ RADEONRestoreMemMapRegisters(pScrn, info->ModeReg);
+
+- /* Backing store setup */
+- xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+- "Initializing backing store\n");
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+
+ /* DRI finalisation */
+diff -uNr xf86-video-ati-6.14.6.org/src/radeon_kms.c xf86-video-ati-6.14.6/src/radeon_kms.c
+--- xf86-video-ati-6.14.6.org/src/radeon_kms.c 2012-06-29 15:45:35.000000000 +0200
++++ xf86-video-ati-6.14.6/src/radeon_kms.c 2014-03-29 17:28:02.328340925 +0100
+@@ -1036,10 +1036,6 @@
+ #endif
+
+ pScrn->vtSema = TRUE;
+- /* Backing store setup */
+- xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+- "Initializing backing store\n");
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+
+
--- /dev/null
+Fix compile error, inspired by
+http://cgit.freedesktop.org/xorg/driver/xf86-video-vmware/commit/?id=e26dec8f5278df74a102493bf6d2d8444dab5d6d
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff -uNr xf86-video-ati-6.14.6.org/src/radeon_driver.c xf86-video-ati-6.14.6/src/radeon_driver.c
+--- xf86-video-ati-6.14.6.org/src/radeon_driver.c 2012-06-25 10:19:41.000000000 +0200
++++ xf86-video-ati-6.14.6/src/radeon_driver.c 2014-03-29 18:03:47.401381113 +0100
+@@ -99,6 +99,7 @@
+ #endif
+ #include "xf86cmap.h"
+ #include "vbe.h"
++#include <xorgVersion.h>
+
+ #include "shadow.h"
+ /* vgaHW definitions */
+@@ -6440,7 +6437,11 @@
+ if (info->dri && info->dri->pDamage) {
+ PixmapPtr pPix = pScreen->GetScreenPixmap(pScreen);
+
++#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,14,99,2,0)
++ DamageUnregister(info->dri->pDamage);
++#else
+ DamageUnregister(&pPix->drawable, info->dri->pDamage);
++#endif
+ DamageDestroy(info->dri->pDamage);
+ info->dri->pDamage = NULL;
+ }
+++ /dev/null
-XAA support was removed from xorg xserver
-http://cgit.freedesktop.org/xorg/xserver/commit/?id=e191e296e6e7861978ea4a0ae9aa7b780e52732b
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff -uNr xf86-video-ati-6.14.6.org/configure.ac xf86-video-ati-6.14.6/configure.ac
---- xf86-video-ati-6.14.6.org/configure.ac 2012-06-29 15:46:11.000000000 +0200
-+++ xf86-video-ati-6.14.6/configure.ac 2014-03-29 17:21:35.805208243 +0100
-@@ -163,8 +163,6 @@
- AM_CONDITIONAL(DRM_MODE, test x$DRM_MODE = xyes)
- AM_CONDITIONAL(LIBUDEV, test x$LIBUDEV = xyes)
-
--AC_DEFINE(USE_XAA, 1, [Build support for XAA])
--
- # Properly handle EXA.
- AC_MSG_CHECKING([whether to enable EXA support])
- if test "x$EXA" = xyes; then
+++ /dev/null
-patch adapted from upstream:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=e8cb0b721e6ea251f85c799ca0563bfa59a2d37c
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff -uNr xf86-video-ati-6.14.6.org/src/radeon_driver.c xf86-video-ati-6.14.6/src/radeon_driver.c
---- xf86-video-ati-6.14.6.org/src/radeon_driver.c 2012-06-25 10:19:41.000000000 +0200
-+++ xf86-video-ati-6.14.6/src/radeon_driver.c 2014-03-29 17:27:54.712440644 +0100
-@@ -3753,10 +3753,6 @@
- RADEONInitMemMapRegisters(pScrn, info->ModeReg, info);
- RADEONRestoreMemMapRegisters(pScrn, info->ModeReg);
-
-- /* Backing store setup */
-- xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-- "Initializing backing store\n");
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
-
- /* DRI finalisation */
-diff -uNr xf86-video-ati-6.14.6.org/src/radeon_kms.c xf86-video-ati-6.14.6/src/radeon_kms.c
---- xf86-video-ati-6.14.6.org/src/radeon_kms.c 2012-06-29 15:45:35.000000000 +0200
-+++ xf86-video-ati-6.14.6/src/radeon_kms.c 2014-03-29 17:28:02.328340925 +0100
-@@ -1036,10 +1036,6 @@
- #endif
-
- pScrn->vtSema = TRUE;
-- /* Backing store setup */
-- xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-- "Initializing backing store\n");
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
-
-
+++ /dev/null
-Fix compile error, inspired by
-http://cgit.freedesktop.org/xorg/driver/xf86-video-vmware/commit/?id=e26dec8f5278df74a102493bf6d2d8444dab5d6d
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff -uNr xf86-video-ati-6.14.6.org/src/radeon_driver.c xf86-video-ati-6.14.6/src/radeon_driver.c
---- xf86-video-ati-6.14.6.org/src/radeon_driver.c 2012-06-25 10:19:41.000000000 +0200
-+++ xf86-video-ati-6.14.6/src/radeon_driver.c 2014-03-29 18:03:47.401381113 +0100
-@@ -99,6 +99,7 @@
- #endif
- #include "xf86cmap.h"
- #include "vbe.h"
-+#include <xorgVersion.h>
-
- #include "shadow.h"
- /* vgaHW definitions */
-@@ -6440,7 +6437,11 @@
- if (info->dri && info->dri->pDamage) {
- PixmapPtr pPix = pScreen->GetScreenPixmap(pScreen);
-
-+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,14,99,2,0)
-+ DamageUnregister(info->dri->pDamage);
-+#else
- DamageUnregister(&pPix->drawable, info->dri->pDamage);
-+#endif
- DamageDestroy(info->dri->pDamage);
- info->dri->pDamage = NULL;
- }
--- /dev/null
+taken from upstream to fix FTBFS on xserver 1.15 and up
+http://cgit.freedesktop.org/xorg/driver/xf86-video-geode/commit/?id=9707a7a5eac25536a5150fc12d9ace52420b4d36
+http://cgit.freedesktop.org/xorg/driver/xf86-video-geode/commit/?id=70b131d09b7d21df1d1ffcf6a4e50d3086924228
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff -uNr xf86-video-geode-2.11.15.org/src/geode_dcon.c xf86-video-geode-2.11.15/src/geode_dcon.c
+--- xf86-video-geode-2.11.15.org/src/geode_dcon.c 2013-10-09 13:47:09.000000000 +0200
++++ xf86-video-geode-2.11.15/src/geode_dcon.c 2014-03-29 12:33:46.718311451 +0100
+@@ -29,6 +29,7 @@
+
+ /* Includes that are used by all drivers */
+ #include <xf86.h>
++#include <xf86Modes.h>
+ #include <xf86_OSproc.h>
+ #include <compiler.h>
+
+++ /dev/null
-taken from upstream to fix FTBFS on xserver 1.15 and up
-http://cgit.freedesktop.org/xorg/driver/xf86-video-geode/commit/?id=9707a7a5eac25536a5150fc12d9ace52420b4d36
-http://cgit.freedesktop.org/xorg/driver/xf86-video-geode/commit/?id=70b131d09b7d21df1d1ffcf6a4e50d3086924228
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff -uNr xf86-video-geode-2.11.15.org/src/geode_dcon.c xf86-video-geode-2.11.15/src/geode_dcon.c
---- xf86-video-geode-2.11.15.org/src/geode_dcon.c 2013-10-09 13:47:09.000000000 +0200
-+++ xf86-video-geode-2.11.15/src/geode_dcon.c 2014-03-29 12:33:46.718311451 +0100
-@@ -29,6 +29,7 @@
-
- /* Includes that are used by all drivers */
- #include <xf86.h>
-+#include <xf86Modes.h>
- #include <xf86_OSproc.h>
- #include <compiler.h>
-
--- /dev/null
+From 073d5b0b392781bf4a6aa7f9e2dbe2ae51caed2c Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 25 Sep 2012 12:54:38 +0000
+Subject: Remove mibstore.h
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-glint/commit/?id=073d5b0b392781bf4a6aa7f9e2dbe2ae51caed2c
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/glint_driver.c b/src/glint_driver.c
+index b6d20a9..aa78516 100644
+--- a/src/glint_driver.c
++++ b/src/glint_driver.c
+@@ -52,8 +52,6 @@
+ #include "compiler.h"
+ #include "mipointer.h"
+
+-#include "mibstore.h"
+-
+ #include "pm3_regs.h"
+ #include "glint_regs.h"
+ #include "IBM.h"
+@@ -2904,7 +2902,6 @@ GLINTScreenInit(SCREEN_INIT_ARGS_DECL)
+ }
+ }
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+--
+cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 073d5b0b392781bf4a6aa7f9e2dbe2ae51caed2c Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:54:38 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-glint/commit/?id=073d5b0b392781bf4a6aa7f9e2dbe2ae51caed2c
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/glint_driver.c b/src/glint_driver.c
-index b6d20a9..aa78516 100644
---- a/src/glint_driver.c
-+++ b/src/glint_driver.c
-@@ -52,8 +52,6 @@
- #include "compiler.h"
- #include "mipointer.h"
-
--#include "mibstore.h"
--
- #include "pm3_regs.h"
- #include "glint_regs.h"
- #include "IBM.h"
-@@ -2904,7 +2902,6 @@ GLINTScreenInit(SCREEN_INIT_ARGS_DECL)
- }
- }
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
- xf86SetSilkenMouse(pScreen);
-
---
-cgit v0.9.0.2-2-gbebe
--- /dev/null
+From c87753733a6e1f85d1d037dced0b47ce0cf41658 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 25 Sep 2012 12:54:40 +0000
+Subject: Remove mibstore.h
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-i128/commit/?id=c87753733a6e1f85d1d037dced0b47ce0cf41658
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/i128_driver.c b/src/i128_driver.c
+index a0f08c0..51a4135 100644
+--- a/src/i128_driver.c
++++ b/src/i128_driver.c
+@@ -50,8 +50,6 @@
+ /* All drivers initialising the SW cursor need this */
+ #include "mipointer.h"
+
+-/* All drivers implementing backing store need this */
+-#include "mibstore.h"
+ #include "micmap.h"
+
+ #include "xf86DDC.h"
+@@ -1556,7 +1554,6 @@ I128ScreenInit(SCREEN_INIT_ARGS_DECL)
+ return FALSE;
+ }
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+--
+cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From c87753733a6e1f85d1d037dced0b47ce0cf41658 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:54:40 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-i128/commit/?id=c87753733a6e1f85d1d037dced0b47ce0cf41658
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/i128_driver.c b/src/i128_driver.c
-index a0f08c0..51a4135 100644
---- a/src/i128_driver.c
-+++ b/src/i128_driver.c
-@@ -50,8 +50,6 @@
- /* All drivers initialising the SW cursor need this */
- #include "mipointer.h"
-
--/* All drivers implementing backing store need this */
--#include "mibstore.h"
- #include "micmap.h"
-
- #include "xf86DDC.h"
-@@ -1556,7 +1554,6 @@ I128ScreenInit(SCREEN_INIT_ARGS_DECL)
- return FALSE;
- }
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
- xf86SetSilkenMouse(pScreen);
-
---
-cgit v0.9.0.2-2-gbebe
--- /dev/null
+--- a/configure.ac 2008-06-23 10:39:28.000000000 -0400
++++ b/configure.ac 2008-06-23 10:40:46.000000000 -0400
+@@ -85,14 +85,20 @@ sdkdir=$(pkg-config --variable=sdkdir xo
+ AC_HEADER_STDC
+
+ if test "$DRI" != no; then
+- AC_CHECK_FILE([${sdkdir}/dri.h],
++ if test "$cross_compiling" = "no" ; then
++ AC_CHECK_FILE([${sdkdir}/dri.h],
+ [have_dri_h="yes"], [have_dri_h="no"])
+- AC_CHECK_FILE([${sdkdir}/sarea.h],
++ AC_CHECK_FILE([${sdkdir}/sarea.h],
+ [have_sarea_h="yes"], [have_sarea_h="no"])
+- AC_CHECK_FILE([${sdkdir}/dristruct.h],
++ AC_CHECK_FILE([${sdkdir}/dristruct.h],
+ [have_dristruct_h="yes"], [have_dristruct_h="no"])
+- AC_CHECK_FILE([${sdkdir}/damage.h],
++ AC_CHECK_FILE([${sdkdir}/damage.h],
+ [have_damage_h="yes"], [have_damage_h="no"])
++ else
++ have_dri_h="yes"
++ have_sarea_h="yes"
++ have_dristruct_h="yes"
++ fi
+ fi
+
+ AC_MSG_CHECKING([whether to include DRI support])
+++ /dev/null
---- a/configure.ac 2008-06-23 10:39:28.000000000 -0400
-+++ b/configure.ac 2008-06-23 10:40:46.000000000 -0400
-@@ -85,14 +85,20 @@ sdkdir=$(pkg-config --variable=sdkdir xo
- AC_HEADER_STDC
-
- if test "$DRI" != no; then
-- AC_CHECK_FILE([${sdkdir}/dri.h],
-+ if test "$cross_compiling" = "no" ; then
-+ AC_CHECK_FILE([${sdkdir}/dri.h],
- [have_dri_h="yes"], [have_dri_h="no"])
-- AC_CHECK_FILE([${sdkdir}/sarea.h],
-+ AC_CHECK_FILE([${sdkdir}/sarea.h],
- [have_sarea_h="yes"], [have_sarea_h="no"])
-- AC_CHECK_FILE([${sdkdir}/dristruct.h],
-+ AC_CHECK_FILE([${sdkdir}/dristruct.h],
- [have_dristruct_h="yes"], [have_dristruct_h="no"])
-- AC_CHECK_FILE([${sdkdir}/damage.h],
-+ AC_CHECK_FILE([${sdkdir}/damage.h],
- [have_damage_h="yes"], [have_damage_h="no"])
-+ else
-+ have_dri_h="yes"
-+ have_sarea_h="yes"
-+ have_dristruct_h="yes"
-+ fi
- fi
-
- AC_MSG_CHECKING([whether to include DRI support])
--- /dev/null
+--- xf86-video-mga-1.4.9/configure.ac.orig 2007-06-10 11:55:24.000000000 +0200
++++ xf86-video-mga-1.4.9/configure.ac 2007-06-10 12:00:37.000000000 +0200
+@@ -77,12 +77,18 @@
+ AC_HEADER_STDC
+
+ if test "x$DRI" != xno; then
++ if test "$cross_compiling" = no; then
+ AC_CHECK_FILE([${sdkdir}/dri.h],
+ [have_dri_h="yes"], [have_dri_h="no"])
+ AC_CHECK_FILE([${sdkdir}/sarea.h],
+ [have_sarea_h="yes"], [have_sarea_h="no"])
+ AC_CHECK_FILE([${sdkdir}/dristruct.h],
+ [have_dristruct_h="yes"], [have_dristruct_h="no"])
++ else
++ have_dri_h="yes"
++ have_sarea_h="yes"
++ have_dristruct_h="yes"
++ fi
+ fi
+
+ AC_MSG_CHECKING([whether to include DRI support])
+++ /dev/null
---- xf86-video-mga-1.4.9/configure.ac.orig 2007-06-10 11:55:24.000000000 +0200
-+++ xf86-video-mga-1.4.9/configure.ac 2007-06-10 12:00:37.000000000 +0200
-@@ -77,12 +77,18 @@
- AC_HEADER_STDC
-
- if test "x$DRI" != xno; then
-+ if test "$cross_compiling" = no; then
- AC_CHECK_FILE([${sdkdir}/dri.h],
- [have_dri_h="yes"], [have_dri_h="no"])
- AC_CHECK_FILE([${sdkdir}/sarea.h],
- [have_sarea_h="yes"], [have_sarea_h="no"])
- AC_CHECK_FILE([${sdkdir}/dristruct.h],
- [have_dristruct_h="yes"], [have_dristruct_h="no"])
-+ else
-+ have_dri_h="yes"
-+ have_sarea_h="yes"
-+ have_dristruct_h="yes"
-+ fi
- fi
-
- AC_MSG_CHECKING([whether to include DRI support])
--- /dev/null
+From fc78fe98222b0204b8a2872a529763d6fe5048da Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 25 Sep 2012 12:54:49 +0000
+Subject: Remove mibstore.h
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-nv/commit/?id=fc78fe98222b0204b8a2872a529763d6fe5048da
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/g80_driver.c b/src/g80_driver.c
+index cc4e197..719b96c 100644
+--- a/src/g80_driver.c
++++ b/src/g80_driver.c
+@@ -34,7 +34,6 @@
+ #include <xf86Resources.h>
+ #endif
+ #include <mipointer.h>
+-#include <mibstore.h>
+ #include <micmap.h>
+ #include <xf86cmap.h>
+ #include <fb.h>
+@@ -833,7 +832,6 @@ G80ScreenInit(SCREEN_INIT_ARGS_DECL)
+ }
+ }
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+diff --git a/src/nv_driver.c b/src/nv_driver.c
+index 6dad6e5..8f35334 100644
+--- a/src/nv_driver.c
++++ b/src/nv_driver.c
+@@ -2550,7 +2550,6 @@ NVScreenInit(SCREEN_INIT_ARGS_DECL)
+ if (!pNv->NoAccel)
+ NVAccelInit(pScreen);
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+diff --git a/src/nv_include.h b/src/nv_include.h
+index fb190bf..f174eef 100644
+--- a/src/nv_include.h
++++ b/src/nv_include.h
+@@ -24,9 +24,6 @@
+ /* All drivers initialising the SW cursor need this */
+ #include "mipointer.h"
+
+-/* All drivers implementing backing store need this */
+-#include "mibstore.h"
+-
+ #include "micmap.h"
+
+ #include "xf86DDC.h"
+diff --git a/src/riva_driver.c b/src/riva_driver.c
+index e0667ef..759501e 100644
+--- a/src/riva_driver.c
++++ b/src/riva_driver.c
+@@ -1168,7 +1168,6 @@ RivaScreenInit(SCREEN_INIT_ARGS_DECL)
+ if (!pRiva->NoAccel)
+ RivaAccelInit(pScreen);
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+diff --git a/src/riva_include.h b/src/riva_include.h
+index f2c5302..c7aeef7 100644
+--- a/src/riva_include.h
++++ b/src/riva_include.h
+@@ -22,9 +22,6 @@
+ /* All drivers initialising the SW cursor need this */
+ #include "mipointer.h"
+
+-/* All drivers implementing backing store need this */
+-#include "mibstore.h"
+-
+ #include "micmap.h"
+
+ #include "xf86DDC.h"
+--
+cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From fc78fe98222b0204b8a2872a529763d6fe5048da Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:54:49 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-nv/commit/?id=fc78fe98222b0204b8a2872a529763d6fe5048da
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/g80_driver.c b/src/g80_driver.c
-index cc4e197..719b96c 100644
---- a/src/g80_driver.c
-+++ b/src/g80_driver.c
-@@ -34,7 +34,6 @@
- #include <xf86Resources.h>
- #endif
- #include <mipointer.h>
--#include <mibstore.h>
- #include <micmap.h>
- #include <xf86cmap.h>
- #include <fb.h>
-@@ -833,7 +832,6 @@ G80ScreenInit(SCREEN_INIT_ARGS_DECL)
- }
- }
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
- xf86SetSilkenMouse(pScreen);
-
-diff --git a/src/nv_driver.c b/src/nv_driver.c
-index 6dad6e5..8f35334 100644
---- a/src/nv_driver.c
-+++ b/src/nv_driver.c
-@@ -2550,7 +2550,6 @@ NVScreenInit(SCREEN_INIT_ARGS_DECL)
- if (!pNv->NoAccel)
- NVAccelInit(pScreen);
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
- xf86SetSilkenMouse(pScreen);
-
-diff --git a/src/nv_include.h b/src/nv_include.h
-index fb190bf..f174eef 100644
---- a/src/nv_include.h
-+++ b/src/nv_include.h
-@@ -24,9 +24,6 @@
- /* All drivers initialising the SW cursor need this */
- #include "mipointer.h"
-
--/* All drivers implementing backing store need this */
--#include "mibstore.h"
--
- #include "micmap.h"
-
- #include "xf86DDC.h"
-diff --git a/src/riva_driver.c b/src/riva_driver.c
-index e0667ef..759501e 100644
---- a/src/riva_driver.c
-+++ b/src/riva_driver.c
-@@ -1168,7 +1168,6 @@ RivaScreenInit(SCREEN_INIT_ARGS_DECL)
- if (!pRiva->NoAccel)
- RivaAccelInit(pScreen);
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
- xf86SetSilkenMouse(pScreen);
-
-diff --git a/src/riva_include.h b/src/riva_include.h
-index f2c5302..c7aeef7 100644
---- a/src/riva_include.h
-+++ b/src/riva_include.h
-@@ -22,9 +22,6 @@
- /* All drivers initialising the SW cursor need this */
- #include "mipointer.h"
-
--/* All drivers implementing backing store need this */
--#include "mibstore.h"
--
- #include "micmap.h"
-
- #include "xf86DDC.h"
---
-cgit v0.9.0.2-2-gbebe
--- /dev/null
+--- a/configure.ac 2008-06-23 10:39:28.000000000 -0400
++++ b/configure.ac 2008-06-23 10:40:46.000000000 -0400
+@@ -85,14 +85,20 @@ sdkdir=$(pkg-config --variable=sdkdir xo
+ AC_HEADER_STDC
+
+ if test "$DRI" != no; then
+- AC_CHECK_FILE([${sdkdir}/dri.h],
++ if test "$cross_compiling" = "no" ; then
++ AC_CHECK_FILE([${sdkdir}/dri.h],
+ [have_dri_h="yes"], [have_dri_h="no"])
+- AC_CHECK_FILE([${sdkdir}/sarea.h],
++ AC_CHECK_FILE([${sdkdir}/sarea.h],
+ [have_sarea_h="yes"], [have_sarea_h="no"])
+- AC_CHECK_FILE([${sdkdir}/dristruct.h],
++ AC_CHECK_FILE([${sdkdir}/dristruct.h],
+ [have_dristruct_h="yes"], [have_dristruct_h="no"])
+- AC_CHECK_FILE([${sdkdir}/damage.h],
++ AC_CHECK_FILE([${sdkdir}/damage.h],
+ [have_damage_h="yes"], [have_damage_h="no"])
++ else
++ have_dri_h="yes"
++ have_sarea_h="yes"
++ have_dristruct_h="yes"
++ fi
+ fi
+
+ AC_MSG_CHECKING([whether to include DRI support])
+++ /dev/null
---- a/configure.ac 2008-06-23 10:39:28.000000000 -0400
-+++ b/configure.ac 2008-06-23 10:40:46.000000000 -0400
-@@ -85,14 +85,20 @@ sdkdir=$(pkg-config --variable=sdkdir xo
- AC_HEADER_STDC
-
- if test "$DRI" != no; then
-- AC_CHECK_FILE([${sdkdir}/dri.h],
-+ if test "$cross_compiling" = "no" ; then
-+ AC_CHECK_FILE([${sdkdir}/dri.h],
- [have_dri_h="yes"], [have_dri_h="no"])
-- AC_CHECK_FILE([${sdkdir}/sarea.h],
-+ AC_CHECK_FILE([${sdkdir}/sarea.h],
- [have_sarea_h="yes"], [have_sarea_h="no"])
-- AC_CHECK_FILE([${sdkdir}/dristruct.h],
-+ AC_CHECK_FILE([${sdkdir}/dristruct.h],
- [have_dristruct_h="yes"], [have_dristruct_h="no"])
-- AC_CHECK_FILE([${sdkdir}/damage.h],
-+ AC_CHECK_FILE([${sdkdir}/damage.h],
- [have_damage_h="yes"], [have_damage_h="no"])
-+ else
-+ have_dri_h="yes"
-+ have_sarea_h="yes"
-+ have_dristruct_h="yes"
-+ fi
- fi
-
- AC_MSG_CHECKING([whether to include DRI support])
--- /dev/null
+--- a/configure.ac 2008-05-21 16:04:23.000000000 -0400
++++ b/configure.ac 2008-06-23 11:41:50.000000000 -0400
+@@ -68,12 +68,18 @@ sdkdir=$(pkg-config --variable=sdkdir xo
+ AC_HEADER_STDC
+
+ if test "$DRI" != no; then
+- AC_CHECK_FILE([${sdkdir}/dri.h],
+- [have_dri_h="yes"], [have_dri_h="no"])
+- AC_CHECK_FILE([${sdkdir}/sarea.h],
+- [have_sarea_h="yes"], [have_sarea_h="no"])
+- AC_CHECK_FILE([${sdkdir}/dristruct.h],
+- [have_dristruct_h="yes"], [have_dristruct_h="no"])
++ if test "$cross_compiling" = "no" ; then
++ AC_CHECK_FILE([${sdkdir}/dri.h],
++ [have_dri_h="yes"], [have_dri_h="no"])
++ AC_CHECK_FILE([${sdkdir}/sarea.h],
++ [have_sarea_h="yes"], [have_sarea_h="no"])
++ AC_CHECK_FILE([${sdkdir}/dristruct.h],
++ [have_dristruct_h="yes"], [have_dristruct_h="no"])
++ else
++ have_dri_h="yes"
++ have_sarea_h="yes"
++ have_dristruct_h="yes"
++ fi
+ fi
+
+ AC_MSG_CHECKING([whether to include DRI support])
+++ /dev/null
---- a/configure.ac 2008-05-21 16:04:23.000000000 -0400
-+++ b/configure.ac 2008-06-23 11:41:50.000000000 -0400
-@@ -68,12 +68,18 @@ sdkdir=$(pkg-config --variable=sdkdir xo
- AC_HEADER_STDC
-
- if test "$DRI" != no; then
-- AC_CHECK_FILE([${sdkdir}/dri.h],
-- [have_dri_h="yes"], [have_dri_h="no"])
-- AC_CHECK_FILE([${sdkdir}/sarea.h],
-- [have_sarea_h="yes"], [have_sarea_h="no"])
-- AC_CHECK_FILE([${sdkdir}/dristruct.h],
-- [have_dristruct_h="yes"], [have_dristruct_h="no"])
-+ if test "$cross_compiling" = "no" ; then
-+ AC_CHECK_FILE([${sdkdir}/dri.h],
-+ [have_dri_h="yes"], [have_dri_h="no"])
-+ AC_CHECK_FILE([${sdkdir}/sarea.h],
-+ [have_sarea_h="yes"], [have_sarea_h="no"])
-+ AC_CHECK_FILE([${sdkdir}/dristruct.h],
-+ [have_dristruct_h="yes"], [have_dristruct_h="no"])
-+ else
-+ have_dri_h="yes"
-+ have_sarea_h="yes"
-+ have_dristruct_h="yes"
-+ fi
- fi
-
- AC_MSG_CHECKING([whether to include DRI support])
--- /dev/null
+From f19d7e463c30f1364e82e8c9f87b8a8407d53680 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Thu, 10 Jan 2013 03:59:39 +0000
+Subject: Remove miInitializeBackingStore()
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-siliconmotion/commit/?id=f19d7e463c30f1364e82e8c9f87b8a8407d53680
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/smi_driver.c b/src/smi_driver.c
+index 4794571..134db79 100644
+--- a/src/smi_driver.c
++++ b/src/smi_driver.c
+@@ -1750,8 +1750,6 @@ SMI_ScreenInit(SCREEN_INIT_ARGS_DECL)
+ "Done writing mode. Register dump:\n");
+ SMI_PrintRegs(pScrn);
+
+- miInitializeBackingStore(pScreen);
+-
+ #ifdef HAVE_XMODES
+ xf86DiDGAInit(pScreen, (unsigned long)(pSmi->FBBase + pScrn->fbOffset));
+ #endif
+--
+cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From f19d7e463c30f1364e82e8c9f87b8a8407d53680 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Thu, 10 Jan 2013 03:59:39 +0000
-Subject: Remove miInitializeBackingStore()
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-siliconmotion/commit/?id=f19d7e463c30f1364e82e8c9f87b8a8407d53680
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/smi_driver.c b/src/smi_driver.c
-index 4794571..134db79 100644
---- a/src/smi_driver.c
-+++ b/src/smi_driver.c
-@@ -1750,8 +1750,6 @@ SMI_ScreenInit(SCREEN_INIT_ARGS_DECL)
- "Done writing mode. Register dump:\n");
- SMI_PrintRegs(pScrn);
-
-- miInitializeBackingStore(pScreen);
--
- #ifdef HAVE_XMODES
- xf86DiDGAInit(pScreen, (unsigned long)(pSmi->FBBase + pScrn->fbOffset));
- #endif
---
-cgit v0.9.0.2-2-gbebe
--- /dev/null
+--- xf86-video-sis-0.9.3/configure.ac.orig 2007-06-10 21:00:29.000000000 +0200
++++ xf86-video-sis-0.9.3/configure.ac 2007-06-10 21:00:45.000000000 +0200
+@@ -71,12 +71,18 @@
+ AC_HEADER_STDC
+
+ if test "$DRI" != no; then
++ if test "$cross_compiling" = "no" ; then
+ AC_CHECK_FILE([${sdkdir}/dri.h],
+ [have_dri_h="yes"], [have_dri_h="no"])
+ AC_CHECK_FILE([${sdkdir}/sarea.h],
+ [have_sarea_h="yes"], [have_sarea_h="no"])
+ AC_CHECK_FILE([${sdkdir}/dristruct.h],
+ [have_dristruct_h="yes"], [have_dristruct_h="no"])
++ else
++ have_dri_h="yes"
++ have_sarea_h="yes"
++ have_dristruct_h="yes"
++ fi
+ fi
+
+ AC_MSG_CHECKING([whether to include DRI support])
--- /dev/null
+From 926d4f655c8491b68a338f50c810f6729686ec9f Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 25 Sep 2012 12:54:51 +0000
+Subject: Remove mibstore.h
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=926d4f655c8491b68a338f50c810f6729686ec9f
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index 4c9b9cb..46cfefd 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -57,7 +57,6 @@
+ #include "fb.h"
+ #include "micmap.h"
+ #include "mipointer.h"
+-#include "mibstore.h"
+ #include "edid.h"
+
+ #define SIS_NEED_inSISREG
+@@ -8883,7 +8882,6 @@ SISScreenInit(SCREEN_INIT_ARGS_DECL)
+ }
+ pSiS->SiSFastVidCopyDone = TRUE;
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+--
+cgit v0.9.0.2-2-gbebe
--- /dev/null
+From 339fb3bc032b9f35b07b90480ae82a0fd352e078 Mon Sep 17 00:00:00 2001
+From: Jan Lindemann <jan@jannet.de>
+Date: Thu, 30 Aug 2012 18:09:10 +0000
+Subject: Replace xf86UnMapVidMem with pci_device_unmap_range
+
+Mixing pci_device_map_range with xf86UnMapVidMem doesn't work too well.
+
+X.Org bug#18028 <https://bugs.freedesktop.org/show_bug.cgi?id=18028>
+
+Bug found by Bryan Henderson <bryanh@giraffe-data.com>
+
+Signed-off-by: Julien Cristau <jcristau@debian.org>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=339fb3bc032b9f35b07b90480ae82a0fd352e078
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index 61e8075..4c9b9cb 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -7344,7 +7344,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
+ if(pSiSEnt->MapCountIOBase) {
+ pSiSEnt->MapCountIOBase--;
+ if((pSiSEnt->MapCountIOBase == 0) || (pSiSEnt->forceUnmapIOBase)) {
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBase, (pSiS->mmioSize * 1024));
++#else
++ pci_device_unmap_range(pSiS->PciInfo, pSiSEnt->IOBase, (pSiS->mmioSize * 1024));
++#endif
+ pSiSEnt->IOBase = NULL;
+ pSiSEnt->MapCountIOBase = 0;
+ pSiSEnt->forceUnmapIOBase = FALSE;
+@@ -7355,7 +7359,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
+ if(pSiSEnt->MapCountIOBaseDense) {
+ pSiSEnt->MapCountIOBaseDense--;
+ if((pSiSEnt->MapCountIOBaseDense == 0) || (pSiSEnt->forceUnmapIOBaseDense)) {
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024));
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024));
++#endif
+ pSiSEnt->IOBaseDense = NULL;
+ pSiSEnt->MapCountIOBaseDense = 0;
+ pSiSEnt->forceUnmapIOBaseDense = FALSE;
+@@ -7366,7 +7374,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
+ if(pSiSEnt->MapCountFbBase) {
+ pSiSEnt->MapCountFbBase--;
+ if((pSiSEnt->MapCountFbBase == 0) || (pSiSEnt->forceUnmapFbBase)) {
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize);
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize);
++#endif
+ pSiSEnt->FbBase = pSiSEnt->RealFbBase = NULL;
+ pSiSEnt->MapCountFbBase = 0;
+ pSiSEnt->forceUnmapFbBase = FALSE;
+@@ -7376,13 +7388,25 @@ SISUnmapMem(ScrnInfoPtr pScrn)
+ }
+ } else {
+ #endif
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024));
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024));
++#endif
+ pSiS->IOBase = NULL;
+ #ifdef __alpha__
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024));
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024));
++#endif
+ pSiS->IOBaseDense = NULL;
+ #endif
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->RealFbBase, pSiS->FbMapSize);
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->RealFbBase, pSiS->FbMapSize);
++#endif
+ pSiS->FbBase = pSiS->RealFbBase = NULL;
+ #ifdef SISDUALHEAD
+ }
+--
+cgit v0.9.0.2-2-gbebe
--- /dev/null
+From 7d4402786b758de3e6ce2641e15a39d612d5c518 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Mon, 15 Oct 2012 23:11:30 +0000
+Subject: Stop including xf86Priv.h
+
+As the name might suggest, it's server-private.
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=7d4402786b758de3e6ce2641e15a39d612d5c518
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/sis.h b/src/sis.h
+index 46fca2a..20e6134 100644
+--- a/src/sis.h
++++ b/src/sis.h
+@@ -75,7 +75,6 @@
+
+ #include "compiler.h"
+ #include "xf86Pci.h"
+-#include "xf86Priv.h"
+ #include "xf86_OSproc.h"
+ #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+ #include "xf86Resources.h"
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index 46cfefd..cefe503 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -93,6 +93,10 @@
+ #include "dri.h"
+ #endif
+
++#ifndef DEFAULT_DPI
++#define DEFAULT_DPI 96
++#endif
++
+ /*
+ * LookupWindow was removed with video abi 11.
+ */
+--
+cgit v0.9.0.2-2-gbebe
--- /dev/null
+From 0a4336efaafac4c34d4287b5df586bbb418f7f76 Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sat, 26 Oct 2013 21:27:17 +0000
+Subject: Fix HDisplay/VDisplay typos
+
+Found by gcc -Wlogicalops:
+
+sis_driver.c: In function 'SiS_CheckModeCRT2':
+sis_driver.c:13754:5: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
+sis_driver.c:13755:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
+sis_driver.c:13756:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
+sis_driver.c:13758:5: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
+sis_driver.c:13759:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=0a4336efaafac4c34d4287b5df586bbb418f7f76
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index cefe503..80b8d51 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -13751,12 +13751,12 @@ SiS_CheckModeCRT2(ScrnInfoPtr pScrn, DisplayModePtr mode, unsigned int VBFlags,
+ if( ((mode->HDisplay <= pSiS->LCDwidth) &&
+ (mode->VDisplay <= pSiS->LCDheight)) ||
+ ((pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL848) &&
+- (((mode->HDisplay == 1360) && (mode->HDisplay == 768)) ||
+- ((mode->HDisplay == 1024) && (mode->HDisplay == 768)) ||
+- ((mode->HDisplay == 800) && (mode->HDisplay == 600)))) ||
++ (((mode->HDisplay == 1360) && (mode->VDisplay == 768)) ||
++ ((mode->HDisplay == 1024) && (mode->VDisplay == 768)) ||
++ ((mode->HDisplay == 800) && (mode->VDisplay == 600)))) ||
+ ((pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL856) &&
+- (((mode->HDisplay == 1024) && (mode->HDisplay == 768)) ||
+- ((mode->HDisplay == 800) && (mode->HDisplay == 600)))) ) {
++ (((mode->HDisplay == 1024) && (mode->VDisplay == 768)) ||
++ ((mode->HDisplay == 800) && (mode->VDisplay == 600)))) ) {
+
+ ModeIndex = SiS_GetModeID_LCD(pSiS->VGAEngine, VBFlags, mode->HDisplay, mode->VDisplay, i,
+ pSiS->FSTN, pSiS->SiS_Pr->SiS_CustomT, pSiS->LCDwidth, pSiS->LCDheight,
+--
+cgit v0.9.0.2-2-gbebe
--- /dev/null
+From 49796d6a3274adc0250ee07faa6bc63e41c98740 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 21 Nov 2013 22:21:18 +0000
+Subject: Fix format-security warnings
+
+sis_driver.c: In function 'SISErrorLog':
+sis_driver.c:432:5: error: format not a string literal and no format arguments [-Werror=format-security]
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
+ ^
+sis_driver.c:439:5: error: format not a string literal and no format arguments [-Werror=format-security]
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
+ ^
+sis_driver.c: In function 'SiSUpdateXineramaScreenInfo':
+sis_driver.c:1917:4: error: format not a string literal and no format arguments [-Werror=format-security]
+ xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
+ ^
+sis_driver.c:1924:8: error: format not a string literal and no format arguments [-Werror=format-security]
+ xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=49796d6a3274adc0250ee07faa6bc63e41c98740
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index 80b8d51..bd9c4e1 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -429,14 +429,14 @@ SISErrorLog(ScrnInfoPtr pScrn, const char *format, ...)
+ static const char *str = "**************************************************\n";
+
+ va_start(ap, format);
+- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ " ERROR:\n");
+ xf86VDrvMsgVerb(pScrn->scrnIndex, X_ERROR, 1, format, ap);
+ va_end(ap);
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ " END OF MESSAGE\n");
+- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
+ }
+
+ static void
+@@ -1914,14 +1914,14 @@ SiSUpdateXineramaScreenInfo(ScrnInfoPtr pScrn1)
+ if(infochanged && !usenonrect) {
+ xf86DrvMsg(pScrn1->scrnIndex, X_INFO,
+ "Virtual screen size does not match maximum display modes...\n");
+- xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
++ xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "%s", rectxine);
+
+ }
+ } else if(infochanged && usenonrect) {
+ usenonrect = FALSE;
+ xf86DrvMsg(pScrn1->scrnIndex, X_INFO,
+ "Only clone modes available for this virtual screen size...\n");
+- xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
++ xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "%s", rectxine);
+ }
+
+ if(pSiS->maxCRT1_X1) { /* Means we have at least one non-clone mode */
+--
+cgit v0.9.0.2-2-gbebe
--- /dev/null
+Fetch from:
+https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xf86-video-sis&id=7aaa7a9786ce5654df877311909244e0a6c42fd1
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+--- xf86-video-sis-0.10.7/src/sis_driver.c 2013-03-10 13:57:50.000000000 +0100
++++ xf86-video-sis-0.10.7/src/sis_driver.c.new 2013-03-10 13:54:48.645203559 +0100
+@@ -9378,7 +9378,15 @@
+ }
+ if(doit) {
+ sigstate = xf86BlockSIGIO();
+-#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 18
++ {
++ double dx = x, dy = y;
++ miPointerSetPosition(inputInfo.pointer, Absolute, &dx, &dy,
++ NULL, NULL);
++ x = (int)dx;
++ y = (int)dy;
++ }
++#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
+ {
+ double dx = x, dy = y;
+ miPointerSetPosition(inputInfo.pointer, Absolute, &dx, &dy);
+++ /dev/null
---- xf86-video-sis-0.9.3/configure.ac.orig 2007-06-10 21:00:29.000000000 +0200
-+++ xf86-video-sis-0.9.3/configure.ac 2007-06-10 21:00:45.000000000 +0200
-@@ -71,12 +71,18 @@
- AC_HEADER_STDC
-
- if test "$DRI" != no; then
-+ if test "$cross_compiling" = "no" ; then
- AC_CHECK_FILE([${sdkdir}/dri.h],
- [have_dri_h="yes"], [have_dri_h="no"])
- AC_CHECK_FILE([${sdkdir}/sarea.h],
- [have_sarea_h="yes"], [have_sarea_h="no"])
- AC_CHECK_FILE([${sdkdir}/dristruct.h],
- [have_dristruct_h="yes"], [have_dristruct_h="no"])
-+ else
-+ have_dri_h="yes"
-+ have_sarea_h="yes"
-+ have_dristruct_h="yes"
-+ fi
- fi
-
- AC_MSG_CHECKING([whether to include DRI support])
+++ /dev/null
-From 926d4f655c8491b68a338f50c810f6729686ec9f Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:54:51 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=926d4f655c8491b68a338f50c810f6729686ec9f
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 4c9b9cb..46cfefd 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -57,7 +57,6 @@
- #include "fb.h"
- #include "micmap.h"
- #include "mipointer.h"
--#include "mibstore.h"
- #include "edid.h"
-
- #define SIS_NEED_inSISREG
-@@ -8883,7 +8882,6 @@ SISScreenInit(SCREEN_INIT_ARGS_DECL)
- }
- pSiS->SiSFastVidCopyDone = TRUE;
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
- xf86SetSilkenMouse(pScreen);
-
---
-cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 339fb3bc032b9f35b07b90480ae82a0fd352e078 Mon Sep 17 00:00:00 2001
-From: Jan Lindemann <jan@jannet.de>
-Date: Thu, 30 Aug 2012 18:09:10 +0000
-Subject: Replace xf86UnMapVidMem with pci_device_unmap_range
-
-Mixing pci_device_map_range with xf86UnMapVidMem doesn't work too well.
-
-X.Org bug#18028 <https://bugs.freedesktop.org/show_bug.cgi?id=18028>
-
-Bug found by Bryan Henderson <bryanh@giraffe-data.com>
-
-Signed-off-by: Julien Cristau <jcristau@debian.org>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=339fb3bc032b9f35b07b90480ae82a0fd352e078
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 61e8075..4c9b9cb 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -7344,7 +7344,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
- if(pSiSEnt->MapCountIOBase) {
- pSiSEnt->MapCountIOBase--;
- if((pSiSEnt->MapCountIOBase == 0) || (pSiSEnt->forceUnmapIOBase)) {
-+#ifndef XSERVER_LIBPCIACCESS
- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBase, (pSiS->mmioSize * 1024));
-+#else
-+ pci_device_unmap_range(pSiS->PciInfo, pSiSEnt->IOBase, (pSiS->mmioSize * 1024));
-+#endif
- pSiSEnt->IOBase = NULL;
- pSiSEnt->MapCountIOBase = 0;
- pSiSEnt->forceUnmapIOBase = FALSE;
-@@ -7355,7 +7359,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
- if(pSiSEnt->MapCountIOBaseDense) {
- pSiSEnt->MapCountIOBaseDense--;
- if((pSiSEnt->MapCountIOBaseDense == 0) || (pSiSEnt->forceUnmapIOBaseDense)) {
-+#ifndef XSERVER_LIBPCIACCESS
- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024));
-+#else
-+ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024));
-+#endif
- pSiSEnt->IOBaseDense = NULL;
- pSiSEnt->MapCountIOBaseDense = 0;
- pSiSEnt->forceUnmapIOBaseDense = FALSE;
-@@ -7366,7 +7374,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
- if(pSiSEnt->MapCountFbBase) {
- pSiSEnt->MapCountFbBase--;
- if((pSiSEnt->MapCountFbBase == 0) || (pSiSEnt->forceUnmapFbBase)) {
-+#ifndef XSERVER_LIBPCIACCESS
- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize);
-+#else
-+ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize);
-+#endif
- pSiSEnt->FbBase = pSiSEnt->RealFbBase = NULL;
- pSiSEnt->MapCountFbBase = 0;
- pSiSEnt->forceUnmapFbBase = FALSE;
-@@ -7376,13 +7388,25 @@ SISUnmapMem(ScrnInfoPtr pScrn)
- }
- } else {
- #endif
-+#ifndef XSERVER_LIBPCIACCESS
- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024));
-+#else
-+ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024));
-+#endif
- pSiS->IOBase = NULL;
- #ifdef __alpha__
-+#ifndef XSERVER_LIBPCIACCESS
- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024));
-+#else
-+ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024));
-+#endif
- pSiS->IOBaseDense = NULL;
- #endif
-+#ifndef XSERVER_LIBPCIACCESS
- xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->RealFbBase, pSiS->FbMapSize);
-+#else
-+ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->RealFbBase, pSiS->FbMapSize);
-+#endif
- pSiS->FbBase = pSiS->RealFbBase = NULL;
- #ifdef SISDUALHEAD
- }
---
-cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 7d4402786b758de3e6ce2641e15a39d612d5c518 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Mon, 15 Oct 2012 23:11:30 +0000
-Subject: Stop including xf86Priv.h
-
-As the name might suggest, it's server-private.
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=7d4402786b758de3e6ce2641e15a39d612d5c518
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis.h b/src/sis.h
-index 46fca2a..20e6134 100644
---- a/src/sis.h
-+++ b/src/sis.h
-@@ -75,7 +75,6 @@
-
- #include "compiler.h"
- #include "xf86Pci.h"
--#include "xf86Priv.h"
- #include "xf86_OSproc.h"
- #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
- #include "xf86Resources.h"
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 46cfefd..cefe503 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -93,6 +93,10 @@
- #include "dri.h"
- #endif
-
-+#ifndef DEFAULT_DPI
-+#define DEFAULT_DPI 96
-+#endif
-+
- /*
- * LookupWindow was removed with video abi 11.
- */
---
-cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 0a4336efaafac4c34d4287b5df586bbb418f7f76 Mon Sep 17 00:00:00 2001
-From: Alan Coopersmith <alan.coopersmith@oracle.com>
-Date: Sat, 26 Oct 2013 21:27:17 +0000
-Subject: Fix HDisplay/VDisplay typos
-
-Found by gcc -Wlogicalops:
-
-sis_driver.c: In function 'SiS_CheckModeCRT2':
-sis_driver.c:13754:5: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-sis_driver.c:13755:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-sis_driver.c:13756:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-sis_driver.c:13758:5: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-sis_driver.c:13759:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-
-Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=0a4336efaafac4c34d4287b5df586bbb418f7f76
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index cefe503..80b8d51 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -13751,12 +13751,12 @@ SiS_CheckModeCRT2(ScrnInfoPtr pScrn, DisplayModePtr mode, unsigned int VBFlags,
- if( ((mode->HDisplay <= pSiS->LCDwidth) &&
- (mode->VDisplay <= pSiS->LCDheight)) ||
- ((pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL848) &&
-- (((mode->HDisplay == 1360) && (mode->HDisplay == 768)) ||
-- ((mode->HDisplay == 1024) && (mode->HDisplay == 768)) ||
-- ((mode->HDisplay == 800) && (mode->HDisplay == 600)))) ||
-+ (((mode->HDisplay == 1360) && (mode->VDisplay == 768)) ||
-+ ((mode->HDisplay == 1024) && (mode->VDisplay == 768)) ||
-+ ((mode->HDisplay == 800) && (mode->VDisplay == 600)))) ||
- ((pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL856) &&
-- (((mode->HDisplay == 1024) && (mode->HDisplay == 768)) ||
-- ((mode->HDisplay == 800) && (mode->HDisplay == 600)))) ) {
-+ (((mode->HDisplay == 1024) && (mode->VDisplay == 768)) ||
-+ ((mode->HDisplay == 800) && (mode->VDisplay == 600)))) ) {
-
- ModeIndex = SiS_GetModeID_LCD(pSiS->VGAEngine, VBFlags, mode->HDisplay, mode->VDisplay, i,
- pSiS->FSTN, pSiS->SiS_Pr->SiS_CustomT, pSiS->LCDwidth, pSiS->LCDheight,
---
-cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 49796d6a3274adc0250ee07faa6bc63e41c98740 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Thu, 21 Nov 2013 22:21:18 +0000
-Subject: Fix format-security warnings
-
-sis_driver.c: In function 'SISErrorLog':
-sis_driver.c:432:5: error: format not a string literal and no format arguments [-Werror=format-security]
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
- ^
-sis_driver.c:439:5: error: format not a string literal and no format arguments [-Werror=format-security]
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
- ^
-sis_driver.c: In function 'SiSUpdateXineramaScreenInfo':
-sis_driver.c:1917:4: error: format not a string literal and no format arguments [-Werror=format-security]
- xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
- ^
-sis_driver.c:1924:8: error: format not a string literal and no format arguments [-Werror=format-security]
- xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=49796d6a3274adc0250ee07faa6bc63e41c98740
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 80b8d51..bd9c4e1 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -429,14 +429,14 @@ SISErrorLog(ScrnInfoPtr pScrn, const char *format, ...)
- static const char *str = "**************************************************\n";
-
- va_start(ap, format);
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
-+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- " ERROR:\n");
- xf86VDrvMsgVerb(pScrn->scrnIndex, X_ERROR, 1, format, ap);
- va_end(ap);
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- " END OF MESSAGE\n");
-- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
-+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
- }
-
- static void
-@@ -1914,14 +1914,14 @@ SiSUpdateXineramaScreenInfo(ScrnInfoPtr pScrn1)
- if(infochanged && !usenonrect) {
- xf86DrvMsg(pScrn1->scrnIndex, X_INFO,
- "Virtual screen size does not match maximum display modes...\n");
-- xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
-+ xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "%s", rectxine);
-
- }
- } else if(infochanged && usenonrect) {
- usenonrect = FALSE;
- xf86DrvMsg(pScrn1->scrnIndex, X_INFO,
- "Only clone modes available for this virtual screen size...\n");
-- xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
-+ xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "%s", rectxine);
- }
-
- if(pSiS->maxCRT1_X1) { /* Means we have at least one non-clone mode */
---
-cgit v0.9.0.2-2-gbebe
+++ /dev/null
-Fetch from:
-https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xf86-video-sis&id=7aaa7a9786ce5654df877311909244e0a6c42fd1
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
---- xf86-video-sis-0.10.7/src/sis_driver.c 2013-03-10 13:57:50.000000000 +0100
-+++ xf86-video-sis-0.10.7/src/sis_driver.c.new 2013-03-10 13:54:48.645203559 +0100
-@@ -9378,7 +9378,15 @@
- }
- if(doit) {
- sigstate = xf86BlockSIGIO();
--#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 18
-+ {
-+ double dx = x, dy = y;
-+ miPointerSetPosition(inputInfo.pointer, Absolute, &dx, &dy,
-+ NULL, NULL);
-+ x = (int)dx;
-+ y = (int)dy;
-+ }
-+#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
- {
- double dx = x, dy = y;
- miPointerSetPosition(inputInfo.pointer, Absolute, &dx, &dy);
--- /dev/null
+--- xf86-video-tdfx-1.3.0/configure.ac.orig 2007-06-10 21:01:54.000000000 +0200
++++ xf86-video-tdfx-1.3.0/configure.ac 2007-06-10 21:02:06.000000000 +0200
+@@ -67,13 +67,20 @@
+ # Checks for header files.
+ AC_HEADER_STDC
+
+-if test "$DRI" != no; then
++if test "x$DRI" != xno; then
++ if test "$cross_compiling" = "no" ; then
+ AC_CHECK_FILE([${sdkdir}/dri.h],
+ [have_dri_h="yes"], [have_dri_h="no"])
+ AC_CHECK_FILE([${sdkdir}/sarea.h],
+ [have_sarea_h="yes"], [have_sarea_h="no"])
+ AC_CHECK_FILE([${sdkdir}/dristruct.h],
+ [have_dristruct_h="yes"], [have_dristruct_h="no"])
++ AC_CHECK_HEADER
++ else
++ have_dri_h="yes"
++ have_sarea_h="yes"
++ have_dristruct_h="yes"
++ fi
+ fi
+
+ AC_MSG_CHECKING([whether to include DRI support])
--- /dev/null
+From 10498d2730c651eb7a1890eb9e728269732e9dad Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 25 Sep 2012 12:54:59 +0000
+Subject: Remove mibstore.h
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-tdfx/commit/?id=10498d2730c651eb7a1890eb9e728269732e9dad
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+diff --git a/src/tdfx_driver.c b/src/tdfx_driver.c
+index ddd5431..412da07 100644
+--- a/src/tdfx_driver.c
++++ b/src/tdfx_driver.c
+@@ -62,10 +62,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ #include "compiler.h"
+
+-/* Drivers using the mi implementation of backing store need: */
+-
+-#include "mibstore.h"
+-
+ /* All drivers using the vgahw module need this */
+ /* This driver needs to be modified to not use vgaHW for multihead operation */
+ #include "vgaHW.h"
+@@ -2373,7 +2369,6 @@ TDFXScreenInit(SCREEN_INIT_ARGS_DECL) {
+ }
+ }
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+--
+cgit v0.9.0.2-2-gbebe
+++ /dev/null
---- xf86-video-tdfx-1.3.0/configure.ac.orig 2007-06-10 21:01:54.000000000 +0200
-+++ xf86-video-tdfx-1.3.0/configure.ac 2007-06-10 21:02:06.000000000 +0200
-@@ -67,13 +67,20 @@
- # Checks for header files.
- AC_HEADER_STDC
-
--if test "$DRI" != no; then
-+if test "x$DRI" != xno; then
-+ if test "$cross_compiling" = "no" ; then
- AC_CHECK_FILE([${sdkdir}/dri.h],
- [have_dri_h="yes"], [have_dri_h="no"])
- AC_CHECK_FILE([${sdkdir}/sarea.h],
- [have_sarea_h="yes"], [have_sarea_h="no"])
- AC_CHECK_FILE([${sdkdir}/dristruct.h],
- [have_dristruct_h="yes"], [have_dristruct_h="no"])
-+ AC_CHECK_HEADER
-+ else
-+ have_dri_h="yes"
-+ have_sarea_h="yes"
-+ have_dristruct_h="yes"
-+ fi
- fi
-
- AC_MSG_CHECKING([whether to include DRI support])
+++ /dev/null
-From 10498d2730c651eb7a1890eb9e728269732e9dad Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:54:59 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-tdfx/commit/?id=10498d2730c651eb7a1890eb9e728269732e9dad
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-diff --git a/src/tdfx_driver.c b/src/tdfx_driver.c
-index ddd5431..412da07 100644
---- a/src/tdfx_driver.c
-+++ b/src/tdfx_driver.c
-@@ -62,10 +62,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- #include "compiler.h"
-
--/* Drivers using the mi implementation of backing store need: */
--
--#include "mibstore.h"
--
- /* All drivers using the vgahw module need this */
- /* This driver needs to be modified to not use vgaHW for multihead operation */
- #include "vgaHW.h"
-@@ -2373,7 +2369,6 @@ TDFXScreenInit(SCREEN_INIT_ARGS_DECL) {
- }
- }
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
- xf86SetSilkenMouse(pScreen);
-
---
-cgit v0.9.0.2-2-gbebe
--- /dev/null
+From b7022db0559cd1b6cd3eb6b5abf6896a607b478d Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 25 Sep 2012 12:55:00 +0000
+Subject: Remove mibstore.h
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-tga/commit/?id=b7022db0559cd1b6cd3eb6b5abf6896a607b478d
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/tga_accel.c b/src/tga_accel.c
+index 35af1a4..b414df5 100644
+--- a/src/tga_accel.c
++++ b/src/tga_accel.c
+@@ -37,7 +37,6 @@
+ #include "xf86cmap.h"
+ #include "mipointer.h"
+
+-#include "mibstore.h"
+ #include "miline.h"
+
+ #include "tga_regs.h"
+diff --git a/src/tga_driver.c b/src/tga_driver.c
+index dd4f3e6..90d2660 100644
+--- a/src/tga_driver.c
++++ b/src/tga_driver.c
+@@ -46,8 +46,6 @@
+
+ /* software cursor */
+ #include "mipointer.h"
+-/* backing store */
+-#include "mibstore.h"
+
+ /* #include "mibank.h" */
+ /* colormap manipulation */
+@@ -1451,7 +1449,6 @@ TGAScreenInit(SCREEN_INIT_ARGS_DECL)
+
+ fbPictureInit (pScreen, 0, 0);
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+--
+cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From b7022db0559cd1b6cd3eb6b5abf6896a607b478d Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:55:00 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-tga/commit/?id=b7022db0559cd1b6cd3eb6b5abf6896a607b478d
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/tga_accel.c b/src/tga_accel.c
-index 35af1a4..b414df5 100644
---- a/src/tga_accel.c
-+++ b/src/tga_accel.c
-@@ -37,7 +37,6 @@
- #include "xf86cmap.h"
- #include "mipointer.h"
-
--#include "mibstore.h"
- #include "miline.h"
-
- #include "tga_regs.h"
-diff --git a/src/tga_driver.c b/src/tga_driver.c
-index dd4f3e6..90d2660 100644
---- a/src/tga_driver.c
-+++ b/src/tga_driver.c
-@@ -46,8 +46,6 @@
-
- /* software cursor */
- #include "mipointer.h"
--/* backing store */
--#include "mibstore.h"
-
- /* #include "mibank.h" */
- /* colormap manipulation */
-@@ -1451,7 +1449,6 @@ TGAScreenInit(SCREEN_INIT_ARGS_DECL)
-
- fbPictureInit (pScreen, 0, 0);
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
- xf86SetSilkenMouse(pScreen);
-
---
-cgit v0.9.0.2-2-gbebe
--- /dev/null
+From 30787294c837aefa8820b6f76f00fe30d4e54181 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 25 Sep 2012 12:55:01 +0000
+Subject: Remove mibstore.h
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-trident/commit/?id=30787294c837aefa8820b6f76f00fe30d4e54181
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/trident_driver.c b/src/trident_driver.c
+index dc12b76..408c870 100644
+--- a/src/trident_driver.c
++++ b/src/trident_driver.c
+@@ -56,7 +56,6 @@
+
+ #include "mipointer.h"
+
+-#include "mibstore.h"
+ #include "shadow.h"
+ #include "trident.h"
+ #include "trident_regs.h"
+@@ -3037,7 +3036,6 @@ TRIDENTScreenInit(SCREEN_INIT_ARGS_DECL)
+ TridentAccelInit(pScreen);
+ }
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+
+ /* Initialise cursor functions */
+--
+cgit v0.9.0.2-2-gbebe
--- /dev/null
+From 48c15909691e28ad2c188a2978b1c8ef3d9d8760 Mon Sep 17 00:00:00 2001
+From: Timo Aaltonen <tjaalton@ubuntu.com>
+Date: Wed, 26 Sep 2012 08:01:26 +0000
+Subject: Fix loading the driver without XAA
+
+---
+Fetch from:
+http://cgit.freedesktop.org/xorg/driver/xf86-video-trident/commit/?id=48c15909691e28ad2c188a2978b1c8ef3d9d8760
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff --git a/src/trident_dga.c b/src/trident_dga.c
+index 0263aa7..c4b5b9a 100644
+--- a/src/trident_dga.c
++++ b/src/trident_dga.c
+@@ -37,10 +37,10 @@
+ static Bool TRIDENT_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
+ int *, int *, int *);
+ static Bool TRIDENT_SetMode(ScrnInfoPtr, DGAModePtr);
+-static void TRIDENT_Sync(ScrnInfoPtr);
+ static int TRIDENT_GetViewport(ScrnInfoPtr);
+ static void TRIDENT_SetViewport(ScrnInfoPtr, int, int, int);
+ #ifdef HAVE_XAA_H
++static void TRIDENT_Sync(ScrnInfoPtr);
+ static void TRIDENT_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
+ static void TRIDENT_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
+ #if 0
+@@ -56,8 +56,8 @@ DGAFunctionRec TRIDENTDGAFuncs = {
+ TRIDENT_SetMode,
+ TRIDENT_SetViewport,
+ TRIDENT_GetViewport,
+- TRIDENT_Sync,
+ #ifdef HAVE_XAA_H
++ TRIDENT_Sync,
+ TRIDENT_FillRect,
+ TRIDENT_BlitRect,
+ #if 0
+--
+cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 30787294c837aefa8820b6f76f00fe30d4e54181 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:55:01 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-trident/commit/?id=30787294c837aefa8820b6f76f00fe30d4e54181
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/trident_driver.c b/src/trident_driver.c
-index dc12b76..408c870 100644
---- a/src/trident_driver.c
-+++ b/src/trident_driver.c
-@@ -56,7 +56,6 @@
-
- #include "mipointer.h"
-
--#include "mibstore.h"
- #include "shadow.h"
- #include "trident.h"
- #include "trident_regs.h"
-@@ -3037,7 +3036,6 @@ TRIDENTScreenInit(SCREEN_INIT_ARGS_DECL)
- TridentAccelInit(pScreen);
- }
-
-- miInitializeBackingStore(pScreen);
- xf86SetBackingStore(pScreen);
-
- /* Initialise cursor functions */
---
-cgit v0.9.0.2-2-gbebe
+++ /dev/null
-From 48c15909691e28ad2c188a2978b1c8ef3d9d8760 Mon Sep 17 00:00:00 2001
-From: Timo Aaltonen <tjaalton@ubuntu.com>
-Date: Wed, 26 Sep 2012 08:01:26 +0000
-Subject: Fix loading the driver without XAA
-
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-trident/commit/?id=48c15909691e28ad2c188a2978b1c8ef3d9d8760
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/trident_dga.c b/src/trident_dga.c
-index 0263aa7..c4b5b9a 100644
---- a/src/trident_dga.c
-+++ b/src/trident_dga.c
-@@ -37,10 +37,10 @@
- static Bool TRIDENT_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
- int *, int *, int *);
- static Bool TRIDENT_SetMode(ScrnInfoPtr, DGAModePtr);
--static void TRIDENT_Sync(ScrnInfoPtr);
- static int TRIDENT_GetViewport(ScrnInfoPtr);
- static void TRIDENT_SetViewport(ScrnInfoPtr, int, int, int);
- #ifdef HAVE_XAA_H
-+static void TRIDENT_Sync(ScrnInfoPtr);
- static void TRIDENT_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
- static void TRIDENT_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
- #if 0
-@@ -56,8 +56,8 @@ DGAFunctionRec TRIDENTDGAFuncs = {
- TRIDENT_SetMode,
- TRIDENT_SetViewport,
- TRIDENT_GetViewport,
-- TRIDENT_Sync,
- #ifdef HAVE_XAA_H
-+ TRIDENT_Sync,
- TRIDENT_FillRect,
- TRIDENT_BlitRect,
- #if 0
---
-cgit v0.9.0.2-2-gbebe
--- /dev/null
+Allow usage when fork() is not available
+
+When fork() is not available, we need to define NO_ZPIPE so that
+libXpm doesn't try to fork/exec to use a pipe to uncompress compressed
+.xpm files. There is obviously a loss of functionality, but loading
+uncompressed .xpm files should continue to work.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,6 +22,7 @@
+
+ # Checks for library functions
+ AC_CHECK_FUNCS([strlcat])
++AC_CHECK_FUNC([fork],[], AC_DEFINE(NO_ZPIPE))
+
+ # Obtain compiler/linker options for dependencies
+ PKG_CHECK_MODULES(XPM, xproto x11)
+++ /dev/null
-Allow usage when fork() is not available
-
-When fork() is not available, we need to define NO_ZPIPE so that
-libXpm doesn't try to fork/exec to use a pipe to uncompress compressed
-.xpm files. There is obviously a loss of functionality, but loading
-uncompressed .xpm files should continue to work.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,6 +22,7 @@
-
- # Checks for library functions
- AC_CHECK_FUNCS([strlcat])
-+AC_CHECK_FUNC([fork],[], AC_DEFINE(NO_ZPIPE))
-
- # Obtain compiler/linker options for dependencies
- PKG_CHECK_MODULES(XPM, xproto x11)
--- /dev/null
+From 3f064076c783914cafdff028db303681dae4291d Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Thu, 15 Nov 2012 18:31:53 +0100
+Subject: [PATCH] libXt: util: don't link makestrs with target cflags
+
+The line:
+
+AM_CFLAGS = $(XT_CFLAGS)
+
+in util/Makefile.am is wrong because it adds target cflags to the
+compilation of makestrs, which is built for the build machine, which
+leads to build failures when cross-compiling.
+
+We also remove the inclusion of <X11/Xos.h> from makestrs.c, because
+it was the only non-standard header being included (and therefore
+possibly requiring special cflags), but it was in reality not useful
+at all to build makestrs.c.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ util/Makefile.am | 1 -
+ util/makestrs.c | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/util/Makefile.am b/util/Makefile.am
+index dedfa6b..cc6f3fc 100644
+--- a/util/Makefile.am
++++ b/util/Makefile.am
+@@ -10,7 +10,6 @@ EXTRA_DIST = \
+ StrDefs.ht \
+ string.list
+
+-AM_CFLAGS = $(XT_CFLAGS)
+ makestrs_SOURCES = makestrs.c
+
+
+diff --git a/util/makestrs.c b/util/makestrs.c
+index a52866a..00c861f 100644
+--- a/util/makestrs.c
++++ b/util/makestrs.c
+@@ -27,7 +27,6 @@ in this Software without prior written authorization from The Open Group.
+ /* Constructs string definitions */
+
+ #include <stdio.h>
+-#include <X11/Xos.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+
+--
+1.7.9.5
+++ /dev/null
-From 3f064076c783914cafdff028db303681dae4291d Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Thu, 15 Nov 2012 18:31:53 +0100
-Subject: [PATCH] libXt: util: don't link makestrs with target cflags
-
-The line:
-
-AM_CFLAGS = $(XT_CFLAGS)
-
-in util/Makefile.am is wrong because it adds target cflags to the
-compilation of makestrs, which is built for the build machine, which
-leads to build failures when cross-compiling.
-
-We also remove the inclusion of <X11/Xos.h> from makestrs.c, because
-it was the only non-standard header being included (and therefore
-possibly requiring special cflags), but it was in reality not useful
-at all to build makestrs.c.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- util/Makefile.am | 1 -
- util/makestrs.c | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/util/Makefile.am b/util/Makefile.am
-index dedfa6b..cc6f3fc 100644
---- a/util/Makefile.am
-+++ b/util/Makefile.am
-@@ -10,7 +10,6 @@ EXTRA_DIST = \
- StrDefs.ht \
- string.list
-
--AM_CFLAGS = $(XT_CFLAGS)
- makestrs_SOURCES = makestrs.c
-
-
-diff --git a/util/makestrs.c b/util/makestrs.c
-index a52866a..00c861f 100644
---- a/util/makestrs.c
-+++ b/util/makestrs.c
-@@ -27,7 +27,6 @@ in this Software without prior written authorization from The Open Group.
- /* Constructs string definitions */
-
- #include <stdio.h>
--#include <X11/Xos.h>
- #include <stdlib.h>
- #include <unistd.h>
-
---
-1.7.9.5
--- /dev/null
+[PATCH] fix build on uClibc without IPv6 support
+
+Some systems (like uClibc) defines AF_INET6 even when configured without
+IPv6 support, so don't use that to decide if IPv6 support should be enabled.
+
+Instead use the X11VNC_IPV6 define like elsewhere in the code.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ x11vnc/enc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: x11vnc-0.9.13/x11vnc/enc.h
+===================================================================
+--- x11vnc-0.9.13.orig/x11vnc/enc.h
++++ x11vnc-0.9.13/x11vnc/enc.h
+@@ -1733,7 +1733,7 @@
+ }
+
+ try6:
+-#ifdef AF_INET6
++#if X11VNC_IPV6
+ if (!getenv("ULTRAVNC_DSM_HELPER_NOIPV6")) {
+ struct sockaddr_in6 sin;
+ int one = 1, sock = -1;
+++ /dev/null
-[PATCH] fix build on uClibc without IPv6 support
-
-Some systems (like uClibc) defines AF_INET6 even when configured without
-IPv6 support, so don't use that to decide if IPv6 support should be enabled.
-
-Instead use the X11VNC_IPV6 define like elsewhere in the code.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- x11vnc/enc.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: x11vnc-0.9.13/x11vnc/enc.h
-===================================================================
---- x11vnc-0.9.13.orig/x11vnc/enc.h
-+++ x11vnc-0.9.13/x11vnc/enc.h
-@@ -1733,7 +1733,7 @@
- }
-
- try6:
--#ifdef AF_INET6
-+#if X11VNC_IPV6
- if (!getenv("ULTRAVNC_DSM_HELPER_NOIPV6")) {
- struct sockaddr_in6 sin;
- int one = 1, sock = -1;
--- /dev/null
+This patch changes all of the hard-coded invocations of "ar" to $(AR), to
+support a cross-compilation toolchain.
+
+The content of this patch was copied from the OpenWrt project:
+https://dev.openwrt.org/browser/packages/net/xinetd/patches/001-ar.patch
+
+Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
+
+--- a/libs/src/misc/Makefile.in
++++ b/libs/src/misc/Makefile.in
+@@ -62,7 +62,7 @@
+
+
+ $(LIBNAME): $(OBJECTS)
+- ar r $@ $?
++ $(AR) r $@ $?
+ $(RANLIB) $@
+
+ install: $(LIBNAME)
+--- a/libs/src/portable/Makefile.in
++++ b/libs/src/portable/Makefile.in
+@@ -57,7 +57,7 @@
+
+
+ $(LIBNAME): $(OBJECTS)
+- ar r $@ $?
++ $(AR) r $@ $?
+ $(RANLIB) $@
+
+ install: $(LIBNAME)
+--- a/libs/src/pset/Makefile.in
++++ b/libs/src/pset/Makefile.in
+@@ -53,7 +53,7 @@
+ mv $(LIBNAME) $(LIBDIR)/optimized
+
+ $(LIBNAME): $(OBJECTS)
+- ar r $@ $?
++ $(AR) r $@ $?
+ $(RANLIB) $@
+
+ install: $(LIBNAME)
+--- a/libs/src/sio/Makefile.in
++++ b/libs/src/sio/Makefile.in
+@@ -52,7 +52,7 @@
+ $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)/optimized
+
+ $(LIBNAME): $(OBJECTS)
+- ar r $@ $?
++ $(AR) r $@ $?
+ $(RANLIB) $@
+
+ install: $(LIBNAME)
+--- a/libs/src/str/Makefile.in
++++ b/libs/src/str/Makefile.in
+@@ -63,7 +63,7 @@
+ $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)-O
+
+ $(LIBNAME): $(OBJECTS)
+- ar r $@ $?
++ $(AR) r $@ $?
+ $(RANLIB) $@
+
+ LINT_IGNORE=possible pointer alignment|RCSid unused
+--- a/libs/src/xlog/Makefile.in
++++ b/libs/src/xlog/Makefile.in
+@@ -58,7 +58,7 @@
+ $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)/optimized
+
+ $(LIBNAME): $(OBJECTS)
+- ar r $@ $?
++ $(AR) r $@ $?
+ $(RANLIB) $@
+
+ install: $(LIBNAME)
--- /dev/null
+This patch adds $(DESTDIR) to xinetd's installation paths, to support
+installation to a cross-compiled RFS area.
+
+The content of this patch was inspired by the OpenWrt project:
+https://dev.openwrt.org/browser/packages/net/xinetd/patches/002-destdir.patch
+
+Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
+
+diff -urN xinetd-2.3.15.ORIG/Makefile.in xinetd-2.3.15/Makefile.in
+--- xinetd-2.3.15.ORIG/Makefile.in 2007-09-20 13:01:52.000000000 -0400
++++ xinetd-2.3.15/Makefile.in 2012-06-18 10:20:00.540864388 -0400
+@@ -75,27 +75,27 @@
+
+ install: build
+ for i in $(DAEMONDIR) $(BINDIR) $(MANDIR)/man5 $(MANDIR)/man8 ; do \
+- test -d $$i || mkdir -p $$i ; done
+- $(INSTALL_CMD) -m 755 xinetd/xinetd $(DAEMONDIR)
+- $(INSTALL_CMD) -m 755 xinetd/itox $(DAEMONDIR)
+- $(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DAEMONDIR)
+- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(MANDIR)/man5/xinetd.conf.5
+- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(MANDIR)/man8/xinetd.log.8
+- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(MANDIR)/man8/xinetd.8
+- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(MANDIR)/man8/itox.8
+- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(MANDIR)/man8/xconv.pl.8
++ test -d $(DESTDIR)$$i || mkdir -p $(DESTDIR)$$i ; done
++ $(INSTALL_CMD) -m 755 xinetd/xinetd $(DESTDIR)$(DAEMONDIR)
++ $(INSTALL_CMD) -m 755 xinetd/itox $(DESTDIR)$(DAEMONDIR)
++ $(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DESTDIR)$(DAEMONDIR)
++ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(DESTDIR)$(MANDIR)/man5/xinetd.conf.5
++ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(DESTDIR)$(MANDIR)/man8/xinetd.log.8
++ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(DESTDIR)$(MANDIR)/man8/xinetd.8
++ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(DESTDIR)$(MANDIR)/man8/itox.8
++ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(DESTDIR)$(MANDIR)/man8/xconv.pl.8
+ @echo "You must put your xinetd.conf in /etc/xinetd.conf"
+ @echo "There is a sample config file in xinetd/sample.conf and you can"
+ @echo "use xconv.pl to convert your old inetd.conf file to an xinetd format"
+
+ uninstall:
+- rm -f $(DAEMONDIR)/xinetd
+- rm -f $(DAEMONDIR)/itox
+- rm -f $(DAEMONDIR)/xconv.pl
+- rm -f $(MANDIR)/man5/xinetd.conf.5
+- rm -f $(MANDIR)/man8/xinetd.log.8
+- rm -f $(MANDIR)/man8/xinetd.8
+- rm -f $(MANDIR)/man8/itox.8
++ rm -f $(DESTDIR)$(DAEMONDIR)/xinetd
++ rm -f $(DESTDIR)$(DAEMONDIR)/itox
++ rm -f $(DESTDIR)$(DAEMONDIR)/xconv.pl
++ rm -f $(DESTDIR)$(MANDIR)/man5/xinetd.conf.5
++ rm -f $(DESTDIR)$(MANDIR)/man8/xinetd.log.8
++ rm -f $(DESTDIR)$(MANDIR)/man8/xinetd.8
++ rm -f $(DESTDIR)$(MANDIR)/man8/itox.8
+
+ distclean: clean
+ rm -f config.cache config.log Makefile config.status xinetd/itox
--- /dev/null
+This patch fixes compiling xinetd without RPC support.
+
+The content of this patch was copied from the OpenWrt project:
+https://dev.openwrt.org/browser/packages/net/xinetd/patches/003-rpc_fix.patch
+
+Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
+
+--- a/xinetd/confparse.c
++++ b/xinetd/confparse.c
+@@ -745,7 +745,7 @@ static status_e check_entry( struct serv
+ }
+ }
+
+-/* #ifndef NO_RPC */
++#ifndef NO_RPC
+ #if defined(HAVE_RPC_RPCENT_H) || defined(HAVE_NETDB_H)
+ if ( SC_IS_RPC( scp ) && !SC_IS_UNLISTED( scp ) )
+ {
+@@ -759,6 +759,7 @@ static status_e check_entry( struct serv
+ SC_RPCDATA( scp )->rd_program_number = rep->r_number ;
+ }
+ else
++#endif
+ #endif /* ! NO_RPC */
+ {
+ if ( !SC_IS_UNLISTED( scp ) )
--- /dev/null
+Have the configure script look for rlim_t in <sys/resource.h>
+
+That's where POSIX says it should be. Some libcs will include its
+definition via <sys/types.h> as well, but musl doesn't.
+
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+
+--- xinetd-2.3.15.orig/configure 2007-09-20 16:58:27.000000000 +0200
++++ xinetd-2.3.15/configure 2014-09-16 17:20:22.787665449 +0200
+@@ -7909,7 +7909,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <sys/types.h>
++#include <sys/resource.h>
+ #if STDC_HEADERS
+ #include <stdlib.h>
+ #endif
+++ /dev/null
-This patch changes all of the hard-coded invocations of "ar" to $(AR), to
-support a cross-compilation toolchain.
-
-The content of this patch was copied from the OpenWrt project:
-https://dev.openwrt.org/browser/packages/net/xinetd/patches/001-ar.patch
-
-Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
-
---- a/libs/src/misc/Makefile.in
-+++ b/libs/src/misc/Makefile.in
-@@ -62,7 +62,7 @@
-
-
- $(LIBNAME): $(OBJECTS)
-- ar r $@ $?
-+ $(AR) r $@ $?
- $(RANLIB) $@
-
- install: $(LIBNAME)
---- a/libs/src/portable/Makefile.in
-+++ b/libs/src/portable/Makefile.in
-@@ -57,7 +57,7 @@
-
-
- $(LIBNAME): $(OBJECTS)
-- ar r $@ $?
-+ $(AR) r $@ $?
- $(RANLIB) $@
-
- install: $(LIBNAME)
---- a/libs/src/pset/Makefile.in
-+++ b/libs/src/pset/Makefile.in
-@@ -53,7 +53,7 @@
- mv $(LIBNAME) $(LIBDIR)/optimized
-
- $(LIBNAME): $(OBJECTS)
-- ar r $@ $?
-+ $(AR) r $@ $?
- $(RANLIB) $@
-
- install: $(LIBNAME)
---- a/libs/src/sio/Makefile.in
-+++ b/libs/src/sio/Makefile.in
-@@ -52,7 +52,7 @@
- $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)/optimized
-
- $(LIBNAME): $(OBJECTS)
-- ar r $@ $?
-+ $(AR) r $@ $?
- $(RANLIB) $@
-
- install: $(LIBNAME)
---- a/libs/src/str/Makefile.in
-+++ b/libs/src/str/Makefile.in
-@@ -63,7 +63,7 @@
- $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)-O
-
- $(LIBNAME): $(OBJECTS)
-- ar r $@ $?
-+ $(AR) r $@ $?
- $(RANLIB) $@
-
- LINT_IGNORE=possible pointer alignment|RCSid unused
---- a/libs/src/xlog/Makefile.in
-+++ b/libs/src/xlog/Makefile.in
-@@ -58,7 +58,7 @@
- $(INSTALL) $(FMODE) $(LIBNAME) $(LIBDIR)/optimized
-
- $(LIBNAME): $(OBJECTS)
-- ar r $@ $?
-+ $(AR) r $@ $?
- $(RANLIB) $@
-
- install: $(LIBNAME)
+++ /dev/null
-This patch adds $(DESTDIR) to xinetd's installation paths, to support
-installation to a cross-compiled RFS area.
-
-The content of this patch was inspired by the OpenWrt project:
-https://dev.openwrt.org/browser/packages/net/xinetd/patches/002-destdir.patch
-
-Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
-
-diff -urN xinetd-2.3.15.ORIG/Makefile.in xinetd-2.3.15/Makefile.in
---- xinetd-2.3.15.ORIG/Makefile.in 2007-09-20 13:01:52.000000000 -0400
-+++ xinetd-2.3.15/Makefile.in 2012-06-18 10:20:00.540864388 -0400
-@@ -75,27 +75,27 @@
-
- install: build
- for i in $(DAEMONDIR) $(BINDIR) $(MANDIR)/man5 $(MANDIR)/man8 ; do \
-- test -d $$i || mkdir -p $$i ; done
-- $(INSTALL_CMD) -m 755 xinetd/xinetd $(DAEMONDIR)
-- $(INSTALL_CMD) -m 755 xinetd/itox $(DAEMONDIR)
-- $(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DAEMONDIR)
-- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(MANDIR)/man5/xinetd.conf.5
-- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(MANDIR)/man8/xinetd.log.8
-- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(MANDIR)/man8/xinetd.8
-- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(MANDIR)/man8/itox.8
-- $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(MANDIR)/man8/xconv.pl.8
-+ test -d $(DESTDIR)$$i || mkdir -p $(DESTDIR)$$i ; done
-+ $(INSTALL_CMD) -m 755 xinetd/xinetd $(DESTDIR)$(DAEMONDIR)
-+ $(INSTALL_CMD) -m 755 xinetd/itox $(DESTDIR)$(DAEMONDIR)
-+ $(INSTALL_CMD) -m 755 $(SRCDIR)/xinetd/xconv.pl $(DESTDIR)$(DAEMONDIR)
-+ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.conf.man $(DESTDIR)$(MANDIR)/man5/xinetd.conf.5
-+ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.log.man $(DESTDIR)$(MANDIR)/man8/xinetd.log.8
-+ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xinetd.man $(DESTDIR)$(MANDIR)/man8/xinetd.8
-+ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/itox.8 $(DESTDIR)$(MANDIR)/man8/itox.8
-+ $(INSTALL_CMD) -m 644 $(SRCDIR)/xinetd/xconv.pl.8 $(DESTDIR)$(MANDIR)/man8/xconv.pl.8
- @echo "You must put your xinetd.conf in /etc/xinetd.conf"
- @echo "There is a sample config file in xinetd/sample.conf and you can"
- @echo "use xconv.pl to convert your old inetd.conf file to an xinetd format"
-
- uninstall:
-- rm -f $(DAEMONDIR)/xinetd
-- rm -f $(DAEMONDIR)/itox
-- rm -f $(DAEMONDIR)/xconv.pl
-- rm -f $(MANDIR)/man5/xinetd.conf.5
-- rm -f $(MANDIR)/man8/xinetd.log.8
-- rm -f $(MANDIR)/man8/xinetd.8
-- rm -f $(MANDIR)/man8/itox.8
-+ rm -f $(DESTDIR)$(DAEMONDIR)/xinetd
-+ rm -f $(DESTDIR)$(DAEMONDIR)/itox
-+ rm -f $(DESTDIR)$(DAEMONDIR)/xconv.pl
-+ rm -f $(DESTDIR)$(MANDIR)/man5/xinetd.conf.5
-+ rm -f $(DESTDIR)$(MANDIR)/man8/xinetd.log.8
-+ rm -f $(DESTDIR)$(MANDIR)/man8/xinetd.8
-+ rm -f $(DESTDIR)$(MANDIR)/man8/itox.8
-
- distclean: clean
- rm -f config.cache config.log Makefile config.status xinetd/itox
+++ /dev/null
-This patch fixes compiling xinetd without RPC support.
-
-The content of this patch was copied from the OpenWrt project:
-https://dev.openwrt.org/browser/packages/net/xinetd/patches/003-rpc_fix.patch
-
-Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
-
---- a/xinetd/confparse.c
-+++ b/xinetd/confparse.c
-@@ -745,7 +745,7 @@ static status_e check_entry( struct serv
- }
- }
-
--/* #ifndef NO_RPC */
-+#ifndef NO_RPC
- #if defined(HAVE_RPC_RPCENT_H) || defined(HAVE_NETDB_H)
- if ( SC_IS_RPC( scp ) && !SC_IS_UNLISTED( scp ) )
- {
-@@ -759,6 +759,7 @@ static status_e check_entry( struct serv
- SC_RPCDATA( scp )->rd_program_number = rep->r_number ;
- }
- else
-+#endif
- #endif /* ! NO_RPC */
- {
- if ( !SC_IS_UNLISTED( scp ) )
+++ /dev/null
-Have the configure script look for rlim_t in <sys/resource.h>
-
-That's where POSIX says it should be. Some libcs will include its
-definition via <sys/types.h> as well, but musl doesn't.
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
-
---- xinetd-2.3.15.orig/configure 2007-09-20 16:58:27.000000000 +0200
-+++ xinetd-2.3.15/configure 2014-09-16 17:20:22.787665449 +0200
-@@ -7909,7 +7909,7 @@
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
--#include <sys/types.h>
-+#include <sys/resource.h>
- #if STDC_HEADERS
- #include <stdlib.h>
- #endif
--- /dev/null
+Replace SUSV3-specific functions index, bcopy, bzero and bcmp by their
+POSIX variants.
+
+--- l2tpd-0.70-pre20031121.oorig/osport.h 2004-07-08 22:47:52.000000000 +0200
++++ l2tpd-0.70-pre20031121/osport.h 2006-12-28 15:32:50.000000000 +0100
+@@ -37,4 +37,11 @@
+
+ #endif /* defined(SOLARIS) */
+
++#if defined __UCLIBC__ && !defined UCLIBC_SUSV3_LEGACY_MACROS
++# define index(x, y) strchr(x, y)
++# define bcopy(S1, S2, LEN) ((void)memmove(S2, S1, LEN))
++# define bzero(S1, LEN) ((void)memset(S1, 0, LEN))
++# define bcmp(S1,S2,LEN) ((memcmp(S2, S1, LEN)==0)?0:1)
++#endif /* defined __UCLIBC__ && !defined UCLIBC_SUSV3_LEGACY_MACROS */
++
+ #endif /* _OSPORT_H_ */
+++ /dev/null
-Replace SUSV3-specific functions index, bcopy, bzero and bcmp by their
-POSIX variants.
-
---- l2tpd-0.70-pre20031121.oorig/osport.h 2004-07-08 22:47:52.000000000 +0200
-+++ l2tpd-0.70-pre20031121/osport.h 2006-12-28 15:32:50.000000000 +0100
-@@ -37,4 +37,11 @@
-
- #endif /* defined(SOLARIS) */
-
-+#if defined __UCLIBC__ && !defined UCLIBC_SUSV3_LEGACY_MACROS
-+# define index(x, y) strchr(x, y)
-+# define bcopy(S1, S2, LEN) ((void)memmove(S2, S1, LEN))
-+# define bzero(S1, LEN) ((void)memset(S1, 0, LEN))
-+# define bcmp(S1,S2,LEN) ((memcmp(S2, S1, LEN)==0)?0:1)
-+#endif /* defined __UCLIBC__ && !defined UCLIBC_SUSV3_LEGACY_MACROS */
-+
- #endif /* _OSPORT_H_ */
--- /dev/null
+The configure bails out when cross-compiling, because it is over-cautious
+about ANSI support in the C compiler. Work around this by disabling the
+bail-out code.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/configure b/configure
+--- a/configure 2013-07-16 10:23:32.000000000 +0100
++++ b/configure 2013-09-22 14:50:07.186953454 +0100
+@@ -3537,9 +3537,7 @@ $as_echo "Solaris: adding -D__EXTENSIONS
+ { $as_echo "$as_me:$LINENO: checking whether the compiler works on ANSI C" >&5
+ $as_echo_n "checking whether the compiler works on ANSI C... " >&6; }
+ if test "$cross_compiling" = yes; then
+- { { $as_echo "$as_me:$LINENO: error: Couldn't build even a trivial ANSI C program: check CC." >&5
+-$as_echo "$as_me: error: Couldn't build even a trivial ANSI C program: check CC." >&2;}
+- { (exit 1); exit 1; }; }
++ :
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+@@ -8616,7 +8614,7 @@ fi
+ $as_echo "$ac_cv_xpointer" >&6; }
+ if test "$ac_cv_xpointer" != yes; then
+ cat >>confdefs.h <<\_ACEOF
+-#define XPointer char*
++/* #define XPointer char* */
+ _ACEOF
+
+ fi
--- /dev/null
+Fix compile and link errors related to the minixpm code.
+
+Signed-off-by: Simon Dawson <spdawson@gmail.com>
+
+diff -Nurp a/hacks/Makefile.in b/hacks/Makefile.in
+--- a/hacks/Makefile.in 2013-07-16 10:23:32.000000000 +0100
++++ b/hacks/Makefile.in 2013-09-22 18:47:56.389238980 +0100
+@@ -73,17 +73,22 @@ UTIL_SRCS = $(UTILS_SRC)/alpha.c $(UTILS
+ $(UTILS_SRC)/minixpm.c \
+ $(UTILS_SRC)/yarandom.c $(UTILS_SRC)/erase.c \
+ $(UTILS_SRC)/xshm.c $(UTILS_SRC)/xdbe.c \
+- $(UTILS_SRC)/textclient.c
++ $(UTILS_SRC)/colorbars.c \
++ $(UTILS_SRC)/fade.c \
++ $(UTILS_SRC)/textclient.c \
++ $(UTILS_SRC)/overlay.c
+ UTIL_OBJS = $(UTILS_BIN)/alpha.o $(UTILS_BIN)/colors.o \
+ $(UTILS_BIN)/grabclient.o \
+ $(UTILS_BIN)/hsv.o $(UTILS_BIN)/resources.o \
+ $(UTILS_BIN)/spline.o $(UTILS_BIN)/usleep.o \
+ $(UTILS_BIN)/visual.o $(UTILS_BIN)/logo.o \
+- $(UTILS_SRC)/minixpm.c \
++ $(UTILS_BIN)/minixpm.o \
+ $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/erase.o \
+ $(UTILS_BIN)/xshm.o $(UTILS_BIN)/xdbe.o \
+ $(UTILS_BIN)/colorbars.o \
+- $(UTILS_SRC)/textclient.o
++ $(UTILS_BIN)/fade.o \
++ $(UTILS_BIN)/textclient.o \
++ $(UTILS_BIN)/overlay.o
+
+ SRCS = attraction.c blitspin.c bouboule.c braid.c bubbles.c \
+ bubbles-default.c decayscreen.c deco.c drift.c flag.c \
+@@ -559,11 +564,11 @@ xscreensaver-sgigl: xscreensaver-sgigl.c
+ attraction: attraction.o $(HACK_OBJS) $(COL) $(SPL)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(SPL) $(HACK_LIBS)
+
+-blitspin: blitspin.o $(HACK_OBJS) $(GRAB) $(XPM)
+- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(XPM) $(XPM_LIBS)
++blitspin: blitspin.o $(HACK_OBJS) $(GRAB) $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(XPM) $(MINIXPM) $(XPM_LIBS)
+
+-bubbles: bubbles.o $(HACK_OBJS) bubbles-default.o $(XPM)
+- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) bubbles-default.o $(XPM) $(XPM_LIBS)
++bubbles: bubbles.o $(HACK_OBJS) bubbles-default.o $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) bubbles-default.o $(XPM) $(MINIXPM) $(XPM_LIBS)
+
+ decayscreen: decayscreen.o $(HACK_OBJS) $(GRAB)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(HACK_LIBS)
+@@ -604,8 +609,8 @@ moire: moire.o $(HACK_OBJS) $(COL) $(S
+ moire2: moire2.o $(HACK_OBJS) $(COL) $(DBE)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(DBE) $(HACK_LIBS)
+
+-noseguy: noseguy.o $(HACK_OBJS) $(XPM) $(TEXT)
+- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(XPM) $(TEXT) $(XPM_LIBS) $(TEXT_LIBS)
++noseguy: noseguy.o $(HACK_OBJS) $(XPM) $(TEXT) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(XPM) $(TEXT) $(MINIXPM) $(XPM_LIBS) $(TEXT_LIBS)
+
+ pedal: pedal.o $(HACK_OBJS) $(HSV) $(ERASE)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HSV) $(ERASE) $(HACK_LIBS)
+@@ -658,14 +663,14 @@ interference: interference.o $(HACK_OBJ
+ truchet: truchet.o $(HACK_OBJS) $(COL)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
+
+-bsod: bsod.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM)
+- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(XPM_LIBS)
++bsod: bsod.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(MINIXPM) $(XPM_LIBS)
+
+ apple2: apple2.o apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT)
+ $(CC_HACK) -o $@ $@.o apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT) $(XPM_LIBS) $(TEXT_LIBS)
+
+-xanalogtv: xanalogtv.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM)
+- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS)
++xanalogtv: xanalogtv.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(MINIXPM) $(XPM_LIBS) $(HACK_LIBS)
+
+ distort: distort.o $(HACK_OBJS) $(GRAB) $(SHM)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
+@@ -688,8 +693,8 @@ compass: compass.o $(HACK_OBJS) $(DBE)
+ squiral: squiral.o $(HACK_OBJS) $(COL)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
+
+-xflame: xflame.o $(HACK_OBJS) $(SHM) $(XPM)
+- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SHM) $(XPM) $(XPM_LIBS)
++xflame: xflame.o $(HACK_OBJS) $(SHM) $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SHM) $(XPM) $(MINIXPM) $(XPM_LIBS)
+
+ wander: wander.o $(HACK_OBJS) $(COL) $(ERASE)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(ERASE) $(HACK_LIBS)
+@@ -703,8 +708,8 @@ critical: critical.o $(HACK_OBJS) $(COL)
+ phosphor: phosphor.o $(HACK_OBJS) $(TEXT) $(COL)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(TEXT) $(COL) $(HACK_LIBS) $(TEXT_LIBS)
+
+-xmatrix: xmatrix.o $(HACK_OBJS) $(TEXT) $(XPM)
+- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(TEXT) $(XPM) $(XPM_LIBS) $(TEXT_LIBS)
++xmatrix: xmatrix.o $(HACK_OBJS) $(TEXT) $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(TEXT) $(XPM) $(MINIXPM) $(XPM_LIBS) $(TEXT_LIBS)
+
+ petri: petri.o $(HACK_OBJS) $(COL) $(SPL)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(SPL) $(HACK_LIBS)
+@@ -787,8 +792,8 @@ cloudlife: cloudlife.o $(HACK_OBJS) $(CO
+ fontglide: fontglide.o $(HACK_OBJS) $(DBE) $(TEXT)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(DBE) $(TEXT) $(HACK_LIBS) $(TEXT_LIBS)
+
+-pong: pong.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM)
+- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS)
++pong: pong.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(MINIXPM) $(XPM_LIBS) $(HACK_LIBS)
+
+ wormhole: wormhole.o $(HACK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
+@@ -856,8 +861,8 @@ braid: braid.o $(XLOCK_OBJS) $(ERASE)
+ drift: drift.o $(XLOCK_OBJS) $(ERASE)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
+
+-flag: flag.o $(XLOCK_OBJS) $(XPM)
+- $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(XPM) $(XPM_LIBS)
++flag: flag.o $(XLOCK_OBJS) $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(XPM) $(MINIXPM) $(XPM_LIBS)
+
+ forest: forest.o $(XLOCK_OBJS) $(ERASE)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
+@@ -959,8 +964,8 @@ thornbird: thornbird.o $(XLOCK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
+
+ PACOBJS=pacman_ai.o pacman_level.o
+-pacman: pacman.o $(PACOBJS) $(XLOCK_OBJS) $(XPM)
+- $(CC_HACK) -o $@ $@.o $(PACOBJS) $(XLOCK_OBJS) $(XPM) $(XPM_LIBS)
++pacman: pacman.o $(PACOBJS) $(XLOCK_OBJS) $(XPM) $(MINIXPM)
++ $(CC_HACK) -o $@ $@.o $(PACOBJS) $(XLOCK_OBJS) $(XPM) $(MINIXPM) $(XPM_LIBS)
+
+ fiberlamp: fiberlamp.o $(XLOCK_OBJS)
+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
--- /dev/null
+From 2336fa7901733a434c38637bf39f3e282e78e1c1 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Wed, 27 Aug 2014 22:44:21 +0200
+Subject: [PATCH 1/1] driver: fix linking with lintl
+
+The libintl is missing during xscreensaver build if
+glib2 was build with gettext.
+
+xscreensaver.o: In function `main':
+undefined reference to `libintl_bindtextdomain'
+undefined reference to `libintl_textdomain'
+
+Backport a patch applied in 5.28
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ driver/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/driver/Makefile.in b/driver/Makefile.in
+index af077ca..ce7055c 100644
+--- a/driver/Makefile.in
++++ b/driver/Makefile.in
+@@ -776,7 +776,7 @@ XScreenSaver_Xm_ad.h: XScreenSaver-Xm.ad
+ # The executables linked in this directory.
+ #
+ xscreensaver: $(SAVER_OBJS)
+- $(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(SAVER_LIBS)
++ $(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(SAVER_LIBS) $(INTL_LIBS)
+
+ xscreensaver-command: $(CMD_OBJS)
+ $(CC) $(LDFLAGS) -o $@ $(CMD_OBJS) $(CMD_LIBS)
+--
+1.9.3
+
+++ /dev/null
-The configure bails out when cross-compiling, because it is over-cautious
-about ANSI support in the C compiler. Work around this by disabling the
-bail-out code.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/configure b/configure
---- a/configure 2013-07-16 10:23:32.000000000 +0100
-+++ b/configure 2013-09-22 14:50:07.186953454 +0100
-@@ -3537,9 +3537,7 @@ $as_echo "Solaris: adding -D__EXTENSIONS
- { $as_echo "$as_me:$LINENO: checking whether the compiler works on ANSI C" >&5
- $as_echo_n "checking whether the compiler works on ANSI C... " >&6; }
- if test "$cross_compiling" = yes; then
-- { { $as_echo "$as_me:$LINENO: error: Couldn't build even a trivial ANSI C program: check CC." >&5
--$as_echo "$as_me: error: Couldn't build even a trivial ANSI C program: check CC." >&2;}
-- { (exit 1); exit 1; }; }
-+ :
- else
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
-@@ -8616,7 +8614,7 @@ fi
- $as_echo "$ac_cv_xpointer" >&6; }
- if test "$ac_cv_xpointer" != yes; then
- cat >>confdefs.h <<\_ACEOF
--#define XPointer char*
-+/* #define XPointer char* */
- _ACEOF
-
- fi
+++ /dev/null
-Fix compile and link errors related to the minixpm code.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/hacks/Makefile.in b/hacks/Makefile.in
---- a/hacks/Makefile.in 2013-07-16 10:23:32.000000000 +0100
-+++ b/hacks/Makefile.in 2013-09-22 18:47:56.389238980 +0100
-@@ -73,17 +73,22 @@ UTIL_SRCS = $(UTILS_SRC)/alpha.c $(UTILS
- $(UTILS_SRC)/minixpm.c \
- $(UTILS_SRC)/yarandom.c $(UTILS_SRC)/erase.c \
- $(UTILS_SRC)/xshm.c $(UTILS_SRC)/xdbe.c \
-- $(UTILS_SRC)/textclient.c
-+ $(UTILS_SRC)/colorbars.c \
-+ $(UTILS_SRC)/fade.c \
-+ $(UTILS_SRC)/textclient.c \
-+ $(UTILS_SRC)/overlay.c
- UTIL_OBJS = $(UTILS_BIN)/alpha.o $(UTILS_BIN)/colors.o \
- $(UTILS_BIN)/grabclient.o \
- $(UTILS_BIN)/hsv.o $(UTILS_BIN)/resources.o \
- $(UTILS_BIN)/spline.o $(UTILS_BIN)/usleep.o \
- $(UTILS_BIN)/visual.o $(UTILS_BIN)/logo.o \
-- $(UTILS_SRC)/minixpm.c \
-+ $(UTILS_BIN)/minixpm.o \
- $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/erase.o \
- $(UTILS_BIN)/xshm.o $(UTILS_BIN)/xdbe.o \
- $(UTILS_BIN)/colorbars.o \
-- $(UTILS_SRC)/textclient.o
-+ $(UTILS_BIN)/fade.o \
-+ $(UTILS_BIN)/textclient.o \
-+ $(UTILS_BIN)/overlay.o
-
- SRCS = attraction.c blitspin.c bouboule.c braid.c bubbles.c \
- bubbles-default.c decayscreen.c deco.c drift.c flag.c \
-@@ -559,11 +564,11 @@ xscreensaver-sgigl: xscreensaver-sgigl.c
- attraction: attraction.o $(HACK_OBJS) $(COL) $(SPL)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(SPL) $(HACK_LIBS)
-
--blitspin: blitspin.o $(HACK_OBJS) $(GRAB) $(XPM)
-- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(XPM) $(XPM_LIBS)
-+blitspin: blitspin.o $(HACK_OBJS) $(GRAB) $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(XPM) $(MINIXPM) $(XPM_LIBS)
-
--bubbles: bubbles.o $(HACK_OBJS) bubbles-default.o $(XPM)
-- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) bubbles-default.o $(XPM) $(XPM_LIBS)
-+bubbles: bubbles.o $(HACK_OBJS) bubbles-default.o $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) bubbles-default.o $(XPM) $(MINIXPM) $(XPM_LIBS)
-
- decayscreen: decayscreen.o $(HACK_OBJS) $(GRAB)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(HACK_LIBS)
-@@ -604,8 +609,8 @@ moire: moire.o $(HACK_OBJS) $(COL) $(S
- moire2: moire2.o $(HACK_OBJS) $(COL) $(DBE)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(DBE) $(HACK_LIBS)
-
--noseguy: noseguy.o $(HACK_OBJS) $(XPM) $(TEXT)
-- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(XPM) $(TEXT) $(XPM_LIBS) $(TEXT_LIBS)
-+noseguy: noseguy.o $(HACK_OBJS) $(XPM) $(TEXT) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(XPM) $(TEXT) $(MINIXPM) $(XPM_LIBS) $(TEXT_LIBS)
-
- pedal: pedal.o $(HACK_OBJS) $(HSV) $(ERASE)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HSV) $(ERASE) $(HACK_LIBS)
-@@ -658,14 +663,14 @@ interference: interference.o $(HACK_OBJ
- truchet: truchet.o $(HACK_OBJS) $(COL)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
-
--bsod: bsod.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM)
-- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(XPM_LIBS)
-+bsod: bsod.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(APPLE2) $(XPM) $(MINIXPM) $(XPM_LIBS)
-
- apple2: apple2.o apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT)
- $(CC_HACK) -o $@ $@.o apple2-main.o $(HACK_OBJS) $(ATV) $(GRAB) $(TEXT) $(XPM_LIBS) $(TEXT_LIBS)
-
--xanalogtv: xanalogtv.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM)
-- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS)
-+xanalogtv: xanalogtv.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(MINIXPM) $(XPM_LIBS) $(HACK_LIBS)
-
- distort: distort.o $(HACK_OBJS) $(GRAB) $(SHM)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
-@@ -688,8 +693,8 @@ compass: compass.o $(HACK_OBJS) $(DBE)
- squiral: squiral.o $(HACK_OBJS) $(COL)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(HACK_LIBS)
-
--xflame: xflame.o $(HACK_OBJS) $(SHM) $(XPM)
-- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SHM) $(XPM) $(XPM_LIBS)
-+xflame: xflame.o $(HACK_OBJS) $(SHM) $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SHM) $(XPM) $(MINIXPM) $(XPM_LIBS)
-
- wander: wander.o $(HACK_OBJS) $(COL) $(ERASE)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(ERASE) $(HACK_LIBS)
-@@ -703,8 +708,8 @@ critical: critical.o $(HACK_OBJS) $(COL)
- phosphor: phosphor.o $(HACK_OBJS) $(TEXT) $(COL)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(TEXT) $(COL) $(HACK_LIBS) $(TEXT_LIBS)
-
--xmatrix: xmatrix.o $(HACK_OBJS) $(TEXT) $(XPM)
-- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(TEXT) $(XPM) $(XPM_LIBS) $(TEXT_LIBS)
-+xmatrix: xmatrix.o $(HACK_OBJS) $(TEXT) $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(TEXT) $(XPM) $(MINIXPM) $(XPM_LIBS) $(TEXT_LIBS)
-
- petri: petri.o $(HACK_OBJS) $(COL) $(SPL)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(COL) $(SPL) $(HACK_LIBS)
-@@ -787,8 +792,8 @@ cloudlife: cloudlife.o $(HACK_OBJS) $(CO
- fontglide: fontglide.o $(HACK_OBJS) $(DBE) $(TEXT)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(DBE) $(TEXT) $(HACK_LIBS) $(TEXT_LIBS)
-
--pong: pong.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM)
-- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(XPM_LIBS) $(HACK_LIBS)
-+pong: pong.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(ATV) $(GRAB) $(XPM) $(MINIXPM) $(XPM_LIBS) $(HACK_LIBS)
-
- wormhole: wormhole.o $(HACK_OBJS)
- $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS)
-@@ -856,8 +861,8 @@ braid: braid.o $(XLOCK_OBJS) $(ERASE)
- drift: drift.o $(XLOCK_OBJS) $(ERASE)
- $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
-
--flag: flag.o $(XLOCK_OBJS) $(XPM)
-- $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(XPM) $(XPM_LIBS)
-+flag: flag.o $(XLOCK_OBJS) $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(XPM) $(MINIXPM) $(XPM_LIBS)
-
- forest: forest.o $(XLOCK_OBJS) $(ERASE)
- $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(ERASE) $(HACK_LIBS)
-@@ -959,8 +964,8 @@ thornbird: thornbird.o $(XLOCK_OBJS)
- $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
-
- PACOBJS=pacman_ai.o pacman_level.o
--pacman: pacman.o $(PACOBJS) $(XLOCK_OBJS) $(XPM)
-- $(CC_HACK) -o $@ $@.o $(PACOBJS) $(XLOCK_OBJS) $(XPM) $(XPM_LIBS)
-+pacman: pacman.o $(PACOBJS) $(XLOCK_OBJS) $(XPM) $(MINIXPM)
-+ $(CC_HACK) -o $@ $@.o $(PACOBJS) $(XLOCK_OBJS) $(XPM) $(MINIXPM) $(XPM_LIBS)
-
- fiberlamp: fiberlamp.o $(XLOCK_OBJS)
- $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS)
+++ /dev/null
-From 2336fa7901733a434c38637bf39f3e282e78e1c1 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@openwide.fr>
-Date: Wed, 27 Aug 2014 22:44:21 +0200
-Subject: [PATCH 1/1] driver: fix linking with lintl
-
-The libintl is missing during xscreensaver build if
-glib2 was build with gettext.
-
-xscreensaver.o: In function `main':
-undefined reference to `libintl_bindtextdomain'
-undefined reference to `libintl_textdomain'
-
-Backport a patch applied in 5.28
-
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- driver/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/driver/Makefile.in b/driver/Makefile.in
-index af077ca..ce7055c 100644
---- a/driver/Makefile.in
-+++ b/driver/Makefile.in
-@@ -776,7 +776,7 @@ XScreenSaver_Xm_ad.h: XScreenSaver-Xm.ad
- # The executables linked in this directory.
- #
- xscreensaver: $(SAVER_OBJS)
-- $(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(SAVER_LIBS)
-+ $(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(SAVER_LIBS) $(INTL_LIBS)
-
- xscreensaver-command: $(CMD_OBJS)
- $(CC) $(LDFLAGS) -o $@ $(CMD_OBJS) $(CMD_LIBS)
---
-1.9.3
-
--- /dev/null
+--- a/Makefile 2008-03-04 06:14:55.425005441 -0500
++++ b/Makefile 2008-03-05 08:40:50.000000000 -0500
+@@ -0,0 +1,2397 @@
++# Makefile generated by imake - do not edit!
++# $Xorg: imake.c,v 1.6 2001/02/09 02:03:15 xorgcvs Exp $
++
++# ----------------------------------------------------------------------
++# Makefile generated from "Imake.tmpl" and <Imakefile>
++# $Xorg: Imake.tmpl,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
++# $XdotOrg: util/cf/Imake.tmpl,v 1.17 2006/04/15 15:55:25 herrb Exp $
++#
++#
++#
++#
++# $XFree86: xc/config/cf/Imake.tmpl,v 3.155 2003/12/24 18:58:41 dickey Exp $
++# ----------------------------------------------------------------------
++
++all::
++
++.SUFFIXES: .i
++
++# $XdotOrg: util/cf/Imake.cf,v 1.12 2005/11/08 06:33:24 jkj Exp $
++# $Xorg: Imake.cf,v 1.4 2000/08/17 19:41:45 cpqbld Exp $
++
++# $XFree86: xc/config/cf/Imake.cf,v 3.88 2003/12/16 21:30:21 herrb Exp $
++
++# Keep cpp from replacing path elements containing i486/i586/i686
++
++# -----------------------------------------------------------------------
++# site-specific configuration parameters that need to come before
++# the platform-specific parameters - edit site.def to change
++
++# site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
++
++# site: $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
++
++# $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
++
++# ----------------------------------------------------------------------
++# platform-specific configuration parameters - edit linux.cf to change
++
++# $XdotOrg: util/cf/linux.cf,v 1.31 2005/10/21 19:10:27 ajax Exp $
++# platform: $Xorg: linux.cf,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
++
++# platform: $XFree86: xc/config/cf/linux.cf,v 3.220 2003/12/30 22:38:33 tsi Exp $
++
++# operating system: Linux 2.6.23.8-63.fc8 i686 [ELF] (2.6.23)
++# libc: (6.7.0)
++# binutils: (217)
++
++# $Xorg: lnxLib.rules,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
++# $XFree86: xc/config/cf/lnxLib.rules,v 3.52 2003/10/31 20:49:03 herrb Exp $
++
++# $XdotOrg: util/cf/xorg.cf,v 1.53 2005/10/03 16:08:44 alanc Exp $
++
++# $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $
++
++XORG_VERSION_CURRENT = (((6) * 10000000) + ((8) * 100000) + ((99) * 1000) + 903)
++RELEASE_VERSION = RELEASE-1
++
++AFB_DEFS = -DUSE_AFB
++
++DRIVERSDKDIR = $(USRLIBDIR)/Server
++DRIVERSDKMODULEDIR = $(USRLIBDIR)/Server/modules
++DRIVERSDKINCLUDEDIR = $(USRLIBDIR)/Server/include
++
++ XF86SRC = $(SERVERSRC)/hw/xfree86
++ XF86COMSRC = $(XF86SRC)/common
++ XF86PARSERSRC = $(XF86SRC)/parser
++ XF86OSSRC = $(XF86SRC)/os-support
++ XF86DRIVERSRC = $(XF86SRC)/drivers
++ DRIVERSRC = $(XF86DRIVERSRC)
++
++ XFREE86DOCDIR = $(DOCDIR)
++ XFREE86PSDOCDIR = $(DOCPSDIR)
++ XFREE86PDFDOCDIR = $(DOCPDFDIR)
++ XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
++XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
++
++# $Xorg: xf86.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $
++
++# $XFree86: xc/config/cf/xf86.rules,v 3.34tsi Exp $
++
++# ----------------------------------------------------------------------
++# site-specific configuration parameters that go after
++# the platform-specific parameters - edit site.def to change
++
++# site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
++
++# site: $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
++
++# ---------------------------------------------------------------------
++# Imake rules for building libraries, programs, scripts, and data files
++# rules: $Xorg: Imake.rules,v 1.3 2000/08/17 19:41:46 cpqbld Exp $
++# rules: $XdotOrg: util/cf/Imake.rules,v 1.11 2005/11/08 06:33:24 jkj Exp $
++#
++#
++#
++#
++# rules: $XFree86: xc/config/cf/Imake.rules,v 3.128 2003/11/15 03:25:17 dawes Exp $
++
++.PHONY: all interfaces install install.man install.lib install.sdk depend includes cleandir
++
++ _NULLCMD_ = @ echo -n
++
++X_BYTE_ORDER = X_LITTLE_ENDIAN
++
++GLIDE2INCDIR =
++
++GLIDE3INCDIR =
++
++GLIDE3LIBNAME =
++
++TKLIBNAME =
++
++TKLIBDIR =
++
++TCLLIBNAME =
++
++TCLIBDIR =
++
++ PATHSEP = /
++ SHELL = /bin/sh -e
++
++ TOP = .
++ CURRENT_DIR = .
++
++ IMAKE = imake
++ DEPEND = gccmakedep
++ MKDIRHIER = mkdir -p
++ REVPATH = revpath
++ EXPORTLISTGEN =
++ RMAN = RmanCmd
++ RMANBASENAME = rman
++ RMANOPTIONS = RmanOptions
++ CONFIGSRC = $(TOP)/config
++ IMAKESRC = $(CONFIGSRC)/imake
++ DEPENDSRC = $(CONFIGSRC)/util
++
++ INCROOT = /usr/include
++ USRLIBDIR = /usr/lib
++ VARDIR = /var
++ VARLIBDIR = $(VARDIR)/lib
++ SYSTEMUSRLIBDIR = /usr/lib
++ SYSTEMUSRINCDIR = /usr/include
++ SHLIBDIR = /usr/lib
++ LINTLIBDIR = $(USRLIBDIR)/lint
++ MANPATH = /usr/share/man
++ MANSOURCEPATH = $(MANPATH)/man
++ MANDIR = $(MANSOURCEPATH)1
++ LIBMANDIR = $(MANSOURCEPATH)3
++ FILEMANDIR = $(MANSOURCEPATH)5
++ MISCMANDIR = $(MANSOURCEPATH)$(MISCMANSUFFIX)
++ DRIVERMANDIR = $(MANSOURCEPATH)$(DRIVERMANSUFFIX)
++ LOGDIRECTORY = $(VARDIR)/log
++
++ VARRUNDIR = $(VARDIR)/run
++
++ VARDBDIR = $(VARDIR)/lib
++
++ AR = ar clq
++
++# Nice try but useless: make will inherit BOOTSTRAPCFLAGS
++# from top Makefile
++ BOOTSTRAPCFLAGS =
++
++ CC = gcc -m32
++ AS = gcc -m32 -c -x assembler
++
++.SUFFIXES: .cc
++
++ CXX = c++ -m32
++
++ CXXFILT = c++filt
++
++ CXXLIB = -lstdc++
++
++ CXXDEBUGFLAGS = -O2 -fno-strength-reduce -fno-strict-aliasing
++CXXDEPENDINCLUDES =
++ CXXEXTRA_DEFINES =
++CXXEXTRA_INCLUDES =
++ CXXSTD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(CXXPROJECT_DEFINES)
++ CXXOPTIONS =
++ CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES)
++ CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(DEFINES) $(CXXEXTRA_DEFINES)
++ CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
++
++ COMPRESS = compress
++ GZIPCMD = gzip
++
++ CPP = cpp $(STD_CPP_DEFINES)
++ RAWCPP = cpp -undef $(STD_CPP_OPTIONS)
++ PREPROCESSCMD = gcc -m32 -E $(STD_CPP_DEFINES)
++
++ INSTALL = install
++ INSTALLFLAGS = -c
++
++ LD = gcc -m32 -nostdlib
++
++ LEX = flex -l
++ M4 = m4
++ M4FLAGS =
++ LEXLIB = -lfl
++ YACC = bison -y
++ CCYACC = bison -y
++
++ LINT = lint
++
++ LINTLIBFLAG = -C
++ LINTOPTS = -axz
++ LN = ln -s
++ MAKE = make
++ MV = mv -f
++ CP = cp
++
++ RANLIB = ranlib
++
++ RANLIBINSTFLAGS =
++
++ RM = rm -f
++ PERL = perl
++ PERLOPTS =
++ PERLENVSETUP = env LC_ALL=C
++ MANSUFFIX = 1x
++ LIBMANSUFFIX = 3x
++ FILEMANSUFFIX = 5x
++ MISCMANSUFFIX = 7
++ DRIVERMANSUFFIX = 4
++ ADMINMANSUFFIX = 8
++ MANSRCSUFFIX = man
++ MANNEWSUFFIX = _man
++ MANDEFS = -D__apploaddir__=$(XAPPLOADDIR) -D__appmansuffix__=$(MANSUFFIX) -D__filemansuffix__=$(FILEMANSUFFIX) -D__libmansuffix__=$(LIBMANSUFFIX) -D__miscmansuffix__=$(MISCMANSUFFIX) -D__drivermansuffix__=$(DRIVERMANSUFFIX) -D__adminmansuffix__=$(ADMINMANSUFFIX) -D__projectroot__=$(PROJECTROOT) -D__xconfigfile__=$(XCONFIGFILE) -D__xconfigdir__=$(XCONFIGDIR) -D__xlogfile__=$(XLOGFILE) -D__xservername__=$(XSERVERNAME) $(XORGMANDEFS) $(VENDORMANDEFS)
++
++ COMPRESSMANCMD = gzip -n
++
++ TROFF = groff -Tps
++ NROFF = nroff
++
++ MSMACROS = -ms
++ MANMACROS = -man
++ TBL = tbl
++ EQN = eqn
++ NEQN = neqn
++ COL = col
++ COLFLAGS = -b
++
++ MODCC = gcc -m32
++
++ MODCPP = cpp
++ MODCFLAGS = $(CFLAGS)
++ MODAS = gcc -m32 -c -x assembler
++ MODASFLAGS =
++
++ MODLD = gcc -m32 -nostdlib
++
++ MODLDFLAGS =
++MODLDCOMBINEFLAGS = -r
++ MODAR = ar clq
++
++ MODRANLIB = ranlib
++
++ STD_INCLUDES =
++ STD_CPP_OPTIONS = -traditional
++ STD_CPP_DEFINES = -traditional -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(PROJECT_DEFINES)
++ STD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(PROJECT_DEFINES)
++ EXTRA_LOAD_FLAGS =
++ EXTRA_LDOPTIONS =
++ EXTRA_LIBRARIES =
++ TAGS = ctags
++
++ PARALLELMFLAGS =
++
++ SHAREDCODEDEF =
++ SHLIBDEF =
++
++ SHLIBLDFLAGS = -shared $(SHLIBGLOBALSFLAGS)
++
++ NOSTDLIB = -nostdlib
++ POSTNOSTDLIB = -Wl,-Bstatic -lgcc -Wl,-Bdynamic
++
++ PICFLAGS = -fPIC
++
++ CXXPICFLAGS = -fPIC
++
++ PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO
++
++ INSTPGMFLAGS =
++
++ INSTBINFLAGS = -m 0755
++ INSTUIDFLAGS = -m 4711
++ INSTLIBFLAGS = -m 0644
++ INSTINCFLAGS = -m 0444
++ INSTMANFLAGS = -m 0444
++ INSTDATFLAGS = -m 0444
++ INSTKMEMFLAGS = -m 4711
++
++ PROJECTROOT = /usr
++
++ CDEBUGFLAGS = -O2 -fno-strength-reduce -fno-strict-aliasing
++ CCOPTIONS =
++
++ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
++ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
++ CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
++ LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
++ LDPRELIB = -L$(USRLIBDIR) $(INSTALLED_LIBS)
++ LDPOSTLIB =
++ LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
++ CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
++
++ LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
++
++ CCLINK = $(CC)
++
++ CXXLINK = $(CXX)
++
++ LDSTRIPFLAGS = -x
++ LDCOMBINEFLAGS = -r
++ DEPENDFLAGS =
++ DEPEND_DEFINES =
++
++# Not sure this belongs here
++ TKLIBDIR =
++ TKINCDIR =
++ TKLIBNAME =
++ TKLIBRARY = -L$(TKLIBDIR) -l$(TKLIBNAME)
++ TCLLIBDIR =
++ TCLINCDIR =
++ TCLLIBNAME =
++ TCLLIBRARY = -L$(TCLLIBDIR) -l$(TCLLIBNAME)
++
++ MACROFILE = linux.cf
++ RM_CMD = $(RM)
++
++ IMAKE_DEFINES =
++ IMAKE_WARNINGS = -Wundef
++
++ IRULESRC = $(CONFIGDIR)
++ IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) $(IMAKE_WARNINGS)
++
++ ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl $(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) $(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules $(IRULESRC)/xorgsite.def $(IRULESRC)/host.def $(EXTRA_ICONFIGFILES)
++
++# $Xorg: X11.rules,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
++
++# $XFree86: xc/config/cf/X11.rules,v 1.6 2001/01/17 16:22:31 dawes Exp $
++
++# ----------------------------------------------------------------------
++# X Window System Build Parameters and Rules
++# $XdotOrg: util/cf/X11.tmpl,v 1.54 2006/04/15 15:55:25 herrb Exp $
++# $Xorg: X11.tmpl,v 1.6 2000/08/17 19:41:46 cpqbld Exp $
++#
++#
++#
++#
++# $XFree86: xc/config/cf/X11.tmpl,v 1.248 2004/02/16 04:07:37 dawes Exp $
++
++XORGRELSTRING = `echo 6 8 99 903 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
++ XORGMANNAME = X Version 11
++
++STICKY_DEFINES = -DHAS_STICKY_DIR_BIT
++
++FCHOWN_DEFINES = -DHAS_FCHOWN
++
++# -----------------------------------------------------------------------
++# X Window System make variables; these need to be coordinated with rules
++
++ XTOP = $(TOP)
++ BINDIR = /usr/bin
++ BUILDINCROOT = $(TOP)/exports
++ BUILDINCDIR = $(BUILDINCROOT)/include
++ BUILDINCTOP = ../..
++ BUILDLIBDIR = $(TOP)/exports/lib
++ BUILDLIBTOP = ../..
++ BUILDBINDIR = $(TOP)/exports/bin
++ BUILDBINTOP = ../..
++ BUILDMODULEDIR = $(BUILDLIBDIR)/modules
++ BUILDI18NDIR = $(BUILDLIBDIR)/locale
++ BUILDMODULETOP = $(BUILDLIBTOP)/..
++ XBUILDINCROOT = $(XTOP)/exports
++ XBUILDINCDIR = $(XBUILDINCROOT)/include/X11
++ XBUILDINCTOP = ../../..
++ XBUILDBINDIR = $(XBUILDINCROOT)/bin
++ INCDIR = $(INCROOT)
++ ADMDIR = /usr/adm
++ LIBDIR = /usr/lib/X11
++ SHAREDIR = /usr/share/X11
++ LIBEXECDIR = /usr/libexec
++ MODULEDIR = $(USRLIBDIR)/modules
++ TOP_X_INCLUDES =
++ XBINDIR = $(PROJECTROOT)/bin
++
++ INSTSRCDIR = /usr/src
++
++ ETCX11DIR = /etc/X11
++
++ CONFDIR = $(ETCX11DIR)
++
++ DOCDIR = $(LIBDIR)/doc
++ DOCHTMLDIR = $(DOCDIR)/html
++ DOCPSDIR = $(DOCDIR)/PostScript
++ DOCPDFDIR = $(DOCDIR)/PDF
++ FONTDIR = $(LIBDIR)/fonts
++ ENCODINGSDIR = $(LIBDIR)/fonts/encodings
++ XINITDIR = $(LIBDIR)/xinit
++ XDMDIR = $(LIBDIR)/xdm
++ XDMVARDIR = $(VARLIBDIR)/xdm
++ TWMDIR = $(LIBDIR)/twm
++ XSMDIR = $(LIBDIR)/xsm
++ NLSDIR = $(LIBDIR)/nls
++ XLOCALEDIR = $(LIBDIR)/locale
++ LBXPROXYDIR = $(LIBDIR)/lbxproxy
++ PROXYMANAGERDIR = $(LIBDIR)/proxymngr
++ XPRINTDIR = $(LIBDIR)/xserver
++ XAPPLOADDIR = /usr/share/X11/app-defaults
++ FONTCFLAGS = -t
++
++ INSTAPPFLAGS = $(INSTDATFLAGS)
++
++ RGB = $(XBINDIR)/rgb
++ FONTC = $(XBINDIR)/bdftopcf
++ MKFONTSCALE = $(XBINDIR)/mkfontscale
++ MKFONTDIR = $(XBINDIR)/mkfontdir
++ MKHTMLINDEX = $(XBINDIR)/mkhtmlindex
++ UCS2ANY = $(XBINDIR)/ucs2any
++ BDFTRUNCATE = $(XBINDIR)/bdftruncate
++ UCSMAPPREFIX = $(FONTDIR)/util/map-
++ XCURSORGEN = $(XBINDIR)/xcursorgen
++
++ HTMLINDEXCMD = HtmlIndexCmd
++
++ DOCUTILSRC = $(XTOP)/doc/util
++ CLIENTSRC = $(TOP)/clients
++ DEMOSRC = $(TOP)/demos
++ XDOCMACROS = $(DOCUTILSRC)/macros.t
++ XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
++ PROGRAMSRC = $(TOP)/programs
++ LIBSRC = $(XTOP)/lib
++ FONTSRC = $(XTOP)/fonts
++ ENCODINGSSRC = $(FONTSRC)/encodings
++ INCLUDESRC = $(BUILDINCROOT)/include
++ XINCLUDESRC = $(INCLUDESRC)/X11
++ SERVERSRC = $(XTOP)/programs/Xserver
++ CONTRIBSRC = $(XTOP)/../contrib
++ UNSUPPORTEDSRC = $(XTOP)/unsupported
++ DOCSRC = $(XTOP)/doc
++ RGBSRC = $(XTOP)/programs/rgb
++ BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
++ MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
++ FONTSERVERSRC = $(PROGRAMSRC)/xfs
++ FONTINCSRC = $(XTOP)/include/fonts
++ EXTINCSRC = $(XTOP)/include/extensions
++ FTSOURCEDIR = FreeTypeSrcDir
++ DRMSRCDIR = $(TOP)/extras/drm
++ MESASRCDIR = $(TOP)/extras/Mesa
++ OGLSAMPLESRCDIR = $(TOP)/extras/ogl-sample
++ PSWRAPSRC = $(XTOP)/config/pswrap
++ TRANSCOMMSRC = $(LIBSRC)/xtrans
++ TRANS_INCLUDES = -I$(TRANSCOMMSRC)
++ CONNECTION_FLAGS = -DUNIXCONN -DTCPCONN $(STICKY_DEFINES) $(FCHOWN_DEFINES) -DIPv6
++XTRANS_FAILDEFINES = -DFAIL_HARD
++
++ VENDORMANNAME = X.Org
++ VENDORMANVERSION = `echo 6 8 99 903 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
++ XORGMANDEFS = -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\""
++ VENDORMANDEFS = -D__vendorversion__="$(VENDORMANVERSION) $(VENDORMANNAME)"
++ VENDORNAME = The X.Org Foundation
++ VENDORNAMESHORT = X.Org
++
++ VENDORWEBSUPPORT = http://wiki.X.Org
++
++VENDORSUPPORTDEFS = -D__VENDORDWEBSUPPORT__='"$(VENDORWEBSUPPORT)"'
++
++ XKBDEFRULES = xorg
++ XKBDEFRULESDEFS = -D__XKBDEFRULES__='"$(XKBDEFRULES)"'
++
++ XCONFIGFILE = xorg.conf
++ XCONFIGDIR = $(LIBDIR)
++ XLOGFILE = Xorg
++ XSERVERNAME = Xorg
++
++ XENVLIBDIR = $(USRLIBDIR)
++ CLIENTENVSETUP = LD_LIBRARY_PATH=$(XENVLIBDIR) XLOCALEDIR=$(BUILDLIBDIR)/locale
++
++# $Xorg: lnxLib.tmpl,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
++# $XFree86: xc/config/cf/lnxLib.tmpl,v 3.19 2003/10/15 22:47:48 herrb Exp $
++
++ XLIBSRC = $(LIBSRC)/X11
++
++SOXLIBREV = 6.2
++DEPXONLYLIB =
++XONLYLIB = -lX11
++
++LINTXONLY = $(LINTLIBDIR)/llib-lX11.ln
++
++ DEPXLIBONLY = $(DEPXONLYLIB)
++ XLIBONLY = $(XONLYLIB)
++ LINTXONLYLIB = $(LINTXONLY)
++
++ XEXTLIBSRC = $(LIBSRC)/Xext
++
++SOXEXTREV = 6.4
++DEPEXTENSIONLIB =
++EXTENSIONLIB = -lXext
++
++LINTEXTENSION = $(LINTLIBDIR)/llib-lXext.ln
++
++LINTEXTENSIONLIB = $(LINTEXTENSION)
++ DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
++ XLIB = $(EXTENSIONLIB) $(XONLYLIB)
++ LINTXLIB = $(LINTXONLYLIB)
++
++ XSSLIBSRC = $(LIBSRC)/Xss
++
++SOXSSREV = 1.0
++DEPXSSLIB =
++XSSLIB = -lXss
++
++LINTXSS = $(LINTLIBDIR)/llib-lXss.ln
++
++ XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc
++
++SOXXF86MISCREV = 1.1
++DEPXXF86MISCLIB =
++XXF86MISCLIB = -lXxf86misc
++
++LINTXXF86MISC = $(LINTLIBDIR)/llib-lXxf86misc.ln
++
++ XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm
++
++SOXXF86VMREV = 1.0
++DEPXXF86VMLIB =
++XXF86VMLIB = -lXxf86vm
++
++LINTXXF86VM = $(LINTLIBDIR)/llib-lXxf86vm.ln
++
++ XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga
++
++SOXXF86DGAREV = 1.0
++DEPXXF86DGALIB =
++XXF86DGALIB = -lXxf86dga
++
++LINTXXF86DGA = $(LINTLIBDIR)/llib-lXxf86dga.ln
++
++ XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
++
++SOXXF86RUSHREV = 1.0
++DEPXXF86RUSHLIB =
++XXF86RUSHLIB = -lXxf86rush
++
++LINTXXF86RUSH = $(LINTLIBDIR)/llib-lXxf86rush.ln
++
++ XVLIBSRC = $(LIBSRC)/Xv
++
++SOXVREV = 1.0
++DEPXVLIB =
++XVLIB = -lXv
++
++LINTXV = $(LINTLIBDIR)/llib-lXv.ln
++
++ XVMCLIBSRC = $(LIBSRC)/XvMC
++
++SOXVMCREV = 1.0
++DEPXVMCLIB =
++XVMCLIB = -lXvMC
++
++LINTXVMC = $(LINTLIBDIR)/llib-lXvMC.ln
++
++ XINERAMALIBSRC = $(LIBSRC)/Xinerama
++
++SOXINERAMAREV = 1.0
++DEPXINERAMALIB =
++XINERAMALIB = -lXinerama
++
++LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
++
++ XRESLIBSRC = $(LIBSRC)/XRes
++
++SOXRESREV = 1.0
++DEPXRESLIB =
++XRESLIB = -lXRes
++
++LINTXRES = $(LINTLIBDIR)/llib-lXRes.ln
++
++ DMXLIBSRC = $(LIBSRC)/dmx
++
++DEPDMXLIB = $(USRLIBDIR)/libdmx.a
++DMXLIB = -ldmx
++
++LINTDMX = $(LINTLIBDIR)/llib-ldmx.ln
++
++ DPSLIBSRC = $(LIBSRC)/dps
++
++DEPDPSLIB = $(USRLIBDIR)/libdps.a
++DPSLIB = -ldps
++
++LINTDPS = $(LINTLIBDIR)/llib-ldps.ln
++
++ DPSTKLIBSRC = $(LIBSRC)/dpstk
++
++DEPDPSTKLIB = $(USRLIBDIR)/libdpstk.a
++DPSTKLIB = -ldpstk
++
++LINTDPSTK = $(LINTLIBDIR)/llib-ldpstk.ln
++
++ PSRESLIBSRC = $(LIBSRC)/psres
++
++DEPPSRESLIB = $(USRLIBDIR)/libpsres.a
++PSRESLIB = -lpsres
++
++LINTPSRES = $(LINTLIBDIR)/llib-lpsres.ln
++
++ GLULIBSRC = $(LIBSRC)/GLU
++
++SOGLUREV = 1.3
++DEPGLULIB =
++GLULIB = -lGLU
++
++LINTGLU = $(LINTLIBDIR)/llib-lGLU.ln
++
++ GLXLIBSRC = $(LIBSRC)/GL
++
++SOGLREV = 1.2
++DEPGLXLIB =
++GLXLIB = -lGL
++
++LINTGLX = $(LINTLIBDIR)/llib-lGL.ln
++
++ GLWIDGETSRC = $(LIBSRC)/GLw
++
++SOGLWREV = 1.0
++DEPGLWLIB =
++GLWLIB = -lGLw
++
++LINTGLW = $(LINTLIBDIR)/llib-lGLw.ln
++
++ XRENDERLIBSRC = $(LIBSRC)/Xrender
++
++SOXRENDERREV = 1.2.2
++DEPXRENDERLIB =
++XRENDERLIB = -lXrender
++
++LINTXRENDER = $(LINTLIBDIR)/llib-lXrender.ln
++
++ XRANDRLIBSRC = $(LIBSRC)/Xrandr
++
++SOXRANDRREV = 2.0
++DEPXRANDRLIB =
++XRANDRLIB = -lXrandr
++
++LINTXRANDR = $(LINTLIBDIR)/llib-lXrandr.ln
++
++ XFIXESLIBSRC = $(LIBSRC)/Xfixes
++
++SOXFIXESREV = 3.0
++DEPXFIXESLIB =
++XFIXESLIB = -lXfixes
++
++LINTXFIXES = $(LINTLIBDIR)/llib-lXfixes.ln
++
++ XDAMAGELIBSRC = $(LIBSRC)/Xdamage
++
++SOXDAMAGEREV = 1.0
++DEPXDAMAGELIB =
++XDAMAGELIB = -lXdamage
++
++LINTXDAMAGE = $(LINTLIBDIR)/llib-lXdamage.ln
++
++XCOMPOSITELIBSRC = $(LIBSRC)/Xcomposite
++
++SOXCOMPOSITEREV = 1.0
++DEPXCOMPOSITELIB =
++XCOMPOSITELIB = -lXcomposite
++
++LINTXCOMPOSITE = $(LINTLIBDIR)/llib-lXcomposite.ln
++
++XEVIELIBSRC = $(LIBSRC)/Xevie
++
++SOXEVIEREV = 1.0
++DEPXEVIELIB =
++XEVIELIB = -lXevie
++
++LINTXEVIE = $(LINTLIBDIR)/llib-lXevie.ln
++
++ XCURSORLIBSRC = $(LIBSRC)/Xcursor
++
++SOXCURSORREV = 1.0.2
++DEPXCURSORLIB =
++XCURSORLIB = -lXcursor
++
++LINTXCURSOR = $(LINTLIBDIR)/llib-lXcursor.ln
++
++ APPLEWMLIBSRC = $(LIBSRC)/apple
++
++DEPAPPLEWMLIB = $(USRLIBDIR)/libAppleWM.a
++APPLEWMLIB = -lAppleWM
++
++LINTAPPLEWM = $(LINTLIBDIR)/llib-lAppleWM.ln
++
++ WINDOWSWMLIBSRC = $(LIBSRC)/windows
++
++DEPWINDOWSWMLIB = $(USRLIBDIR)/libWindowsWM.a
++WINDOWSWMLIB = -lWindowsWM
++
++LINTWINDOWSWM = $(LINTLIBDIR)/llib-lWindowsWM.ln
++
++ XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache
++
++SOXFONTCACHEREV = 1.2
++DEPXFONTCACHELIB =
++XFONTCACHELIB = -lXfontcache
++
++LINTXFONTCACHE = $(LINTLIBDIR)/llib-lXfontcache.ln
++
++ XAUTHSRC = $(LIBSRC)/Xau
++
++SOXAUTHREV = 6.0
++DEPXAUTHLIB =
++XAUTHLIB = -lXau
++
++LINTXAUTH = $(LINTLIBDIR)/llib-lXau.ln
++
++ XDMCPLIBSRC = $(LIBSRC)/Xdmcp
++
++SOXDMCPREV = 6.0
++DEPXDMCPLIB =
++XDMCPLIB = -lXdmcp
++
++LINTXDMCP = $(LINTLIBDIR)/llib-lXdmcp.ln
++
++ XMUSRC = $(LIBSRC)/Xmu
++
++SOXMUREV = 6.2
++DEPXMULIB =
++XMULIB = -lXmu
++
++LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
++
++ XMUUSRC = $(LIBSRC)/Xmuu
++
++SOXMUUREV = 1.0
++DEPXMUULIB =
++XMUULIB = -lXmuu
++
++LINTXMUU = $(LINTLIBDIR)/llib-lXmuu.ln
++
++ OLDXLIBSRC = $(LIBSRC)/oldX
++
++DEPOLDXLIB = $(USRLIBDIR)/liboldX.a
++OLDXLIB = -loldX
++
++LINTOLDX = $(LINTLIBDIR)/llib-loldX.ln
++
++ XPLIBSRC = $(LIBSRC)/Xp
++
++SOXPREV = 6.2
++DEPXPLIB =
++XPLIB = -lXp
++
++LINTXP = $(LINTLIBDIR)/llib-lXp.ln
++
++ TOOLKITSRC = $(LIBSRC)/Xt
++
++SOXTREV = 6.0
++DEPXTOOLONLYLIB =
++XTOOLONLYLIB = -lXt
++
++LINTXTOOLONLY = $(LINTLIBDIR)/llib-lXt.ln
++
++ DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
++ XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
++ LINTXTOOLLIB = $(LINTXTOOLONLYLIB)
++
++ XALIBSRC = $(LIBSRC)/Xa
++
++SOXAREV = 1.0
++DEPXALIB =
++XALIB = -lXa
++
++LINTXA = $(LINTLIBDIR)/llib-lXa.ln
++
++ AWIDGETSRC = $(LIBSRC)/Xaw
++
++SOXAWREV = 8.0
++DEPXAWLIB =
++XAWLIB = -lXaw
++
++LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
++
++ AWIDGET7SRC = $(LIBSRC)/Xaw7
++
++SOXAW7REV = 7.0
++DEPXAW7LIB =
++XAW7LIB = -lXaw
++
++LINTXAW7 = $(LINTLIBDIR)/llib-lXaw.ln
++
++ AWIDGET6SRC = $(LIBSRC)/Xaw6
++
++SOXAW6REV = 6.1
++DEPXAW6LIB =
++XAW6LIB = -lXaw
++
++LINTXAW6 = $(LINTLIBDIR)/llib-lXaw.ln
++
++ XILIBSRC = $(LIBSRC)/Xi
++
++SOXINPUTREV = 6.0
++DEPXILIB =
++XILIB = -lXi
++
++LINTXI = $(LINTLIBDIR)/llib-lXi.ln
++
++ XTESTLIBSRC = $(LIBSRC)/Xtst
++
++SOXTESTREV = 6.1
++DEPXTESTLIB =
++XTESTLIB = -lXtst
++
++LINTXTEST = $(LINTLIBDIR)/llib-lXtst.ln
++
++DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
++XBSDLIB = -lXbsd
++
++LINTXBSD = $(LINTLIBDIR)/llib-lXbsd.ln
++
++ ICESRC = $(LIBSRC)/ICE
++
++SOICEREV = 6.4
++DEPICELIB =
++ICELIB = -lICE
++
++LINTICE = $(LINTLIBDIR)/llib-lICE.ln
++
++ SMSRC = $(LIBSRC)/SM
++
++SOSMREV = 6.0
++DEPSMLIB =
++SMLIB = -lSM
++
++LINTSM = $(LINTLIBDIR)/llib-lSM.ln
++
++ XKEYSRC = $(LIBSRC)/Xkey
++
++SOXKEYREV = 6.0
++DEPXKEYLIB =
++XKEYLIB = -lXkey
++
++LINTXKEY = $(LINTLIBDIR)/llib-lXkey.ln
++
++ FSLIBSRC = $(LIBSRC)/FS
++
++SOFSREV = 6.0
++DEPFSLIB =
++FSLIB = -lFS
++
++LINTFS = $(LINTLIBDIR)/llib-lFS.ln
++
++ FONTLIBSRC = $(LIBSRC)/font
++
++SOFONTREV = 1.5
++DEPFONTLIB =
++FONTLIB = -L$(FREETYPELIBDIR) -L$(FONTLIBSRC) -lXfont
++
++LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
++#
++SOFONTREV = 1.5
++DEPXFONTLIB =
++XFONTLIB = -lXfont
++
++LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
++
++ FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs
++
++DEPFONTSTUBLIB = $(USRLIBDIR)/libfntstubs.a
++FONTSTUBLIB = -lfntstubs
++
++LINTFONTSTUB = $(LINTLIBDIR)/llib-lfntstubs.ln
++ DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB)
++ FONTLIB = $(XFONTLIB) $(FONTSTUBLIB) $(FREETYPE2LIB)
++
++ FONTENCLIBSRC = $(LIBSRC)/fontenc
++
++SOFONTENCREV = 1.0
++DEPXFONTENCLIB =
++XFONTENCLIB = -lfontenc
++
++LINTXFONTENC = $(LINTLIBDIR)/llib-lfontenc.ln
++
++ XPMLIBSRC = $(LIBSRC)/Xpm
++
++SOXPMREV = 4.11
++DEPXPMLIB =
++XPMLIB = -lXpm
++
++LINTXPM = $(LINTLIBDIR)/llib-lXpm.ln
++
++FREETYPE2DIR = /usr
++FREETYPE2LIBDIR = /usr/lib
++FREETYPE2INCDIR = /usr/include
++
++FREETYPE2LIB = -lfreetype
++
++FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)/freetype2 -I$(FREETYPE2INCDIR)/freetype2/config
++
++FREETYPE2DEFINES = -DFREETYPE2
++
++ EXPATLIBSRC = $(LIBSRC)/expat
++
++SOEXPATREV = 0.4
++DEPEXPATLIB =
++EXPATLIB = -lexpat
++
++LINTEXPAT = $(LINTLIBDIR)/llib-lexpat.ln
++
++EXPATDIR = /usr
++EXPATLIBDIR = /usr/lib
++EXPATINCDIR = /usr/include
++
++EXPATINCLUDES =
++
++EXPATLIB = -lexpat
++
++EXPATDEFINES = -DEXPAT
++
++ XFT1LIBSRC = $(LIBSRC)/Xft1
++
++SOXFT1REV = 1.1
++DEPXFT1LIB =
++XFT1LIB = -lXft
++
++LINTXFT1 = $(LINTLIBDIR)/llib-lXft.ln
++
++ XFTLIBSRC = $(LIBSRC)/Xft
++
++SOXFTREV = 2.1.2
++DEPXFTLIB =
++XFTLIB = -lXft
++
++LINTXFT = $(LINTLIBDIR)/llib-lXft.ln
++
++ FONTCONFIGLIBSRC = $(LIBSRC)/fontconfig
++
++SOFONTCONFIGREV = 1.0.4
++DEPFONTCONFIGLIB =
++FONTCONFIGLIB = -lfontconfig
++
++LINTFONTCONFIG = $(LINTLIBDIR)/llib-lfontconfig.ln
++
++FONTCONFIGINCDIR=$(INCDIR)
++
++FONTCONFIGINCLUDES = -I$(FONTCONFIGINCDIR)
++
++FCCACHE = $(BINDIR)/fc-cache
++
++FONTCONFIGDEFINES = -DFONTCONFIG
++
++XFTINCLUDES=$(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES)
++
++LIBPNGINCDIR = /usr/include
++
++LIBPNGINC=
++
++LIBPNGDIR = /usr
++LIBPNGLIBDIR = /usr/lib
++LIBPNGINCDIR = /usr/include
++
++LIBPNGLIB = -lpng
++
++ XKBFILELIBSRC = $(LIBSRC)/xkbfile
++
++SOXKBFILEREV = 1.0
++DEPXKBFILELIB =
++XKBFILELIB = -lxkbfile
++
++LINTXKBFILE = $(LINTLIBDIR)/llib-lxkbfile.ln
++
++ XKBCOMPCMD = $(XBINDIR)/xkbcomp
++
++ XKBUILIBSRC = $(LIBSRC)/xkbui
++
++SOXKBUIREV = 1.0
++DEPXKBUILIB =
++XKBUILIB = -lxkbui
++
++LINTXKBUI = $(LINTLIBDIR)/llib-lxkbui.ln
++
++EXTRAXAWREQS =
++
++EXTRAXAWCLIENTDEPLIBS =
++
++EXTRAXAWCLIENTLIBS =
++
++ XTRAPLIBSRC = $(LIBSRC)/XTrap
++
++SOXTRAPREV = 6.4
++DEPXTRAPLIB =
++XTRAPLIB = -lXTrap
++
++LINTXTRAP = $(LINTLIBDIR)/llib-lXTrap.ln
++
++ DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
++
++ DEPLIBS1 = $(DEPLIBS)
++ DEPLIBS2 = $(DEPLIBS)
++ DEPLIBS3 = $(DEPLIBS)
++ DEPLIBS4 = $(DEPLIBS)
++ DEPLIBS5 = $(DEPLIBS)
++ DEPLIBS6 = $(DEPLIBS)
++ DEPLIBS7 = $(DEPLIBS)
++ DEPLIBS8 = $(DEPLIBS)
++ DEPLIBS9 = $(DEPLIBS)
++ DEPLIBS10 = $(DEPLIBS)
++
++ FCPRELOADPATTERN = libfontconfig.so.?
++
++ XFTPRELOADPATTERN = libXft.so.?
++ XRENDERPRELOADPATTERN = libXrender.so.?
++ XFONTPRELOADPATTERN = libXfont*.so.?
++
++XMULIBONLY = -lXmu
++XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
++
++ CONFIGDIR = /usr/share/X11/config
++
++ USRLIBDIRPATH = $(USRLIBDIR)
++ LDPRELIBS = -L$(USRLIBDIR) $(INSTALLED_LIBS)
++ LDPOSTLIBS =
++ TOP_INCLUDES = -I$(INCROOT) $(TOP_X_INCLUDES)
++ PROJECT_DEFINES =
++ VENDOR_DEFINES = -DXVENDORNAME='"$(VENDORNAME)"' -DXVENDORNAMESHORT='"$(VENDORNAMESHORT)"'
++
++CXXPROJECT_DEFINES =
++
++# ----------------------------------------------------------------------
++# start of Imakefile
++
++# Remove the next line if you want genuine Xaw instead of Xaw3d
++
++# Remove the next line if you don't want to enable XTEST support
++
++# Remove the next line if you want to disable internationalization
++
++SRCS = xvkbd.c findwidget.c
++OBJS = xvkbd.o findwidget.o
++DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXPMLIB) $(EXTRAXAWCLIENTDEPLIBS) $(DEPXLIB)
++SYS_LIBRARIES = $(XAWLIB) $(XMULIBONLY) $(XTOOLLIB) $(XPMLIB) $(EXTRAXAWCLIENTLIBS) $(XLIB)
++
++D_XTEST = -DUSE_XTEST
++SYS_LIBRARIES = $(XAWLIB) $(XMULIBONLY) $(XTOOLLIB) $(XPMLIB) $(EXTRAXAWCLIENTLIBS) $(XLIB) -lXtst
++
++D_I18N = -DUSE_I18N
++
++DEFINES = $(D_XAW3D) $(D_XTEST) $(D_I18N)
++
++xvkbd.o: xvkbd.c resources.h XVkbd-common.h
++ $(RM) $@
++ $(CC) -c $(CFLAGS) $*.c
++
++ PROGRAM = xvkbd
++
++all:: xvkbd
++
++xvkbd: $(OBJS) $(DEPLIBS)
++ $(RM) $@
++ $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
++
++install:: xvkbd
++ @if [ -d $(DESTDIR)$(BINDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(BINDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(BINDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTPGMFLAGS) xvkbd $(DESTDIR)$(BINDIR)/xvkbd
++
++all:: xvkbd.$(MANNEWSUFFIX)
++
++xvkbd.$(MANNEWSUFFIX): xvkbd.$(MANSRCSUFFIX)
++ $(RM) $@
++ if test -z "$(PREPROCESSMANPAGES)" ; then \
++ cd `dirname xvkbd` && \
++ $(LN) `basename xvkbd.$(MANSRCSUFFIX)` `basename $@`; \
++ else \
++ $(RAWCPP) $(MANDEFS) $(EXTRAMANDEFS) \
++ < xvkbd.$(MANSRCSUFFIX) | sed -e '/^# *[0-9][0-9]* *.*$$/d' -e '/^#line *[0-9][0-9]* *.*$$/d' -e '/^[ ]*XCOMM$$/s/XCOMM/#/' -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/#/' -e '/^[ ]*XHASH/s/XHASH/#/' -e '/\@\@$$/s/\@\@$$/\\/' >$@; \
++ fi
++
++cleandir::
++ $(RM) xvkbd.$(MANNEWSUFFIX)
++
++install.man:: xvkbd.$(MANNEWSUFFIX)
++ @if [ -d $(DESTDIR)$(MANDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(MANDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(MANDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) xvkbd.$(MANNEWSUFFIX) $(DESTDIR)$(MANDIR)/xvkbd.$(MANSUFFIX)
++
++depend::
++ $(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS)
++
++lint:
++ $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
++lint1:
++ $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
++
++cleandir::
++ $(RM) xvkbd
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-belgian.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-belgian.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-belgian
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-common.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-common.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-common
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-danish.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-danish.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-danish
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-fitaly.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-fitaly.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-fitaly
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-french.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-french.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-french
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-french2.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-french2.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-french2
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-german.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-german.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-german
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-greek.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-greek.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-greek
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-hebrew.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-hebrew.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-hebrew
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-icelandic.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-icelandic.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-icelandic
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-italian.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-italian.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-italian
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-jisx6002.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-jisx6002.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-jisx6002
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-jisx6004.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-jisx6004.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-jisx6004
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-korean.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-korean.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-korean
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-latin1.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-latin1.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-latin1
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-norwegian.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-norwegian.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-norwegian
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-portuguese.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-portuguese.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-portuguese
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-slovene.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-slovene.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-slovene
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-small.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-small.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-small
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-spanish.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-spanish.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-spanish
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-swedish.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-swedish.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-swedish
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-swissgerman.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-swissgerman.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-swissgerman
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-turkish.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-turkish.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-turkish
++
++install::
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
++ fi
++ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
++ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
++ fi
++ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
++ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
++ fi
++ @for flag in ${MAKEFLAGS} ''; do \
++ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
++ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
++ RELPATH=`echo $(LIBDIR)/. | \
++ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
++ cd $(DESTDIR)$(LIBDIR)/.; \
++ if [ -d app-defaults -a ! -h app-defaults ]; then \
++ (cd app-defaults; tar cf - . | \
++ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
++ tar xf -; exit 0); exit 0); \
++ fi; \
++ $(RM) -r app-defaults; \
++ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
++ fi
++
++install:: XVkbd-uk.ad
++ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ set +x; \
++ else \
++ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
++ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
++ fi; \
++ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
++ fi
++ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-uk.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-uk
++
++# ============================
++# These rules are only for me
++
++_distclean: cleandir
++ -rm Makefile
++
++XVkbd-common.h: XVkbd-common.ad
++ -which ad2c > /dev/null && ad2c XVkbd-common.ad > XVkbd-common.h
++
++HTML = $(HOME)/public_html/homepage3.nifty.com/xvkbd/index.html
++_readme:
++ -[ -f $(HTML) ] && html2man $(HTML) > xvkbd.man
++ ( echo ".pl 10000"; echo ".ll 75"; echo ".hy 0"; echo ".ad l" ) | cat - xvkbd.man | groff -Tascii -man | sed 's/.\b//g' | head -9000 | cat -s | tail +3 > README
++
++# ============================
++
++# ----------------------------------------------------------------------
++# common rules for all Makefiles - do not edit
++
++.c.i:
++ $(RM) $@
++ $(CC) -E $(CFLAGS) $(_NOOP_) $*.c > $@
++
++.SUFFIXES: .ii
++
++.cc.ii:
++ $(RM) $@
++ $(CC) -E $(CFLAGS) $(_NOOP_) $*.cc > $@
++
++.SUFFIXES: .s
++
++.c.s:
++ $(RM) $@
++ $(CC) -S $(CFLAGS) $(_NOOP_) $*.c
++
++.cc.s:
++ $(RM) $@
++ $(CC) -S $(CFLAGS) $(_NOOP_) $*.cc
++
++emptyrule::
++
++cleandir::
++ $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut "#"*
++
++Makefile::
++ -@if [ -f Makefile ]; then set -x; \
++ $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
++ else exit 0; fi
++ $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
++
++tags::
++ $(TAGS) -w *.[ch]
++ $(TAGS) -xw *.[ch] > TAGS
++
++man_keywords::
++
++html_index::
++
++clean:: cleandir
++
++distclean:: cleandir
++
++# ----------------------------------------------------------------------
++# empty rules for directories that do not have SUBDIRS - do not edit
++
++install::
++ @echo "install in $(CURRENT_DIR) done"
++
++install.man::
++ @echo "install.man in $(CURRENT_DIR) done"
++
++install.sdk::
++ @echo "install.sdk in $(CURRENT_DIR) done"
++
++Makefiles::
++
++includes::
++
++depend::
++
++distclean::
++ $(RM) Makefile Makefile.dep
++
++# ----------------------------------------------------------------------
++# dependencies generated by makedepend
++
+++ /dev/null
---- a/Makefile 2008-03-04 06:14:55.425005441 -0500
-+++ b/Makefile 2008-03-05 08:40:50.000000000 -0500
-@@ -0,0 +1,2397 @@
-+# Makefile generated by imake - do not edit!
-+# $Xorg: imake.c,v 1.6 2001/02/09 02:03:15 xorgcvs Exp $
-+
-+# ----------------------------------------------------------------------
-+# Makefile generated from "Imake.tmpl" and <Imakefile>
-+# $Xorg: Imake.tmpl,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
-+# $XdotOrg: util/cf/Imake.tmpl,v 1.17 2006/04/15 15:55:25 herrb Exp $
-+#
-+#
-+#
-+#
-+# $XFree86: xc/config/cf/Imake.tmpl,v 3.155 2003/12/24 18:58:41 dickey Exp $
-+# ----------------------------------------------------------------------
-+
-+all::
-+
-+.SUFFIXES: .i
-+
-+# $XdotOrg: util/cf/Imake.cf,v 1.12 2005/11/08 06:33:24 jkj Exp $
-+# $Xorg: Imake.cf,v 1.4 2000/08/17 19:41:45 cpqbld Exp $
-+
-+# $XFree86: xc/config/cf/Imake.cf,v 3.88 2003/12/16 21:30:21 herrb Exp $
-+
-+# Keep cpp from replacing path elements containing i486/i586/i686
-+
-+# -----------------------------------------------------------------------
-+# site-specific configuration parameters that need to come before
-+# the platform-specific parameters - edit site.def to change
-+
-+# site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
-+
-+# site: $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
-+
-+# $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
-+
-+# ----------------------------------------------------------------------
-+# platform-specific configuration parameters - edit linux.cf to change
-+
-+# $XdotOrg: util/cf/linux.cf,v 1.31 2005/10/21 19:10:27 ajax Exp $
-+# platform: $Xorg: linux.cf,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
-+
-+# platform: $XFree86: xc/config/cf/linux.cf,v 3.220 2003/12/30 22:38:33 tsi Exp $
-+
-+# operating system: Linux 2.6.23.8-63.fc8 i686 [ELF] (2.6.23)
-+# libc: (6.7.0)
-+# binutils: (217)
-+
-+# $Xorg: lnxLib.rules,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
-+# $XFree86: xc/config/cf/lnxLib.rules,v 3.52 2003/10/31 20:49:03 herrb Exp $
-+
-+# $XdotOrg: util/cf/xorg.cf,v 1.53 2005/10/03 16:08:44 alanc Exp $
-+
-+# $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $
-+
-+XORG_VERSION_CURRENT = (((6) * 10000000) + ((8) * 100000) + ((99) * 1000) + 903)
-+RELEASE_VERSION = RELEASE-1
-+
-+AFB_DEFS = -DUSE_AFB
-+
-+DRIVERSDKDIR = $(USRLIBDIR)/Server
-+DRIVERSDKMODULEDIR = $(USRLIBDIR)/Server/modules
-+DRIVERSDKINCLUDEDIR = $(USRLIBDIR)/Server/include
-+
-+ XF86SRC = $(SERVERSRC)/hw/xfree86
-+ XF86COMSRC = $(XF86SRC)/common
-+ XF86PARSERSRC = $(XF86SRC)/parser
-+ XF86OSSRC = $(XF86SRC)/os-support
-+ XF86DRIVERSRC = $(XF86SRC)/drivers
-+ DRIVERSRC = $(XF86DRIVERSRC)
-+
-+ XFREE86DOCDIR = $(DOCDIR)
-+ XFREE86PSDOCDIR = $(DOCPSDIR)
-+ XFREE86PDFDOCDIR = $(DOCPDFDIR)
-+ XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
-+XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
-+
-+# $Xorg: xf86.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $
-+
-+# $XFree86: xc/config/cf/xf86.rules,v 3.34tsi Exp $
-+
-+# ----------------------------------------------------------------------
-+# site-specific configuration parameters that go after
-+# the platform-specific parameters - edit site.def to change
-+
-+# site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
-+
-+# site: $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
-+
-+# ---------------------------------------------------------------------
-+# Imake rules for building libraries, programs, scripts, and data files
-+# rules: $Xorg: Imake.rules,v 1.3 2000/08/17 19:41:46 cpqbld Exp $
-+# rules: $XdotOrg: util/cf/Imake.rules,v 1.11 2005/11/08 06:33:24 jkj Exp $
-+#
-+#
-+#
-+#
-+# rules: $XFree86: xc/config/cf/Imake.rules,v 3.128 2003/11/15 03:25:17 dawes Exp $
-+
-+.PHONY: all interfaces install install.man install.lib install.sdk depend includes cleandir
-+
-+ _NULLCMD_ = @ echo -n
-+
-+X_BYTE_ORDER = X_LITTLE_ENDIAN
-+
-+GLIDE2INCDIR =
-+
-+GLIDE3INCDIR =
-+
-+GLIDE3LIBNAME =
-+
-+TKLIBNAME =
-+
-+TKLIBDIR =
-+
-+TCLLIBNAME =
-+
-+TCLIBDIR =
-+
-+ PATHSEP = /
-+ SHELL = /bin/sh -e
-+
-+ TOP = .
-+ CURRENT_DIR = .
-+
-+ IMAKE = imake
-+ DEPEND = gccmakedep
-+ MKDIRHIER = mkdir -p
-+ REVPATH = revpath
-+ EXPORTLISTGEN =
-+ RMAN = RmanCmd
-+ RMANBASENAME = rman
-+ RMANOPTIONS = RmanOptions
-+ CONFIGSRC = $(TOP)/config
-+ IMAKESRC = $(CONFIGSRC)/imake
-+ DEPENDSRC = $(CONFIGSRC)/util
-+
-+ INCROOT = /usr/include
-+ USRLIBDIR = /usr/lib
-+ VARDIR = /var
-+ VARLIBDIR = $(VARDIR)/lib
-+ SYSTEMUSRLIBDIR = /usr/lib
-+ SYSTEMUSRINCDIR = /usr/include
-+ SHLIBDIR = /usr/lib
-+ LINTLIBDIR = $(USRLIBDIR)/lint
-+ MANPATH = /usr/share/man
-+ MANSOURCEPATH = $(MANPATH)/man
-+ MANDIR = $(MANSOURCEPATH)1
-+ LIBMANDIR = $(MANSOURCEPATH)3
-+ FILEMANDIR = $(MANSOURCEPATH)5
-+ MISCMANDIR = $(MANSOURCEPATH)$(MISCMANSUFFIX)
-+ DRIVERMANDIR = $(MANSOURCEPATH)$(DRIVERMANSUFFIX)
-+ LOGDIRECTORY = $(VARDIR)/log
-+
-+ VARRUNDIR = $(VARDIR)/run
-+
-+ VARDBDIR = $(VARDIR)/lib
-+
-+ AR = ar clq
-+
-+# Nice try but useless: make will inherit BOOTSTRAPCFLAGS
-+# from top Makefile
-+ BOOTSTRAPCFLAGS =
-+
-+ CC = gcc -m32
-+ AS = gcc -m32 -c -x assembler
-+
-+.SUFFIXES: .cc
-+
-+ CXX = c++ -m32
-+
-+ CXXFILT = c++filt
-+
-+ CXXLIB = -lstdc++
-+
-+ CXXDEBUGFLAGS = -O2 -fno-strength-reduce -fno-strict-aliasing
-+CXXDEPENDINCLUDES =
-+ CXXEXTRA_DEFINES =
-+CXXEXTRA_INCLUDES =
-+ CXXSTD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(CXXPROJECT_DEFINES)
-+ CXXOPTIONS =
-+ CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES)
-+ CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(DEFINES) $(CXXEXTRA_DEFINES)
-+ CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
-+
-+ COMPRESS = compress
-+ GZIPCMD = gzip
-+
-+ CPP = cpp $(STD_CPP_DEFINES)
-+ RAWCPP = cpp -undef $(STD_CPP_OPTIONS)
-+ PREPROCESSCMD = gcc -m32 -E $(STD_CPP_DEFINES)
-+
-+ INSTALL = install
-+ INSTALLFLAGS = -c
-+
-+ LD = gcc -m32 -nostdlib
-+
-+ LEX = flex -l
-+ M4 = m4
-+ M4FLAGS =
-+ LEXLIB = -lfl
-+ YACC = bison -y
-+ CCYACC = bison -y
-+
-+ LINT = lint
-+
-+ LINTLIBFLAG = -C
-+ LINTOPTS = -axz
-+ LN = ln -s
-+ MAKE = make
-+ MV = mv -f
-+ CP = cp
-+
-+ RANLIB = ranlib
-+
-+ RANLIBINSTFLAGS =
-+
-+ RM = rm -f
-+ PERL = perl
-+ PERLOPTS =
-+ PERLENVSETUP = env LC_ALL=C
-+ MANSUFFIX = 1x
-+ LIBMANSUFFIX = 3x
-+ FILEMANSUFFIX = 5x
-+ MISCMANSUFFIX = 7
-+ DRIVERMANSUFFIX = 4
-+ ADMINMANSUFFIX = 8
-+ MANSRCSUFFIX = man
-+ MANNEWSUFFIX = _man
-+ MANDEFS = -D__apploaddir__=$(XAPPLOADDIR) -D__appmansuffix__=$(MANSUFFIX) -D__filemansuffix__=$(FILEMANSUFFIX) -D__libmansuffix__=$(LIBMANSUFFIX) -D__miscmansuffix__=$(MISCMANSUFFIX) -D__drivermansuffix__=$(DRIVERMANSUFFIX) -D__adminmansuffix__=$(ADMINMANSUFFIX) -D__projectroot__=$(PROJECTROOT) -D__xconfigfile__=$(XCONFIGFILE) -D__xconfigdir__=$(XCONFIGDIR) -D__xlogfile__=$(XLOGFILE) -D__xservername__=$(XSERVERNAME) $(XORGMANDEFS) $(VENDORMANDEFS)
-+
-+ COMPRESSMANCMD = gzip -n
-+
-+ TROFF = groff -Tps
-+ NROFF = nroff
-+
-+ MSMACROS = -ms
-+ MANMACROS = -man
-+ TBL = tbl
-+ EQN = eqn
-+ NEQN = neqn
-+ COL = col
-+ COLFLAGS = -b
-+
-+ MODCC = gcc -m32
-+
-+ MODCPP = cpp
-+ MODCFLAGS = $(CFLAGS)
-+ MODAS = gcc -m32 -c -x assembler
-+ MODASFLAGS =
-+
-+ MODLD = gcc -m32 -nostdlib
-+
-+ MODLDFLAGS =
-+MODLDCOMBINEFLAGS = -r
-+ MODAR = ar clq
-+
-+ MODRANLIB = ranlib
-+
-+ STD_INCLUDES =
-+ STD_CPP_OPTIONS = -traditional
-+ STD_CPP_DEFINES = -traditional -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(PROJECT_DEFINES)
-+ STD_DEFINES = -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(PROJECT_DEFINES)
-+ EXTRA_LOAD_FLAGS =
-+ EXTRA_LDOPTIONS =
-+ EXTRA_LIBRARIES =
-+ TAGS = ctags
-+
-+ PARALLELMFLAGS =
-+
-+ SHAREDCODEDEF =
-+ SHLIBDEF =
-+
-+ SHLIBLDFLAGS = -shared $(SHLIBGLOBALSFLAGS)
-+
-+ NOSTDLIB = -nostdlib
-+ POSTNOSTDLIB = -Wl,-Bstatic -lgcc -Wl,-Bdynamic
-+
-+ PICFLAGS = -fPIC
-+
-+ CXXPICFLAGS = -fPIC
-+
-+ PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO
-+
-+ INSTPGMFLAGS =
-+
-+ INSTBINFLAGS = -m 0755
-+ INSTUIDFLAGS = -m 4711
-+ INSTLIBFLAGS = -m 0644
-+ INSTINCFLAGS = -m 0444
-+ INSTMANFLAGS = -m 0444
-+ INSTDATFLAGS = -m 0444
-+ INSTKMEMFLAGS = -m 4711
-+
-+ PROJECTROOT = /usr
-+
-+ CDEBUGFLAGS = -O2 -fno-strength-reduce -fno-strict-aliasing
-+ CCOPTIONS =
-+
-+ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
-+ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
-+ CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
-+ LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
-+ LDPRELIB = -L$(USRLIBDIR) $(INSTALLED_LIBS)
-+ LDPOSTLIB =
-+ LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
-+ CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
-+
-+ LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
-+
-+ CCLINK = $(CC)
-+
-+ CXXLINK = $(CXX)
-+
-+ LDSTRIPFLAGS = -x
-+ LDCOMBINEFLAGS = -r
-+ DEPENDFLAGS =
-+ DEPEND_DEFINES =
-+
-+# Not sure this belongs here
-+ TKLIBDIR =
-+ TKINCDIR =
-+ TKLIBNAME =
-+ TKLIBRARY = -L$(TKLIBDIR) -l$(TKLIBNAME)
-+ TCLLIBDIR =
-+ TCLINCDIR =
-+ TCLLIBNAME =
-+ TCLLIBRARY = -L$(TCLLIBDIR) -l$(TCLLIBNAME)
-+
-+ MACROFILE = linux.cf
-+ RM_CMD = $(RM)
-+
-+ IMAKE_DEFINES =
-+ IMAKE_WARNINGS = -Wundef
-+
-+ IRULESRC = $(CONFIGDIR)
-+ IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) $(IMAKE_WARNINGS)
-+
-+ ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl $(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) $(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules $(IRULESRC)/xorgsite.def $(IRULESRC)/host.def $(EXTRA_ICONFIGFILES)
-+
-+# $Xorg: X11.rules,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
-+
-+# $XFree86: xc/config/cf/X11.rules,v 1.6 2001/01/17 16:22:31 dawes Exp $
-+
-+# ----------------------------------------------------------------------
-+# X Window System Build Parameters and Rules
-+# $XdotOrg: util/cf/X11.tmpl,v 1.54 2006/04/15 15:55:25 herrb Exp $
-+# $Xorg: X11.tmpl,v 1.6 2000/08/17 19:41:46 cpqbld Exp $
-+#
-+#
-+#
-+#
-+# $XFree86: xc/config/cf/X11.tmpl,v 1.248 2004/02/16 04:07:37 dawes Exp $
-+
-+XORGRELSTRING = `echo 6 8 99 903 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
-+ XORGMANNAME = X Version 11
-+
-+STICKY_DEFINES = -DHAS_STICKY_DIR_BIT
-+
-+FCHOWN_DEFINES = -DHAS_FCHOWN
-+
-+# -----------------------------------------------------------------------
-+# X Window System make variables; these need to be coordinated with rules
-+
-+ XTOP = $(TOP)
-+ BINDIR = /usr/bin
-+ BUILDINCROOT = $(TOP)/exports
-+ BUILDINCDIR = $(BUILDINCROOT)/include
-+ BUILDINCTOP = ../..
-+ BUILDLIBDIR = $(TOP)/exports/lib
-+ BUILDLIBTOP = ../..
-+ BUILDBINDIR = $(TOP)/exports/bin
-+ BUILDBINTOP = ../..
-+ BUILDMODULEDIR = $(BUILDLIBDIR)/modules
-+ BUILDI18NDIR = $(BUILDLIBDIR)/locale
-+ BUILDMODULETOP = $(BUILDLIBTOP)/..
-+ XBUILDINCROOT = $(XTOP)/exports
-+ XBUILDINCDIR = $(XBUILDINCROOT)/include/X11
-+ XBUILDINCTOP = ../../..
-+ XBUILDBINDIR = $(XBUILDINCROOT)/bin
-+ INCDIR = $(INCROOT)
-+ ADMDIR = /usr/adm
-+ LIBDIR = /usr/lib/X11
-+ SHAREDIR = /usr/share/X11
-+ LIBEXECDIR = /usr/libexec
-+ MODULEDIR = $(USRLIBDIR)/modules
-+ TOP_X_INCLUDES =
-+ XBINDIR = $(PROJECTROOT)/bin
-+
-+ INSTSRCDIR = /usr/src
-+
-+ ETCX11DIR = /etc/X11
-+
-+ CONFDIR = $(ETCX11DIR)
-+
-+ DOCDIR = $(LIBDIR)/doc
-+ DOCHTMLDIR = $(DOCDIR)/html
-+ DOCPSDIR = $(DOCDIR)/PostScript
-+ DOCPDFDIR = $(DOCDIR)/PDF
-+ FONTDIR = $(LIBDIR)/fonts
-+ ENCODINGSDIR = $(LIBDIR)/fonts/encodings
-+ XINITDIR = $(LIBDIR)/xinit
-+ XDMDIR = $(LIBDIR)/xdm
-+ XDMVARDIR = $(VARLIBDIR)/xdm
-+ TWMDIR = $(LIBDIR)/twm
-+ XSMDIR = $(LIBDIR)/xsm
-+ NLSDIR = $(LIBDIR)/nls
-+ XLOCALEDIR = $(LIBDIR)/locale
-+ LBXPROXYDIR = $(LIBDIR)/lbxproxy
-+ PROXYMANAGERDIR = $(LIBDIR)/proxymngr
-+ XPRINTDIR = $(LIBDIR)/xserver
-+ XAPPLOADDIR = /usr/share/X11/app-defaults
-+ FONTCFLAGS = -t
-+
-+ INSTAPPFLAGS = $(INSTDATFLAGS)
-+
-+ RGB = $(XBINDIR)/rgb
-+ FONTC = $(XBINDIR)/bdftopcf
-+ MKFONTSCALE = $(XBINDIR)/mkfontscale
-+ MKFONTDIR = $(XBINDIR)/mkfontdir
-+ MKHTMLINDEX = $(XBINDIR)/mkhtmlindex
-+ UCS2ANY = $(XBINDIR)/ucs2any
-+ BDFTRUNCATE = $(XBINDIR)/bdftruncate
-+ UCSMAPPREFIX = $(FONTDIR)/util/map-
-+ XCURSORGEN = $(XBINDIR)/xcursorgen
-+
-+ HTMLINDEXCMD = HtmlIndexCmd
-+
-+ DOCUTILSRC = $(XTOP)/doc/util
-+ CLIENTSRC = $(TOP)/clients
-+ DEMOSRC = $(TOP)/demos
-+ XDOCMACROS = $(DOCUTILSRC)/macros.t
-+ XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
-+ PROGRAMSRC = $(TOP)/programs
-+ LIBSRC = $(XTOP)/lib
-+ FONTSRC = $(XTOP)/fonts
-+ ENCODINGSSRC = $(FONTSRC)/encodings
-+ INCLUDESRC = $(BUILDINCROOT)/include
-+ XINCLUDESRC = $(INCLUDESRC)/X11
-+ SERVERSRC = $(XTOP)/programs/Xserver
-+ CONTRIBSRC = $(XTOP)/../contrib
-+ UNSUPPORTEDSRC = $(XTOP)/unsupported
-+ DOCSRC = $(XTOP)/doc
-+ RGBSRC = $(XTOP)/programs/rgb
-+ BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
-+ MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
-+ FONTSERVERSRC = $(PROGRAMSRC)/xfs
-+ FONTINCSRC = $(XTOP)/include/fonts
-+ EXTINCSRC = $(XTOP)/include/extensions
-+ FTSOURCEDIR = FreeTypeSrcDir
-+ DRMSRCDIR = $(TOP)/extras/drm
-+ MESASRCDIR = $(TOP)/extras/Mesa
-+ OGLSAMPLESRCDIR = $(TOP)/extras/ogl-sample
-+ PSWRAPSRC = $(XTOP)/config/pswrap
-+ TRANSCOMMSRC = $(LIBSRC)/xtrans
-+ TRANS_INCLUDES = -I$(TRANSCOMMSRC)
-+ CONNECTION_FLAGS = -DUNIXCONN -DTCPCONN $(STICKY_DEFINES) $(FCHOWN_DEFINES) -DIPv6
-+XTRANS_FAILDEFINES = -DFAIL_HARD
-+
-+ VENDORMANNAME = X.Org
-+ VENDORMANVERSION = `echo 6 8 99 903 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
-+ XORGMANDEFS = -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\""
-+ VENDORMANDEFS = -D__vendorversion__="$(VENDORMANVERSION) $(VENDORMANNAME)"
-+ VENDORNAME = The X.Org Foundation
-+ VENDORNAMESHORT = X.Org
-+
-+ VENDORWEBSUPPORT = http://wiki.X.Org
-+
-+VENDORSUPPORTDEFS = -D__VENDORDWEBSUPPORT__='"$(VENDORWEBSUPPORT)"'
-+
-+ XKBDEFRULES = xorg
-+ XKBDEFRULESDEFS = -D__XKBDEFRULES__='"$(XKBDEFRULES)"'
-+
-+ XCONFIGFILE = xorg.conf
-+ XCONFIGDIR = $(LIBDIR)
-+ XLOGFILE = Xorg
-+ XSERVERNAME = Xorg
-+
-+ XENVLIBDIR = $(USRLIBDIR)
-+ CLIENTENVSETUP = LD_LIBRARY_PATH=$(XENVLIBDIR) XLOCALEDIR=$(BUILDLIBDIR)/locale
-+
-+# $Xorg: lnxLib.tmpl,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
-+# $XFree86: xc/config/cf/lnxLib.tmpl,v 3.19 2003/10/15 22:47:48 herrb Exp $
-+
-+ XLIBSRC = $(LIBSRC)/X11
-+
-+SOXLIBREV = 6.2
-+DEPXONLYLIB =
-+XONLYLIB = -lX11
-+
-+LINTXONLY = $(LINTLIBDIR)/llib-lX11.ln
-+
-+ DEPXLIBONLY = $(DEPXONLYLIB)
-+ XLIBONLY = $(XONLYLIB)
-+ LINTXONLYLIB = $(LINTXONLY)
-+
-+ XEXTLIBSRC = $(LIBSRC)/Xext
-+
-+SOXEXTREV = 6.4
-+DEPEXTENSIONLIB =
-+EXTENSIONLIB = -lXext
-+
-+LINTEXTENSION = $(LINTLIBDIR)/llib-lXext.ln
-+
-+LINTEXTENSIONLIB = $(LINTEXTENSION)
-+ DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
-+ XLIB = $(EXTENSIONLIB) $(XONLYLIB)
-+ LINTXLIB = $(LINTXONLYLIB)
-+
-+ XSSLIBSRC = $(LIBSRC)/Xss
-+
-+SOXSSREV = 1.0
-+DEPXSSLIB =
-+XSSLIB = -lXss
-+
-+LINTXSS = $(LINTLIBDIR)/llib-lXss.ln
-+
-+ XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc
-+
-+SOXXF86MISCREV = 1.1
-+DEPXXF86MISCLIB =
-+XXF86MISCLIB = -lXxf86misc
-+
-+LINTXXF86MISC = $(LINTLIBDIR)/llib-lXxf86misc.ln
-+
-+ XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm
-+
-+SOXXF86VMREV = 1.0
-+DEPXXF86VMLIB =
-+XXF86VMLIB = -lXxf86vm
-+
-+LINTXXF86VM = $(LINTLIBDIR)/llib-lXxf86vm.ln
-+
-+ XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga
-+
-+SOXXF86DGAREV = 1.0
-+DEPXXF86DGALIB =
-+XXF86DGALIB = -lXxf86dga
-+
-+LINTXXF86DGA = $(LINTLIBDIR)/llib-lXxf86dga.ln
-+
-+ XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
-+
-+SOXXF86RUSHREV = 1.0
-+DEPXXF86RUSHLIB =
-+XXF86RUSHLIB = -lXxf86rush
-+
-+LINTXXF86RUSH = $(LINTLIBDIR)/llib-lXxf86rush.ln
-+
-+ XVLIBSRC = $(LIBSRC)/Xv
-+
-+SOXVREV = 1.0
-+DEPXVLIB =
-+XVLIB = -lXv
-+
-+LINTXV = $(LINTLIBDIR)/llib-lXv.ln
-+
-+ XVMCLIBSRC = $(LIBSRC)/XvMC
-+
-+SOXVMCREV = 1.0
-+DEPXVMCLIB =
-+XVMCLIB = -lXvMC
-+
-+LINTXVMC = $(LINTLIBDIR)/llib-lXvMC.ln
-+
-+ XINERAMALIBSRC = $(LIBSRC)/Xinerama
-+
-+SOXINERAMAREV = 1.0
-+DEPXINERAMALIB =
-+XINERAMALIB = -lXinerama
-+
-+LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
-+
-+ XRESLIBSRC = $(LIBSRC)/XRes
-+
-+SOXRESREV = 1.0
-+DEPXRESLIB =
-+XRESLIB = -lXRes
-+
-+LINTXRES = $(LINTLIBDIR)/llib-lXRes.ln
-+
-+ DMXLIBSRC = $(LIBSRC)/dmx
-+
-+DEPDMXLIB = $(USRLIBDIR)/libdmx.a
-+DMXLIB = -ldmx
-+
-+LINTDMX = $(LINTLIBDIR)/llib-ldmx.ln
-+
-+ DPSLIBSRC = $(LIBSRC)/dps
-+
-+DEPDPSLIB = $(USRLIBDIR)/libdps.a
-+DPSLIB = -ldps
-+
-+LINTDPS = $(LINTLIBDIR)/llib-ldps.ln
-+
-+ DPSTKLIBSRC = $(LIBSRC)/dpstk
-+
-+DEPDPSTKLIB = $(USRLIBDIR)/libdpstk.a
-+DPSTKLIB = -ldpstk
-+
-+LINTDPSTK = $(LINTLIBDIR)/llib-ldpstk.ln
-+
-+ PSRESLIBSRC = $(LIBSRC)/psres
-+
-+DEPPSRESLIB = $(USRLIBDIR)/libpsres.a
-+PSRESLIB = -lpsres
-+
-+LINTPSRES = $(LINTLIBDIR)/llib-lpsres.ln
-+
-+ GLULIBSRC = $(LIBSRC)/GLU
-+
-+SOGLUREV = 1.3
-+DEPGLULIB =
-+GLULIB = -lGLU
-+
-+LINTGLU = $(LINTLIBDIR)/llib-lGLU.ln
-+
-+ GLXLIBSRC = $(LIBSRC)/GL
-+
-+SOGLREV = 1.2
-+DEPGLXLIB =
-+GLXLIB = -lGL
-+
-+LINTGLX = $(LINTLIBDIR)/llib-lGL.ln
-+
-+ GLWIDGETSRC = $(LIBSRC)/GLw
-+
-+SOGLWREV = 1.0
-+DEPGLWLIB =
-+GLWLIB = -lGLw
-+
-+LINTGLW = $(LINTLIBDIR)/llib-lGLw.ln
-+
-+ XRENDERLIBSRC = $(LIBSRC)/Xrender
-+
-+SOXRENDERREV = 1.2.2
-+DEPXRENDERLIB =
-+XRENDERLIB = -lXrender
-+
-+LINTXRENDER = $(LINTLIBDIR)/llib-lXrender.ln
-+
-+ XRANDRLIBSRC = $(LIBSRC)/Xrandr
-+
-+SOXRANDRREV = 2.0
-+DEPXRANDRLIB =
-+XRANDRLIB = -lXrandr
-+
-+LINTXRANDR = $(LINTLIBDIR)/llib-lXrandr.ln
-+
-+ XFIXESLIBSRC = $(LIBSRC)/Xfixes
-+
-+SOXFIXESREV = 3.0
-+DEPXFIXESLIB =
-+XFIXESLIB = -lXfixes
-+
-+LINTXFIXES = $(LINTLIBDIR)/llib-lXfixes.ln
-+
-+ XDAMAGELIBSRC = $(LIBSRC)/Xdamage
-+
-+SOXDAMAGEREV = 1.0
-+DEPXDAMAGELIB =
-+XDAMAGELIB = -lXdamage
-+
-+LINTXDAMAGE = $(LINTLIBDIR)/llib-lXdamage.ln
-+
-+XCOMPOSITELIBSRC = $(LIBSRC)/Xcomposite
-+
-+SOXCOMPOSITEREV = 1.0
-+DEPXCOMPOSITELIB =
-+XCOMPOSITELIB = -lXcomposite
-+
-+LINTXCOMPOSITE = $(LINTLIBDIR)/llib-lXcomposite.ln
-+
-+XEVIELIBSRC = $(LIBSRC)/Xevie
-+
-+SOXEVIEREV = 1.0
-+DEPXEVIELIB =
-+XEVIELIB = -lXevie
-+
-+LINTXEVIE = $(LINTLIBDIR)/llib-lXevie.ln
-+
-+ XCURSORLIBSRC = $(LIBSRC)/Xcursor
-+
-+SOXCURSORREV = 1.0.2
-+DEPXCURSORLIB =
-+XCURSORLIB = -lXcursor
-+
-+LINTXCURSOR = $(LINTLIBDIR)/llib-lXcursor.ln
-+
-+ APPLEWMLIBSRC = $(LIBSRC)/apple
-+
-+DEPAPPLEWMLIB = $(USRLIBDIR)/libAppleWM.a
-+APPLEWMLIB = -lAppleWM
-+
-+LINTAPPLEWM = $(LINTLIBDIR)/llib-lAppleWM.ln
-+
-+ WINDOWSWMLIBSRC = $(LIBSRC)/windows
-+
-+DEPWINDOWSWMLIB = $(USRLIBDIR)/libWindowsWM.a
-+WINDOWSWMLIB = -lWindowsWM
-+
-+LINTWINDOWSWM = $(LINTLIBDIR)/llib-lWindowsWM.ln
-+
-+ XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache
-+
-+SOXFONTCACHEREV = 1.2
-+DEPXFONTCACHELIB =
-+XFONTCACHELIB = -lXfontcache
-+
-+LINTXFONTCACHE = $(LINTLIBDIR)/llib-lXfontcache.ln
-+
-+ XAUTHSRC = $(LIBSRC)/Xau
-+
-+SOXAUTHREV = 6.0
-+DEPXAUTHLIB =
-+XAUTHLIB = -lXau
-+
-+LINTXAUTH = $(LINTLIBDIR)/llib-lXau.ln
-+
-+ XDMCPLIBSRC = $(LIBSRC)/Xdmcp
-+
-+SOXDMCPREV = 6.0
-+DEPXDMCPLIB =
-+XDMCPLIB = -lXdmcp
-+
-+LINTXDMCP = $(LINTLIBDIR)/llib-lXdmcp.ln
-+
-+ XMUSRC = $(LIBSRC)/Xmu
-+
-+SOXMUREV = 6.2
-+DEPXMULIB =
-+XMULIB = -lXmu
-+
-+LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
-+
-+ XMUUSRC = $(LIBSRC)/Xmuu
-+
-+SOXMUUREV = 1.0
-+DEPXMUULIB =
-+XMUULIB = -lXmuu
-+
-+LINTXMUU = $(LINTLIBDIR)/llib-lXmuu.ln
-+
-+ OLDXLIBSRC = $(LIBSRC)/oldX
-+
-+DEPOLDXLIB = $(USRLIBDIR)/liboldX.a
-+OLDXLIB = -loldX
-+
-+LINTOLDX = $(LINTLIBDIR)/llib-loldX.ln
-+
-+ XPLIBSRC = $(LIBSRC)/Xp
-+
-+SOXPREV = 6.2
-+DEPXPLIB =
-+XPLIB = -lXp
-+
-+LINTXP = $(LINTLIBDIR)/llib-lXp.ln
-+
-+ TOOLKITSRC = $(LIBSRC)/Xt
-+
-+SOXTREV = 6.0
-+DEPXTOOLONLYLIB =
-+XTOOLONLYLIB = -lXt
-+
-+LINTXTOOLONLY = $(LINTLIBDIR)/llib-lXt.ln
-+
-+ DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
-+ XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
-+ LINTXTOOLLIB = $(LINTXTOOLONLYLIB)
-+
-+ XALIBSRC = $(LIBSRC)/Xa
-+
-+SOXAREV = 1.0
-+DEPXALIB =
-+XALIB = -lXa
-+
-+LINTXA = $(LINTLIBDIR)/llib-lXa.ln
-+
-+ AWIDGETSRC = $(LIBSRC)/Xaw
-+
-+SOXAWREV = 8.0
-+DEPXAWLIB =
-+XAWLIB = -lXaw
-+
-+LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
-+
-+ AWIDGET7SRC = $(LIBSRC)/Xaw7
-+
-+SOXAW7REV = 7.0
-+DEPXAW7LIB =
-+XAW7LIB = -lXaw
-+
-+LINTXAW7 = $(LINTLIBDIR)/llib-lXaw.ln
-+
-+ AWIDGET6SRC = $(LIBSRC)/Xaw6
-+
-+SOXAW6REV = 6.1
-+DEPXAW6LIB =
-+XAW6LIB = -lXaw
-+
-+LINTXAW6 = $(LINTLIBDIR)/llib-lXaw.ln
-+
-+ XILIBSRC = $(LIBSRC)/Xi
-+
-+SOXINPUTREV = 6.0
-+DEPXILIB =
-+XILIB = -lXi
-+
-+LINTXI = $(LINTLIBDIR)/llib-lXi.ln
-+
-+ XTESTLIBSRC = $(LIBSRC)/Xtst
-+
-+SOXTESTREV = 6.1
-+DEPXTESTLIB =
-+XTESTLIB = -lXtst
-+
-+LINTXTEST = $(LINTLIBDIR)/llib-lXtst.ln
-+
-+DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
-+XBSDLIB = -lXbsd
-+
-+LINTXBSD = $(LINTLIBDIR)/llib-lXbsd.ln
-+
-+ ICESRC = $(LIBSRC)/ICE
-+
-+SOICEREV = 6.4
-+DEPICELIB =
-+ICELIB = -lICE
-+
-+LINTICE = $(LINTLIBDIR)/llib-lICE.ln
-+
-+ SMSRC = $(LIBSRC)/SM
-+
-+SOSMREV = 6.0
-+DEPSMLIB =
-+SMLIB = -lSM
-+
-+LINTSM = $(LINTLIBDIR)/llib-lSM.ln
-+
-+ XKEYSRC = $(LIBSRC)/Xkey
-+
-+SOXKEYREV = 6.0
-+DEPXKEYLIB =
-+XKEYLIB = -lXkey
-+
-+LINTXKEY = $(LINTLIBDIR)/llib-lXkey.ln
-+
-+ FSLIBSRC = $(LIBSRC)/FS
-+
-+SOFSREV = 6.0
-+DEPFSLIB =
-+FSLIB = -lFS
-+
-+LINTFS = $(LINTLIBDIR)/llib-lFS.ln
-+
-+ FONTLIBSRC = $(LIBSRC)/font
-+
-+SOFONTREV = 1.5
-+DEPFONTLIB =
-+FONTLIB = -L$(FREETYPELIBDIR) -L$(FONTLIBSRC) -lXfont
-+
-+LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
-+#
-+SOFONTREV = 1.5
-+DEPXFONTLIB =
-+XFONTLIB = -lXfont
-+
-+LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
-+
-+ FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs
-+
-+DEPFONTSTUBLIB = $(USRLIBDIR)/libfntstubs.a
-+FONTSTUBLIB = -lfntstubs
-+
-+LINTFONTSTUB = $(LINTLIBDIR)/llib-lfntstubs.ln
-+ DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB)
-+ FONTLIB = $(XFONTLIB) $(FONTSTUBLIB) $(FREETYPE2LIB)
-+
-+ FONTENCLIBSRC = $(LIBSRC)/fontenc
-+
-+SOFONTENCREV = 1.0
-+DEPXFONTENCLIB =
-+XFONTENCLIB = -lfontenc
-+
-+LINTXFONTENC = $(LINTLIBDIR)/llib-lfontenc.ln
-+
-+ XPMLIBSRC = $(LIBSRC)/Xpm
-+
-+SOXPMREV = 4.11
-+DEPXPMLIB =
-+XPMLIB = -lXpm
-+
-+LINTXPM = $(LINTLIBDIR)/llib-lXpm.ln
-+
-+FREETYPE2DIR = /usr
-+FREETYPE2LIBDIR = /usr/lib
-+FREETYPE2INCDIR = /usr/include
-+
-+FREETYPE2LIB = -lfreetype
-+
-+FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)/freetype2 -I$(FREETYPE2INCDIR)/freetype2/config
-+
-+FREETYPE2DEFINES = -DFREETYPE2
-+
-+ EXPATLIBSRC = $(LIBSRC)/expat
-+
-+SOEXPATREV = 0.4
-+DEPEXPATLIB =
-+EXPATLIB = -lexpat
-+
-+LINTEXPAT = $(LINTLIBDIR)/llib-lexpat.ln
-+
-+EXPATDIR = /usr
-+EXPATLIBDIR = /usr/lib
-+EXPATINCDIR = /usr/include
-+
-+EXPATINCLUDES =
-+
-+EXPATLIB = -lexpat
-+
-+EXPATDEFINES = -DEXPAT
-+
-+ XFT1LIBSRC = $(LIBSRC)/Xft1
-+
-+SOXFT1REV = 1.1
-+DEPXFT1LIB =
-+XFT1LIB = -lXft
-+
-+LINTXFT1 = $(LINTLIBDIR)/llib-lXft.ln
-+
-+ XFTLIBSRC = $(LIBSRC)/Xft
-+
-+SOXFTREV = 2.1.2
-+DEPXFTLIB =
-+XFTLIB = -lXft
-+
-+LINTXFT = $(LINTLIBDIR)/llib-lXft.ln
-+
-+ FONTCONFIGLIBSRC = $(LIBSRC)/fontconfig
-+
-+SOFONTCONFIGREV = 1.0.4
-+DEPFONTCONFIGLIB =
-+FONTCONFIGLIB = -lfontconfig
-+
-+LINTFONTCONFIG = $(LINTLIBDIR)/llib-lfontconfig.ln
-+
-+FONTCONFIGINCDIR=$(INCDIR)
-+
-+FONTCONFIGINCLUDES = -I$(FONTCONFIGINCDIR)
-+
-+FCCACHE = $(BINDIR)/fc-cache
-+
-+FONTCONFIGDEFINES = -DFONTCONFIG
-+
-+XFTINCLUDES=$(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES)
-+
-+LIBPNGINCDIR = /usr/include
-+
-+LIBPNGINC=
-+
-+LIBPNGDIR = /usr
-+LIBPNGLIBDIR = /usr/lib
-+LIBPNGINCDIR = /usr/include
-+
-+LIBPNGLIB = -lpng
-+
-+ XKBFILELIBSRC = $(LIBSRC)/xkbfile
-+
-+SOXKBFILEREV = 1.0
-+DEPXKBFILELIB =
-+XKBFILELIB = -lxkbfile
-+
-+LINTXKBFILE = $(LINTLIBDIR)/llib-lxkbfile.ln
-+
-+ XKBCOMPCMD = $(XBINDIR)/xkbcomp
-+
-+ XKBUILIBSRC = $(LIBSRC)/xkbui
-+
-+SOXKBUIREV = 1.0
-+DEPXKBUILIB =
-+XKBUILIB = -lxkbui
-+
-+LINTXKBUI = $(LINTLIBDIR)/llib-lxkbui.ln
-+
-+EXTRAXAWREQS =
-+
-+EXTRAXAWCLIENTDEPLIBS =
-+
-+EXTRAXAWCLIENTLIBS =
-+
-+ XTRAPLIBSRC = $(LIBSRC)/XTrap
-+
-+SOXTRAPREV = 6.4
-+DEPXTRAPLIB =
-+XTRAPLIB = -lXTrap
-+
-+LINTXTRAP = $(LINTLIBDIR)/llib-lXTrap.ln
-+
-+ DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
-+
-+ DEPLIBS1 = $(DEPLIBS)
-+ DEPLIBS2 = $(DEPLIBS)
-+ DEPLIBS3 = $(DEPLIBS)
-+ DEPLIBS4 = $(DEPLIBS)
-+ DEPLIBS5 = $(DEPLIBS)
-+ DEPLIBS6 = $(DEPLIBS)
-+ DEPLIBS7 = $(DEPLIBS)
-+ DEPLIBS8 = $(DEPLIBS)
-+ DEPLIBS9 = $(DEPLIBS)
-+ DEPLIBS10 = $(DEPLIBS)
-+
-+ FCPRELOADPATTERN = libfontconfig.so.?
-+
-+ XFTPRELOADPATTERN = libXft.so.?
-+ XRENDERPRELOADPATTERN = libXrender.so.?
-+ XFONTPRELOADPATTERN = libXfont*.so.?
-+
-+XMULIBONLY = -lXmu
-+XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
-+
-+ CONFIGDIR = /usr/share/X11/config
-+
-+ USRLIBDIRPATH = $(USRLIBDIR)
-+ LDPRELIBS = -L$(USRLIBDIR) $(INSTALLED_LIBS)
-+ LDPOSTLIBS =
-+ TOP_INCLUDES = -I$(INCROOT) $(TOP_X_INCLUDES)
-+ PROJECT_DEFINES =
-+ VENDOR_DEFINES = -DXVENDORNAME='"$(VENDORNAME)"' -DXVENDORNAMESHORT='"$(VENDORNAMESHORT)"'
-+
-+CXXPROJECT_DEFINES =
-+
-+# ----------------------------------------------------------------------
-+# start of Imakefile
-+
-+# Remove the next line if you want genuine Xaw instead of Xaw3d
-+
-+# Remove the next line if you don't want to enable XTEST support
-+
-+# Remove the next line if you want to disable internationalization
-+
-+SRCS = xvkbd.c findwidget.c
-+OBJS = xvkbd.o findwidget.o
-+DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXPMLIB) $(EXTRAXAWCLIENTDEPLIBS) $(DEPXLIB)
-+SYS_LIBRARIES = $(XAWLIB) $(XMULIBONLY) $(XTOOLLIB) $(XPMLIB) $(EXTRAXAWCLIENTLIBS) $(XLIB)
-+
-+D_XTEST = -DUSE_XTEST
-+SYS_LIBRARIES = $(XAWLIB) $(XMULIBONLY) $(XTOOLLIB) $(XPMLIB) $(EXTRAXAWCLIENTLIBS) $(XLIB) -lXtst
-+
-+D_I18N = -DUSE_I18N
-+
-+DEFINES = $(D_XAW3D) $(D_XTEST) $(D_I18N)
-+
-+xvkbd.o: xvkbd.c resources.h XVkbd-common.h
-+ $(RM) $@
-+ $(CC) -c $(CFLAGS) $*.c
-+
-+ PROGRAM = xvkbd
-+
-+all:: xvkbd
-+
-+xvkbd: $(OBJS) $(DEPLIBS)
-+ $(RM) $@
-+ $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
-+
-+install:: xvkbd
-+ @if [ -d $(DESTDIR)$(BINDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(BINDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(BINDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTPGMFLAGS) xvkbd $(DESTDIR)$(BINDIR)/xvkbd
-+
-+all:: xvkbd.$(MANNEWSUFFIX)
-+
-+xvkbd.$(MANNEWSUFFIX): xvkbd.$(MANSRCSUFFIX)
-+ $(RM) $@
-+ if test -z "$(PREPROCESSMANPAGES)" ; then \
-+ cd `dirname xvkbd` && \
-+ $(LN) `basename xvkbd.$(MANSRCSUFFIX)` `basename $@`; \
-+ else \
-+ $(RAWCPP) $(MANDEFS) $(EXTRAMANDEFS) \
-+ < xvkbd.$(MANSRCSUFFIX) | sed -e '/^# *[0-9][0-9]* *.*$$/d' -e '/^#line *[0-9][0-9]* *.*$$/d' -e '/^[ ]*XCOMM$$/s/XCOMM/#/' -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/#/' -e '/^[ ]*XHASH/s/XHASH/#/' -e '/\@\@$$/s/\@\@$$/\\/' >$@; \
-+ fi
-+
-+cleandir::
-+ $(RM) xvkbd.$(MANNEWSUFFIX)
-+
-+install.man:: xvkbd.$(MANNEWSUFFIX)
-+ @if [ -d $(DESTDIR)$(MANDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(MANDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(MANDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) xvkbd.$(MANNEWSUFFIX) $(DESTDIR)$(MANDIR)/xvkbd.$(MANSUFFIX)
-+
-+depend::
-+ $(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS)
-+
-+lint:
-+ $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
-+lint1:
-+ $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
-+
-+cleandir::
-+ $(RM) xvkbd
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-belgian.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-belgian.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-belgian
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-common.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-common.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-common
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-danish.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-danish.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-danish
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-fitaly.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-fitaly.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-fitaly
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-french.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-french.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-french
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-french2.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-french2.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-french2
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-german.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-german.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-german
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-greek.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-greek.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-greek
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-hebrew.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-hebrew.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-hebrew
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-icelandic.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-icelandic.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-icelandic
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-italian.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-italian.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-italian
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-jisx6002.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-jisx6002.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-jisx6002
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-jisx6004.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-jisx6004.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-jisx6004
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-korean.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-korean.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-korean
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-latin1.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-latin1.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-latin1
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-norwegian.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-norwegian.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-norwegian
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-portuguese.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-portuguese.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-portuguese
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-slovene.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-slovene.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-slovene
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-small.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-small.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-small
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-spanish.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-spanish.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-spanish
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-swedish.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-swedish.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-swedish
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-swissgerman.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-swissgerman.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-swissgerman
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-turkish.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-turkish.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-turkish
-+
-+install::
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ $(RM) $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ fi
-+ @if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(LIBDIR)/. ]; then \
-+ (set -x; rm -f $(DESTDIR)$(LIBDIR)/.); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(LIBDIR)/.); \
-+ fi
-+ @if [ -d $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(CONFDIR)/app-defaults ]; then \
-+ (set -x; rm -f $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(CONFDIR)/app-defaults); \
-+ fi
-+ @for flag in ${MAKEFLAGS} ''; do \
-+ case "$$flag" in *=*) ;; --*) ;; *[i]*) set +e;; esac; done; \
-+ if [ -d $(DESTDIR)$(LIBDIR)/. ]; then \
-+ RELPATH=`echo $(LIBDIR)/. | \
-+ sed -e 's:^/::' -e 's:[^/.][^/]*:..:'g -e 's:/\.$$::'`; \
-+ cd $(DESTDIR)$(LIBDIR)/.; \
-+ if [ -d app-defaults -a ! -h app-defaults ]; then \
-+ (cd app-defaults; tar cf - . | \
-+ (cd $(DESTDIR)$(CONFDIR)/app-defaults; \
-+ tar xf -; exit 0); exit 0); \
-+ fi; \
-+ $(RM) -r app-defaults; \
-+ $(LN) $${RELPATH}$(CONFDIR)/app-defaults .; \
-+ fi
-+
-+install:: XVkbd-uk.ad
-+ @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ set +x; \
-+ else \
-+ if [ -h $(DESTDIR)$(XAPPLOADDIR) ]; then \
-+ (set -x; rm -f $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi; \
-+ (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); \
-+ fi
-+ $(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) XVkbd-uk.ad $(DESTDIR)$(XAPPLOADDIR)/XVkbd-uk
-+
-+# ============================
-+# These rules are only for me
-+
-+_distclean: cleandir
-+ -rm Makefile
-+
-+XVkbd-common.h: XVkbd-common.ad
-+ -which ad2c > /dev/null && ad2c XVkbd-common.ad > XVkbd-common.h
-+
-+HTML = $(HOME)/public_html/homepage3.nifty.com/xvkbd/index.html
-+_readme:
-+ -[ -f $(HTML) ] && html2man $(HTML) > xvkbd.man
-+ ( echo ".pl 10000"; echo ".ll 75"; echo ".hy 0"; echo ".ad l" ) | cat - xvkbd.man | groff -Tascii -man | sed 's/.\b//g' | head -9000 | cat -s | tail +3 > README
-+
-+# ============================
-+
-+# ----------------------------------------------------------------------
-+# common rules for all Makefiles - do not edit
-+
-+.c.i:
-+ $(RM) $@
-+ $(CC) -E $(CFLAGS) $(_NOOP_) $*.c > $@
-+
-+.SUFFIXES: .ii
-+
-+.cc.ii:
-+ $(RM) $@
-+ $(CC) -E $(CFLAGS) $(_NOOP_) $*.cc > $@
-+
-+.SUFFIXES: .s
-+
-+.c.s:
-+ $(RM) $@
-+ $(CC) -S $(CFLAGS) $(_NOOP_) $*.c
-+
-+.cc.s:
-+ $(RM) $@
-+ $(CC) -S $(CFLAGS) $(_NOOP_) $*.cc
-+
-+emptyrule::
-+
-+cleandir::
-+ $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut "#"*
-+
-+Makefile::
-+ -@if [ -f Makefile ]; then set -x; \
-+ $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
-+ else exit 0; fi
-+ $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
-+
-+tags::
-+ $(TAGS) -w *.[ch]
-+ $(TAGS) -xw *.[ch] > TAGS
-+
-+man_keywords::
-+
-+html_index::
-+
-+clean:: cleandir
-+
-+distclean:: cleandir
-+
-+# ----------------------------------------------------------------------
-+# empty rules for directories that do not have SUBDIRS - do not edit
-+
-+install::
-+ @echo "install in $(CURRENT_DIR) done"
-+
-+install.man::
-+ @echo "install.man in $(CURRENT_DIR) done"
-+
-+install.sdk::
-+ @echo "install.sdk in $(CURRENT_DIR) done"
-+
-+Makefiles::
-+
-+includes::
-+
-+depend::
-+
-+distclean::
-+ $(RM) Makefile Makefile.dep
-+
-+# ----------------------------------------------------------------------
-+# dependencies generated by makedepend
-+
--- /dev/null
+[PATCH] fix json_reformat linking on uClibc
+
+json_reformat calls yajl_gen_* functions, which internally use isnan() /
+isinf(). On Glibc, these are provided by libc, but on uClibc you need to
+link with -lm (like the spec says), so ensure we do so.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ reformatter/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: yajl-2.0.2/reformatter/CMakeLists.txt
+===================================================================
+--- yajl-2.0.2.orig/reformatter/CMakeLists.txt
++++ yajl-2.0.2/reformatter/CMakeLists.txt
+@@ -26,7 +26,7 @@
+
+ ADD_EXECUTABLE(json_reformat ${SRCS})
+
+-TARGET_LINK_LIBRARIES(json_reformat yajl_s)
++TARGET_LINK_LIBRARIES(json_reformat yajl_s m)
+
+ # copy the binary into the output directory
+ GET_TARGET_PROPERTY(binPath json_reformat LOCATION)
--- /dev/null
+From bb4fb7ff71fd6cadd9c1bf8716845a91e5998c0c Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 31 Aug 2014 00:39:11 +0200
+Subject: [PATCH 2/2] cmake: disable shared library build when
+ BUILD_SHARED_LIBS is off
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ src/CMakeLists.txt | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e36b736..6a24424 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -37,6 +37,7 @@ SET(LIBRARY_OUTPUT_PATH ${libDir})
+
+ ADD_LIBRARY(yajl_s STATIC ${SRCS} ${HDRS} ${PUB_HDRS})
+
++IF(BUILD_SHARED_LIBS)
+ ADD_LIBRARY(yajl SHARED ${SRCS} ${HDRS} ${PUB_HDRS})
+
+ #### setup shared library version number
+@@ -51,6 +52,7 @@ IF(APPLE)
+ SET_TARGET_PROPERTIES(yajl PROPERTIES
+ INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+ ENDIF(APPLE)
++ENDIF(BUILD_SHARED_LIBS)
+
+ #### build up an sdk as a post build step
+
+@@ -78,7 +80,9 @@ INCLUDE_DIRECTORIES(${incDir}/..)
+ IF(NOT WIN32)
+ # at build time you may specify the cmake variable LIB_SUFFIX to handle
+ # 64-bit systems which use 'lib64'
++ IF(BUILD_SHARED_LIBS)
+ INSTALL(TARGETS yajl LIBRARY DESTINATION lib${LIB_SUFFIX})
++ ENDIF(BUILD_SHARED_LIBS)
+ INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX})
+ INSTALL(FILES ${PUB_HDRS} DESTINATION include/yajl)
+ INSTALL(FILES ${incDir}/yajl_version.h DESTINATION include/yajl)
+--
+2.1.0
+
+++ /dev/null
-[PATCH] fix json_reformat linking on uClibc
-
-json_reformat calls yajl_gen_* functions, which internally use isnan() /
-isinf(). On Glibc, these are provided by libc, but on uClibc you need to
-link with -lm (like the spec says), so ensure we do so.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- reformatter/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: yajl-2.0.2/reformatter/CMakeLists.txt
-===================================================================
---- yajl-2.0.2.orig/reformatter/CMakeLists.txt
-+++ yajl-2.0.2/reformatter/CMakeLists.txt
-@@ -26,7 +26,7 @@
-
- ADD_EXECUTABLE(json_reformat ${SRCS})
-
--TARGET_LINK_LIBRARIES(json_reformat yajl_s)
-+TARGET_LINK_LIBRARIES(json_reformat yajl_s m)
-
- # copy the binary into the output directory
- GET_TARGET_PROPERTY(binPath json_reformat LOCATION)
+++ /dev/null
-From bb4fb7ff71fd6cadd9c1bf8716845a91e5998c0c Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sun, 31 Aug 2014 00:39:11 +0200
-Subject: [PATCH 2/2] cmake: disable shared library build when
- BUILD_SHARED_LIBS is off
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- src/CMakeLists.txt | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index e36b736..6a24424 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -37,6 +37,7 @@ SET(LIBRARY_OUTPUT_PATH ${libDir})
-
- ADD_LIBRARY(yajl_s STATIC ${SRCS} ${HDRS} ${PUB_HDRS})
-
-+IF(BUILD_SHARED_LIBS)
- ADD_LIBRARY(yajl SHARED ${SRCS} ${HDRS} ${PUB_HDRS})
-
- #### setup shared library version number
-@@ -51,6 +52,7 @@ IF(APPLE)
- SET_TARGET_PROPERTIES(yajl PROPERTIES
- INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
- ENDIF(APPLE)
-+ENDIF(BUILD_SHARED_LIBS)
-
- #### build up an sdk as a post build step
-
-@@ -78,7 +80,9 @@ INCLUDE_DIRECTORIES(${incDir}/..)
- IF(NOT WIN32)
- # at build time you may specify the cmake variable LIB_SUFFIX to handle
- # 64-bit systems which use 'lib64'
-+ IF(BUILD_SHARED_LIBS)
- INSTALL(TARGETS yajl LIBRARY DESTINATION lib${LIB_SUFFIX})
-+ ENDIF(BUILD_SHARED_LIBS)
- INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX})
- INSTALL(FILES ${PUB_HDRS} DESTINATION include/yajl)
- INSTALL(FILES ${incDir}/yajl_version.h DESTINATION include/yajl)
---
-2.1.0
-
--- /dev/null
+ympd is implemented only in C
+
+By default, CMake assumes that the project is using both C and C++. By
+explicitly passing 'C' as argument of the project() macro, we tell
+CMake that only C is used, which prevents CMake from checking if a C++
+compiler exists.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/CMakeLists.txt
+===================================================================
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ cmake_minimum_required(VERSION 2.6)
+
+-project (ympd)
++project (ympd C)
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/")
+ set(CPACK_PACKAGE_VERSION_MAJOR "1")
+ set(CPACK_PACKAGE_VERSION_MINOR "2")
+++ /dev/null
-ympd is implemented only in C
-
-By default, CMake assumes that the project is using both C and C++. By
-explicitly passing 'C' as argument of the project() macro, we tell
-CMake that only C is used, which prevents CMake from checking if a C++
-compiler exists.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/CMakeLists.txt
-===================================================================
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,6 @@
- cmake_minimum_required(VERSION 2.6)
-
--project (ympd)
-+project (ympd C)
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/")
- set(CPACK_PACKAGE_VERSION_MAJOR "1")
- set(CPACK_PACKAGE_VERSION_MINOR "2")
--- /dev/null
+From 4a2a55a640dd9316dac5f31832064f28f59ab0ae Mon Sep 17 00:00:00 2001
+From: Richard Braun <rbraun@sceen.net>
+Date: Fri, 4 Jan 2013 10:57:24 +0100
+Subject: [PATCH] zic: fix dependencies
+
+The yearistype script is provided by the tzdata package, and is required
+at runtime only.
+---
+ Makefile | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index d76a81e..30df7dc 100644
+--- a/Makefile
++++ b/Makefile
+@@ -349,7 +349,7 @@ version.h:
+ zdump: $(TZDOBJS)
+ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
+
+-zic: $(TZCOBJS) yearistype
++zic: $(TZCOBJS)
+ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
+
+ yearistype: yearistype.sh
+--
+1.7.2.5
+
+++ /dev/null
-From 4a2a55a640dd9316dac5f31832064f28f59ab0ae Mon Sep 17 00:00:00 2001
-From: Richard Braun <rbraun@sceen.net>
-Date: Fri, 4 Jan 2013 10:57:24 +0100
-Subject: [PATCH] zic: fix dependencies
-
-The yearistype script is provided by the tzdata package, and is required
-at runtime only.
----
- Makefile | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index d76a81e..30df7dc 100644
---- a/Makefile
-+++ b/Makefile
-@@ -349,7 +349,7 @@ version.h:
- zdump: $(TZDOBJS)
- $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
-
--zic: $(TZCOBJS) yearistype
-+zic: $(TZCOBJS)
- $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
-
- yearistype: yearistype.sh
---
-1.7.2.5
-
--- /dev/null
+From a9f6a55bdb29a2bebc96a68ab53077906c25a9df Mon Sep 17 00:00:00 2001
+From: Yegor Yefremov <yegorslists@googlemail.com>
+Date: Wed, 22 Jan 2014 15:04:42 +0100
+Subject: [PATCH] Fix compiling on Buildroot
+
+Buildroot always specifies -D_LARGEFILE_SOURCE, -D_LARGEFILE64_SOURCE,
+-D_FILE_OFFSET_BITS=64, so define them only if they are not already
+defined.
+
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+---
+ src/fmacros.h | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/src/fmacros.h b/src/fmacros.h
+index fa37948..059dfeb 100644
+--- a/src/fmacros.h
++++ b/src/fmacros.h
+@@ -14,7 +14,11 @@
+ #define _XOPEN_SOURCE
+ #endif
+
++#ifndef _LARGEFILE_SOURCE
+ #define _LARGEFILE_SOURCE
++#endif
++#ifndef _FILE_OFFSET_BITS
+ #define _FILE_OFFSET_BITS 64
++#endif
+
+ #endif
+--
+1.7.7
--- /dev/null
+From 4a08c9e07fa8b7a1d6a76b927ea97e3eaa784845 Mon Sep 17 00:00:00 2001
+From: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+Date: Sun, 26 Oct 2014 16:16:25 -0300
+Subject: [PATCH] compile: Remove -Werror and avoid build failures because of
+ warnings
+
+Using -Werror on production is a bad idea, as otherwise harmless warnings
+get treated as errors breaking builds. This is currently the case with
+Nios-II architecture toolchain, warning about a deprecated macro:
+
+../usr/nios2-buildroot-linux-gnu/sysroot/usr/include/features.h:148:3:
+error: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Werror=cpp]
+ # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
+
+Instead of trying to fix the macro, let's fix the real issue here,
+and remove -Werror.
+
+Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+---
+ src/makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/makefile b/src/makefile
+index 294dc08..4ac4c43 100644
+--- a/src/makefile
++++ b/src/makefile
+@@ -32,7 +32,7 @@ ZLOG_MINOR=2
+ # Fallback to gcc when $CC is not in $PATH.
+ CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
+ OPTIMIZATION?=-O2
+-WARNINGS=-Wall -Werror -Wstrict-prototypes -fwrapv
++WARNINGS=-Wall -Wstrict-prototypes -fwrapv
+ DEBUG?= -g -ggdb
+ REAL_CFLAGS=$(OPTIMIZATION) -fPIC -pthread $(CFLAGS) $(WARNINGS) $(DEBUG)
+ REAL_LDFLAGS=$(LDFLAGS) -pthread
+--
+2.1.0
+
+++ /dev/null
-From a9f6a55bdb29a2bebc96a68ab53077906c25a9df Mon Sep 17 00:00:00 2001
-From: Yegor Yefremov <yegorslists@googlemail.com>
-Date: Wed, 22 Jan 2014 15:04:42 +0100
-Subject: [PATCH] Fix compiling on Buildroot
-
-Buildroot always specifies -D_LARGEFILE_SOURCE, -D_LARGEFILE64_SOURCE,
--D_FILE_OFFSET_BITS=64, so define them only if they are not already
-defined.
-
-Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
----
- src/fmacros.h | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/src/fmacros.h b/src/fmacros.h
-index fa37948..059dfeb 100644
---- a/src/fmacros.h
-+++ b/src/fmacros.h
-@@ -14,7 +14,11 @@
- #define _XOPEN_SOURCE
- #endif
-
-+#ifndef _LARGEFILE_SOURCE
- #define _LARGEFILE_SOURCE
-+#endif
-+#ifndef _FILE_OFFSET_BITS
- #define _FILE_OFFSET_BITS 64
-+#endif
-
- #endif
---
-1.7.7
+++ /dev/null
-From 4a08c9e07fa8b7a1d6a76b927ea97e3eaa784845 Mon Sep 17 00:00:00 2001
-From: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
-Date: Sun, 26 Oct 2014 16:16:25 -0300
-Subject: [PATCH] compile: Remove -Werror and avoid build failures because of
- warnings
-
-Using -Werror on production is a bad idea, as otherwise harmless warnings
-get treated as errors breaking builds. This is currently the case with
-Nios-II architecture toolchain, warning about a deprecated macro:
-
-../usr/nios2-buildroot-linux-gnu/sysroot/usr/include/features.h:148:3:
-error: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Werror=cpp]
- # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
-
-Instead of trying to fix the macro, let's fix the real issue here,
-and remove -Werror.
-
-Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
----
- src/makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/makefile b/src/makefile
-index 294dc08..4ac4c43 100644
---- a/src/makefile
-+++ b/src/makefile
-@@ -32,7 +32,7 @@ ZLOG_MINOR=2
- # Fallback to gcc when $CC is not in $PATH.
- CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
- OPTIMIZATION?=-O2
--WARNINGS=-Wall -Werror -Wstrict-prototypes -fwrapv
-+WARNINGS=-Wall -Wstrict-prototypes -fwrapv
- DEBUG?= -g -ggdb
- REAL_CFLAGS=$(OPTIMIZATION) -fPIC -pthread $(CFLAGS) $(WARNINGS) $(DEBUG)
- REAL_LDFLAGS=$(LDFLAGS) -pthread
---
-2.1.0
-
--- /dev/null
+From 18d6daf4793fb7e9750175bd46b17fe1965b78dd Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Tue, 6 May 2014 22:00:11 +0200
+Subject: [PATCH] Add missing <time.h> includes
+
+Submitted upstream at https://github.com/znc/znc/pull/569.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ modules/adminlog.cpp | 1 +
+ modules/awaystore.cpp | 2 ++
+ modules/crypt.cpp | 2 ++
+ modules/ctcpflood.cpp | 2 ++
+ modules/flooddetach.cpp | 2 ++
+ modules/lastseen.cpp | 2 ++
+ modules/log.cpp | 2 ++
+ modules/savebuff.cpp | 2 ++
+ modules/schat.cpp | 2 ++
+ modules/simple_away.cpp | 2 ++
+ src/Buffer.cpp | 2 ++
+ src/Csocket.cpp | 2 ++
+ src/FileUtils.cpp | 2 ++
+ src/HTTPSock.cpp | 1 +
+ src/IRCSock.cpp | 2 ++
+ src/User.cpp | 1 +
+ src/Utils.cpp | 2 ++
+ src/WebModules.cpp | 2 ++
+ src/ZNCDebug.cpp | 1 +
+ src/main.cpp | 1 +
+ src/znc.cpp | 2 ++
+ 21 files changed, 37 insertions(+)
+
+diff --git a/modules/adminlog.cpp b/modules/adminlog.cpp
+index 77577b1..16dd665 100644
+--- a/modules/adminlog.cpp
++++ b/modules/adminlog.cpp
+@@ -20,6 +20,7 @@
+ #include <znc/User.h>
+
+ #include <syslog.h>
++#include <time.h>
+
+ class CAdminLogMod : public CModule {
+ public:
+diff --git a/modules/awaystore.cpp b/modules/awaystore.cpp
+index da75260..56349df 100644
+--- a/modules/awaystore.cpp
++++ b/modules/awaystore.cpp
+@@ -30,6 +30,8 @@
+ #include <znc/IRCNetwork.h>
+ #include <znc/FileUtils.h>
+
++#include <time.h>
++
+ using std::vector;
+ using std::map;
+
+diff --git a/modules/crypt.cpp b/modules/crypt.cpp
+index fcc664b..8f9018f 100644
+--- a/modules/crypt.cpp
++++ b/modules/crypt.cpp
+@@ -34,6 +34,8 @@
+ #include <znc/User.h>
+ #include <znc/IRCNetwork.h>
+
++#include <time.h>
++
+ #define REQUIRESSL 1
+ #define NICK_PREFIX_KEY "[nick-prefix]"
+
+diff --git a/modules/ctcpflood.cpp b/modules/ctcpflood.cpp
+index ac154e2..f2ce27f 100644
+--- a/modules/ctcpflood.cpp
++++ b/modules/ctcpflood.cpp
+@@ -17,6 +17,8 @@
+ #include <znc/Modules.h>
+ #include <znc/Chan.h>
+
++#include <time.h>
++
+ class CCtcpFloodMod : public CModule {
+ public:
+ MODCONSTRUCTOR(CCtcpFloodMod) {
+diff --git a/modules/flooddetach.cpp b/modules/flooddetach.cpp
+index f4ed892..0ffb651 100644
+--- a/modules/flooddetach.cpp
++++ b/modules/flooddetach.cpp
+@@ -17,6 +17,8 @@
+ #include <znc/Chan.h>
+ #include <znc/IRCNetwork.h>
+
++#include <time.h>
++
+ using std::map;
+
+ class CFloodDetachMod : public CModule {
+diff --git a/modules/lastseen.cpp b/modules/lastseen.cpp
+index bd6eb9b..b3b209f 100644
+--- a/modules/lastseen.cpp
++++ b/modules/lastseen.cpp
+@@ -17,6 +17,8 @@
+ #include <znc/User.h>
+ #include <znc/znc.h>
+
++#include <time.h>
++
+ using std::map;
+ using std::pair;
+ using std::multimap;
+diff --git a/modules/log.cpp b/modules/log.cpp
+index 260b577..e718d76 100644
+--- a/modules/log.cpp
++++ b/modules/log.cpp
+@@ -21,6 +21,8 @@
+ #include <znc/Chan.h>
+ #include <znc/Server.h>
+
++#include <time.h>
++
+ using std::vector;
+
+ class CLogMod: public CModule {
+diff --git a/modules/savebuff.cpp b/modules/savebuff.cpp
+index 8a85153..2e0ed5c 100644
+--- a/modules/savebuff.cpp
++++ b/modules/savebuff.cpp
+@@ -29,6 +29,8 @@
+ #include <znc/IRCNetwork.h>
+ #include <znc/FileUtils.h>
+
++#include <time.h>
++
+ using std::vector;
+
+ #define CRYPT_VERIFICATION_TOKEN "::__:SAVEBUFF:__::"
+diff --git a/modules/schat.cpp b/modules/schat.cpp
+index 98d03b4..5a7f1a0 100644
+--- a/modules/schat.cpp
++++ b/modules/schat.cpp
+@@ -25,6 +25,8 @@
+ #include <znc/User.h>
+ #include <znc/IRCNetwork.h>
+
++#include <time.h>
++
+ using std::pair;
+ using std::stringstream;
+ using std::map;
+diff --git a/modules/simple_away.cpp b/modules/simple_away.cpp
+index a1e5927..67faeea 100644
+--- a/modules/simple_away.cpp
++++ b/modules/simple_away.cpp
+@@ -17,6 +17,8 @@
+ #include <znc/User.h>
+ #include <znc/IRCNetwork.h>
+
++#include <time.h>
++
+ #define SIMPLE_AWAY_DEFAULT_REASON "Auto away at %s"
+ #define SIMPLE_AWAY_DEFAULT_TIME 60
+
+diff --git a/src/Buffer.cpp b/src/Buffer.cpp
+index eefbb29..55ecd72 100644
+--- a/src/Buffer.cpp
++++ b/src/Buffer.cpp
+@@ -17,6 +17,8 @@
+ #include <znc/znc.h>
+ #include <znc/User.h>
+
++#include <time.h>
++
+ CBufLine::CBufLine(const CString& sFormat, const CString& sText, const timeval* ts) {
+ m_sFormat = sFormat;
+ m_sText = sText;
+diff --git a/src/Csocket.cpp b/src/Csocket.cpp
+index 2e4cb14..ca6ed38 100644
+--- a/src/Csocket.cpp
++++ b/src/Csocket.cpp
+@@ -53,6 +53,8 @@
+ #include <unicode/errorcode.h>
+ #endif /* HAVE_ICU */
+
++#include <time.h>
++
+ #include <list>
+
+ #define CS_SRANDBUFFER 128
+diff --git a/src/FileUtils.cpp b/src/FileUtils.cpp
+index 7224a49..4c8f1d3 100644
+--- a/src/FileUtils.cpp
++++ b/src/FileUtils.cpp
+@@ -23,6 +23,8 @@
+ #include <sys/types.h>
+ #include <sys/wait.h>
+
++#include <time.h>
++
+ #ifndef HAVE_LSTAT
+ # define lstat(a, b) stat(a, b)
+ #endif
+diff --git a/src/HTTPSock.cpp b/src/HTTPSock.cpp
+index ab03130..36bf52b 100644
+--- a/src/HTTPSock.cpp
++++ b/src/HTTPSock.cpp
+@@ -18,6 +18,7 @@
+ #include <znc/znc.h>
+ #include <iomanip>
+
++#include <time.h>
+
+ #ifdef HAVE_ZLIB
+ #include <zlib.h>
+diff --git a/src/IRCSock.cpp b/src/IRCSock.cpp
+index 2ef12f6..d0c56a7 100644
+--- a/src/IRCSock.cpp
++++ b/src/IRCSock.cpp
+@@ -20,6 +20,8 @@
+ #include <znc/IRCNetwork.h>
+ #include <znc/Server.h>
+
++#include <time.h>
++
+ using std::set;
+ using std::vector;
+ using std::map;
+diff --git a/src/User.cpp b/src/User.cpp
+index cf664f1..4a64f83 100644
+--- a/src/User.cpp
++++ b/src/User.cpp
+@@ -20,6 +20,7 @@
+ #include <znc/IRCNetwork.h>
+ #include <znc/IRCSock.h>
+ #include <math.h>
++#include <time.h>
+
+ using std::vector;
+ using std::set;
+diff --git a/src/Utils.cpp b/src/Utils.cpp
+index 33c83de..e0862dd 100644
+--- a/src/Utils.cpp
++++ b/src/Utils.cpp
+@@ -26,6 +26,8 @@
+ #include <cstring>
+ #include <cstdlib>
+
++#include <time.h>
++
+ using std::map;
+ using std::stringstream;
+ using std::vector;
+diff --git a/src/WebModules.cpp b/src/WebModules.cpp
+index d61ba23..ddd88e0 100644
+--- a/src/WebModules.cpp
++++ b/src/WebModules.cpp
+@@ -22,6 +22,8 @@
+ #include <algorithm>
+ #include <sstream>
+
++#include <time.h>
++
+ using std::pair;
+ using std::vector;
+
+diff --git a/src/ZNCDebug.cpp b/src/ZNCDebug.cpp
+index 01d06b4..cc83298 100644
+--- a/src/ZNCDebug.cpp
++++ b/src/ZNCDebug.cpp
+@@ -18,6 +18,7 @@
+ #include <iostream>
+ #include <sys/time.h>
+ #include <stdio.h>
++#include <time.h>
+
+ bool CDebug::stdoutIsTTY = true;
+ bool CDebug::debug =
+diff --git a/src/main.cpp b/src/main.cpp
+index ac9d691..7d74f8e 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -16,6 +16,7 @@
+
+ #include <znc/znc.h>
+ #include <signal.h>
++#include <time.h>
+
+ using std::cout;
+ using std::endl;
+diff --git a/src/znc.cpp b/src/znc.cpp
+index 9e66f3d..dce1372 100644
+--- a/src/znc.cpp
++++ b/src/znc.cpp
+@@ -21,6 +21,8 @@
+ #include <znc/IRCNetwork.h>
+ #include <znc/Config.h>
+
++#include <time.h>
++
+ using std::endl;
+ using std::cout;
+ using std::map;
+--
+1.9.2
+
+++ /dev/null
-From 18d6daf4793fb7e9750175bd46b17fe1965b78dd Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Tue, 6 May 2014 22:00:11 +0200
-Subject: [PATCH] Add missing <time.h> includes
-
-Submitted upstream at https://github.com/znc/znc/pull/569.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- modules/adminlog.cpp | 1 +
- modules/awaystore.cpp | 2 ++
- modules/crypt.cpp | 2 ++
- modules/ctcpflood.cpp | 2 ++
- modules/flooddetach.cpp | 2 ++
- modules/lastseen.cpp | 2 ++
- modules/log.cpp | 2 ++
- modules/savebuff.cpp | 2 ++
- modules/schat.cpp | 2 ++
- modules/simple_away.cpp | 2 ++
- src/Buffer.cpp | 2 ++
- src/Csocket.cpp | 2 ++
- src/FileUtils.cpp | 2 ++
- src/HTTPSock.cpp | 1 +
- src/IRCSock.cpp | 2 ++
- src/User.cpp | 1 +
- src/Utils.cpp | 2 ++
- src/WebModules.cpp | 2 ++
- src/ZNCDebug.cpp | 1 +
- src/main.cpp | 1 +
- src/znc.cpp | 2 ++
- 21 files changed, 37 insertions(+)
-
-diff --git a/modules/adminlog.cpp b/modules/adminlog.cpp
-index 77577b1..16dd665 100644
---- a/modules/adminlog.cpp
-+++ b/modules/adminlog.cpp
-@@ -20,6 +20,7 @@
- #include <znc/User.h>
-
- #include <syslog.h>
-+#include <time.h>
-
- class CAdminLogMod : public CModule {
- public:
-diff --git a/modules/awaystore.cpp b/modules/awaystore.cpp
-index da75260..56349df 100644
---- a/modules/awaystore.cpp
-+++ b/modules/awaystore.cpp
-@@ -30,6 +30,8 @@
- #include <znc/IRCNetwork.h>
- #include <znc/FileUtils.h>
-
-+#include <time.h>
-+
- using std::vector;
- using std::map;
-
-diff --git a/modules/crypt.cpp b/modules/crypt.cpp
-index fcc664b..8f9018f 100644
---- a/modules/crypt.cpp
-+++ b/modules/crypt.cpp
-@@ -34,6 +34,8 @@
- #include <znc/User.h>
- #include <znc/IRCNetwork.h>
-
-+#include <time.h>
-+
- #define REQUIRESSL 1
- #define NICK_PREFIX_KEY "[nick-prefix]"
-
-diff --git a/modules/ctcpflood.cpp b/modules/ctcpflood.cpp
-index ac154e2..f2ce27f 100644
---- a/modules/ctcpflood.cpp
-+++ b/modules/ctcpflood.cpp
-@@ -17,6 +17,8 @@
- #include <znc/Modules.h>
- #include <znc/Chan.h>
-
-+#include <time.h>
-+
- class CCtcpFloodMod : public CModule {
- public:
- MODCONSTRUCTOR(CCtcpFloodMod) {
-diff --git a/modules/flooddetach.cpp b/modules/flooddetach.cpp
-index f4ed892..0ffb651 100644
---- a/modules/flooddetach.cpp
-+++ b/modules/flooddetach.cpp
-@@ -17,6 +17,8 @@
- #include <znc/Chan.h>
- #include <znc/IRCNetwork.h>
-
-+#include <time.h>
-+
- using std::map;
-
- class CFloodDetachMod : public CModule {
-diff --git a/modules/lastseen.cpp b/modules/lastseen.cpp
-index bd6eb9b..b3b209f 100644
---- a/modules/lastseen.cpp
-+++ b/modules/lastseen.cpp
-@@ -17,6 +17,8 @@
- #include <znc/User.h>
- #include <znc/znc.h>
-
-+#include <time.h>
-+
- using std::map;
- using std::pair;
- using std::multimap;
-diff --git a/modules/log.cpp b/modules/log.cpp
-index 260b577..e718d76 100644
---- a/modules/log.cpp
-+++ b/modules/log.cpp
-@@ -21,6 +21,8 @@
- #include <znc/Chan.h>
- #include <znc/Server.h>
-
-+#include <time.h>
-+
- using std::vector;
-
- class CLogMod: public CModule {
-diff --git a/modules/savebuff.cpp b/modules/savebuff.cpp
-index 8a85153..2e0ed5c 100644
---- a/modules/savebuff.cpp
-+++ b/modules/savebuff.cpp
-@@ -29,6 +29,8 @@
- #include <znc/IRCNetwork.h>
- #include <znc/FileUtils.h>
-
-+#include <time.h>
-+
- using std::vector;
-
- #define CRYPT_VERIFICATION_TOKEN "::__:SAVEBUFF:__::"
-diff --git a/modules/schat.cpp b/modules/schat.cpp
-index 98d03b4..5a7f1a0 100644
---- a/modules/schat.cpp
-+++ b/modules/schat.cpp
-@@ -25,6 +25,8 @@
- #include <znc/User.h>
- #include <znc/IRCNetwork.h>
-
-+#include <time.h>
-+
- using std::pair;
- using std::stringstream;
- using std::map;
-diff --git a/modules/simple_away.cpp b/modules/simple_away.cpp
-index a1e5927..67faeea 100644
---- a/modules/simple_away.cpp
-+++ b/modules/simple_away.cpp
-@@ -17,6 +17,8 @@
- #include <znc/User.h>
- #include <znc/IRCNetwork.h>
-
-+#include <time.h>
-+
- #define SIMPLE_AWAY_DEFAULT_REASON "Auto away at %s"
- #define SIMPLE_AWAY_DEFAULT_TIME 60
-
-diff --git a/src/Buffer.cpp b/src/Buffer.cpp
-index eefbb29..55ecd72 100644
---- a/src/Buffer.cpp
-+++ b/src/Buffer.cpp
-@@ -17,6 +17,8 @@
- #include <znc/znc.h>
- #include <znc/User.h>
-
-+#include <time.h>
-+
- CBufLine::CBufLine(const CString& sFormat, const CString& sText, const timeval* ts) {
- m_sFormat = sFormat;
- m_sText = sText;
-diff --git a/src/Csocket.cpp b/src/Csocket.cpp
-index 2e4cb14..ca6ed38 100644
---- a/src/Csocket.cpp
-+++ b/src/Csocket.cpp
-@@ -53,6 +53,8 @@
- #include <unicode/errorcode.h>
- #endif /* HAVE_ICU */
-
-+#include <time.h>
-+
- #include <list>
-
- #define CS_SRANDBUFFER 128
-diff --git a/src/FileUtils.cpp b/src/FileUtils.cpp
-index 7224a49..4c8f1d3 100644
---- a/src/FileUtils.cpp
-+++ b/src/FileUtils.cpp
-@@ -23,6 +23,8 @@
- #include <sys/types.h>
- #include <sys/wait.h>
-
-+#include <time.h>
-+
- #ifndef HAVE_LSTAT
- # define lstat(a, b) stat(a, b)
- #endif
-diff --git a/src/HTTPSock.cpp b/src/HTTPSock.cpp
-index ab03130..36bf52b 100644
---- a/src/HTTPSock.cpp
-+++ b/src/HTTPSock.cpp
-@@ -18,6 +18,7 @@
- #include <znc/znc.h>
- #include <iomanip>
-
-+#include <time.h>
-
- #ifdef HAVE_ZLIB
- #include <zlib.h>
-diff --git a/src/IRCSock.cpp b/src/IRCSock.cpp
-index 2ef12f6..d0c56a7 100644
---- a/src/IRCSock.cpp
-+++ b/src/IRCSock.cpp
-@@ -20,6 +20,8 @@
- #include <znc/IRCNetwork.h>
- #include <znc/Server.h>
-
-+#include <time.h>
-+
- using std::set;
- using std::vector;
- using std::map;
-diff --git a/src/User.cpp b/src/User.cpp
-index cf664f1..4a64f83 100644
---- a/src/User.cpp
-+++ b/src/User.cpp
-@@ -20,6 +20,7 @@
- #include <znc/IRCNetwork.h>
- #include <znc/IRCSock.h>
- #include <math.h>
-+#include <time.h>
-
- using std::vector;
- using std::set;
-diff --git a/src/Utils.cpp b/src/Utils.cpp
-index 33c83de..e0862dd 100644
---- a/src/Utils.cpp
-+++ b/src/Utils.cpp
-@@ -26,6 +26,8 @@
- #include <cstring>
- #include <cstdlib>
-
-+#include <time.h>
-+
- using std::map;
- using std::stringstream;
- using std::vector;
-diff --git a/src/WebModules.cpp b/src/WebModules.cpp
-index d61ba23..ddd88e0 100644
---- a/src/WebModules.cpp
-+++ b/src/WebModules.cpp
-@@ -22,6 +22,8 @@
- #include <algorithm>
- #include <sstream>
-
-+#include <time.h>
-+
- using std::pair;
- using std::vector;
-
-diff --git a/src/ZNCDebug.cpp b/src/ZNCDebug.cpp
-index 01d06b4..cc83298 100644
---- a/src/ZNCDebug.cpp
-+++ b/src/ZNCDebug.cpp
-@@ -18,6 +18,7 @@
- #include <iostream>
- #include <sys/time.h>
- #include <stdio.h>
-+#include <time.h>
-
- bool CDebug::stdoutIsTTY = true;
- bool CDebug::debug =
-diff --git a/src/main.cpp b/src/main.cpp
-index ac9d691..7d74f8e 100644
---- a/src/main.cpp
-+++ b/src/main.cpp
-@@ -16,6 +16,7 @@
-
- #include <znc/znc.h>
- #include <signal.h>
-+#include <time.h>
-
- using std::cout;
- using std::endl;
-diff --git a/src/znc.cpp b/src/znc.cpp
-index 9e66f3d..dce1372 100644
---- a/src/znc.cpp
-+++ b/src/znc.cpp
-@@ -21,6 +21,8 @@
- #include <znc/IRCNetwork.h>
- #include <znc/Config.h>
-
-+#include <time.h>
-+
- using std::endl;
- using std::cout;
- using std::map;
---
-1.9.2
-
--- /dev/null
+[PATCH] add Makefile
+
+The scons based build system doesn't handle cross compilation, special
+compiler flags or (un)installation, so add a simple makefile instead
+which does.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ cpp/core/src/Makefile | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+Index: zxing-2.0/cpp/core/src/Makefile
+===================================================================
+--- /dev/null
++++ zxing-2.0/cpp/core/src/Makefile
+@@ -0,0 +1,14 @@
++override CXXFLAGS += -I.
++SRCS := $(shell find -name '*.cpp')
++
++libzxing.a: $(SRCS:.cpp=.o)
++ $(AR) $(ARFLAGS) $@ $^
++
++install: libzxing.a
++ install -D -m 0644 $^ $(DESTDIR)/usr/lib/$^
++ find -name '*.h' -exec install -m 0644 -D "{}" \
++ "$(DESTDIR)/usr/include/{}" ";"
++
++uninstall:
++ rm -f $(DESTDIR)/usr/lib/libzxing.a
++ rm -rf $(DESTDIR)/usr/include/zxing
+++ /dev/null
-[PATCH] add Makefile
-
-The scons based build system doesn't handle cross compilation, special
-compiler flags or (un)installation, so add a simple makefile instead
-which does.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- cpp/core/src/Makefile | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-Index: zxing-2.0/cpp/core/src/Makefile
-===================================================================
---- /dev/null
-+++ zxing-2.0/cpp/core/src/Makefile
-@@ -0,0 +1,14 @@
-+override CXXFLAGS += -I.
-+SRCS := $(shell find -name '*.cpp')
-+
-+libzxing.a: $(SRCS:.cpp=.o)
-+ $(AR) $(ARFLAGS) $@ $^
-+
-+install: libzxing.a
-+ install -D -m 0644 $^ $(DESTDIR)/usr/lib/$^
-+ find -name '*.h' -exec install -m 0644 -D "{}" \
-+ "$(DESTDIR)/usr/include/{}" ";"
-+
-+uninstall:
-+ rm -f $(DESTDIR)/usr/lib/libzxing.a
-+ rm -rf $(DESTDIR)/usr/include/zxing