Package: kamailio
Version: 4.2.0-1
Tags: sid patch
Severity: important
Justification: FTBFS
User: debian-mips-dev-disc...@lists.alioth.debian.org
Usertags: mips-patch


While trying to build kamailio mipsel architecture,
build failswith an error:

> gcc -mips2 -funroll-loops -minline-all-stringops -ftree-vectorize 
> -fno-strict-overflow -Wall -g -O2 -fstack-protector-strong -Wformat 
> -Werror=format-security -D_FORTIFY_SOURCE=2   -DNAME='"kamailio"' 
> -DVERSION='"4.2.0"' -DARCH='"mips2"' -DOS='linux_' -DOS_QUOTED='"linux"' 
> -DCOMPILER='"gcc 4.9.1"' -D__CPU_mips2 -D__OS_linux -DSER_VER=4002000 
> -DCFG_DIR='"/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK 
> -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DUSE_DNS_CACHE 
> -DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC 
> -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS -DUSE_CORE_STATS 
> -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT -DFAST_LOCK -DADAPTIVE_WAIT 
> -DADAPTIVE_WAIT_LOOPS=1024 -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 
> -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL 
> -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM 
> -DHAVE_SCHED_SETSCHEDULER -DUSE_RAW_SOCKS -DHAVE_SELECT   -c pass_fd.c -o 
> pass_fd.o -MMD -MP
> gcc: error: unrecognized command line option '-minline-all-stringops'
> make[1]: *** [pass_fd.o] Error 1

Patch fix-mips.patch fixes this issue is attached.


Beside that,
it is nedded to add mipsel and mips in debian control.
Also, mono module should be excluded for mips (be).
Patch adapt-rules-and-control.patch contains these changes.


After applying this two patches,
I was able to successfully build kamailio for both mips and mipsel.



Could you please consider including this patch?

Best regards,
Dejan

diff -uNr kamailio-4.1.5.orig/Makefile.defs kamailio-4.1.5/Makefile.defs
--- kamailio-4.1.5.orig/Makefile.defs	2014-10-30 13:25:31.000000000 +0000
+++ kamailio-4.1.5/Makefile.defs	2014-10-30 13:29:31.000000000 +0000
@@ -1361,12 +1361,13 @@
 				CFLAGS= -mips2 $(CC_OPT) -funroll-loops $(PROFILE)
 			#if gcc 4.5+ or 4.2+
 ifeq (,$(strip $(filter-out 4.2+ 4.5+,$(CC_SHORTVER))))
-					CFLAGS+=-minline-all-stringops -ftree-vectorize \
-							-fno-strict-overflow
+					CFLAGS+=-ftree-vectorize -fno-strict-overflow
+			# not supported on mips: -minline-all-stringops
 else
 			#if gcc 4.0+
 ifeq			($(CC_SHORTVER), 4.x)
-					CFLAGS+=-minline-all-stringops -ftree-vectorize
+					CFLAGS+=-ftree-vectorize
+			# not supported on mips: -minline-all-stringops
 else
 			#if gcc 3.4+
 ifeq			($(CC_SHORTVER), 3.4)
@@ -1406,12 +1407,13 @@
 				CFLAGS= -mips64 $(CC_OPT) -funroll-loops $(PROFILE)
 			#if gcc 4.5+ or 4.2+
 ifeq (,$(strip $(filter-out 4.2+ 4.5+,$(CC_SHORTVER))))
-					CFLAGS+=-minline-all-stringops -ftree-vectorize \
-							-fno-strict-overflow
+					CFLAGS+=-ftree-vectorize -fno-strict-overflow
+			# not supported on mips64: -minline-all-stringops
 else
 			#if gcc 4.0+
 ifeq			($(CC_SHORTVER), 4.x)
-					CFLAGS+=-minline-all-stringops -ftree-vectorize
+					CFLAGS+=-ftree-vectorize
+			# not supported on mips64: -minline-all-stringops
 else
 			#if gcc 3.4+
 ifeq			($(CC_SHORTVER), 3.4)
diff -uNr kamailio-4.1.5.orig/debian/control kamailio-4.1.5/debian/control
--- kamailio-4.1.5.orig/debian/control	2014-08-10 07:30:20.000000000 +0000
+++ kamailio-4.1.5/debian/control	2014-10-30 13:24:22.000000000 +0000
@@ -22,7 +22,7 @@
                libldap2-dev,
                liblua5.1-0-dev,
                libmemcached-dev,
