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