-               libmono-2.0-dev [!ia64],
+               libmono-2.0-dev [!ia64 !mips !sparc],
                libmysqlclient-dev,
                libncurses5-dev,
                libpcre3-dev,
@@ -48,7 +48,7 @@
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-voip/kamailio.git
 
 Package: kamailio
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: foreign
 Pre-Depends: ${misc:Pre-Depends}
 Depends: adduser, python, ${misc:Depends}, ${shlibs:Depends}
@@ -91,7 +91,7 @@
 Package: kamailio-dbg
 Priority: extra
 Section: debug
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -104,7 +104,7 @@
  modules. You only need to install it if you need to debug Kamailio.
 
 Package: kamailio-geoip-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -117,7 +117,7 @@
  use GeoIP API within configuration file.
 
 Package: kamailio-sqlite-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -130,7 +130,7 @@
  This package provides the SQLite database driver for Kamailio.
 
 Package: kamailio-json-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -143,7 +143,7 @@
  and the JSON-RPC client over netstrings.
 
 Package: kamailio-memcached-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -157,7 +157,7 @@
  server, a high-performance, distributed memory object caching system.
 
 Package: kamailio-lua-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -170,7 +170,7 @@
  execute embedded Lua applications within configuration file.
 
 Package: kamailio-mono-modules
-Architecture: amd64 armel i386 powerpc ppc64 s390x
+Architecture: amd64 armel i386 powerpc ppc64 s390x mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -183,7 +183,7 @@
  execute embedded Mono applications within configuration file.
 
 Package: kamailio-python-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}),
@@ -199,7 +199,7 @@
  execute embedded Python applications within configuration file.
 
 Package: kamailio-redis-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -211,7 +211,7 @@
  This package provides the Redis NOSQL database driver for Kamailio.
 
 Package: kamailio-mysql-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}),
@@ -226,7 +226,7 @@
  This package provides the MySQL database driver for Kamailio.
 
 Package: kamailio-postgres-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}),
@@ -241,7 +241,7 @@
  This package provides the PostgreSQL database driver for Kamailio.
 
 Package: kamailio-cpl-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -254,7 +254,7 @@
  Kamailio, turning Kamailio into a CPL server (storage and interpreter).
 
 Package: kamailio-radius-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -268,7 +268,7 @@
  RADIUS server.
 
 Package: kamailio-unixodbc-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -280,7 +280,7 @@
  This package provides the unixODBC database driver for Kamailio.
 
 Package: kamailio-presence-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -294,7 +294,7 @@
  external triggered presence and XCAP support.
 
 Package: kamailio-perl-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -307,7 +307,7 @@
  the perlvdb database driver for Kamailio.
 
 Package: kamailio-snmpstats-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}),
@@ -323,7 +323,7 @@
  as an AgentX subagent which connects to a master agent.
 
 Package: kamailio-xmpp-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -335,7 +335,7 @@
  This package provides the SIP to XMPP IM translator module for Kamailio.
 
 Package: kamailio-xml-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -352,7 +352,7 @@
  - xmlops module for XPath operations in configuration file
 
 Package: kamailio-carrierroute-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -365,7 +365,7 @@
  solution for routing, balancing and blacklisting.
 
 Package: kamailio-berkeley-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: db-util (>= 4.6.19),
@@ -382,7 +382,7 @@
  in files, no additional server is necessary.
 
 Package: kamailio-berkeley-bin
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: foreign
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -396,7 +396,7 @@
  install kamailio-berkeley-modules and not this package directly.
 
 Package: kamailio-ldap-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -410,7 +410,7 @@
  directory.
 
 Package: kamailio-ims-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
@@ -423,7 +423,7 @@
  to run as an IMS core.
 
 Package: kamailio-utils-modules
-Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x
+Architecture: amd64 armel i386 ia64 powerpc ppc64 s390x mips mipsel
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: kamailio (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
diff -uNr kamailio-4.1.5.orig/debian/rules kamailio-4.1.5/debian/rules
--- kamailio-4.1.5.orig/debian/rules	2014-08-10 07:30:20.000000000 +0000
+++ kamailio-4.1.5/debian/rules	2014-10-30 13:23:48.000000000 +0000
@@ -47,6 +47,8 @@
 	override EXCLUDED_MODULES += mono
 else ifeq ($(DEB_HOST_ARCH),sparc)
 	override EXCLUDED_MODULES += mono
+else ifeq ($(DEB_HOST_ARCH),mips)
+        override EXCLUDED_MODULES += mono
 else
 	override PACKAGE_GROUPS+= mono
 endif

Reply via email to