Source: root-system
Version: 5.34.19+dfsg-1.2
Severity: important
Tags: patch

Hi,

root-system FTBFS on mips64el with the error:
> Checking for krb5.h ... /usr/include
> Checking for krb5.h redirect ... /usr/include/krb5/krb5.h
> Checking for krb5_c_valid_cksumtype in krb5.h ... yes
> Checking for valid_cksumtype in krb5.h ... no
> Checking for libk5crypto ... /usr/lib/mips64el-linux-gnuabi64
> Checking whether we're using MIT Kerberos ... yes
> Checking for krb5_c_valid_cksumtype in 
> /usr/lib/mips64el-linux-gnuabi64/libk5crypto.so ... no
> Checking for valid_cksumtype in 
> /usr/lib/mips64el-linux-gnuabi64/libk5crypto.so ... no
> Either 'krb5_c_valid_cksumtype' or 'valid_cksumtype' are available; disabling 
> krb5
> Explicitly required Kerberos5 dependencies not fulfilled
> make: *** [config.status] Error 1

This is because it tries to compile the test program with -mabi=32 which
fails at the linker stage because you can't mix 32-bit and 64-bit code
(the kerberos libraries were the 64-bit files).

I've added a patch which adds the linuxmips64 architecture (which was
partially there already) which fixes this for me. The 79-mips64el.patch
can be dropped into debian/patches which does this.

I haven't added any mips64 arch detection because it's a bit more
complicated since 'uname -r' doesn't work - you would have to run the C
compiler and test for some defines. This is a bit of a catch 22 since
the 'Makefile.<arch>' files are needed to specify where the compiler is.
The mips64el-drules.patch is a simpler way but will only work in the
Debian package.

Thanks,
James

--- a/config/ARCHS
+++ b/config/ARCHS
@@ -22,6 +22,7 @@ linuxhppa            for HPPA Linux with
 linuxia64ecc         for Itanium Linux with Intel icc
 linuxia64gcc         for Itanium Linux with gcc >= 3
 linuxmips            for MIPS Linux with gcc
+linuxmips64          for MIPS n64 Linux with gcc
 linuxppcgcc          for PPC Linux with gcc
 linuxppc64gcc        for PPC 64 Linux  with gcc >= 3
 linuxx8664gcc        for x86-64 Linux with gcc >= 3.x
--- a/config/Makefile.linuxmips64
+++ b/config/Makefile.linuxmips64
@@ -20,17 +20,15 @@ CC            = gcc
 CXXFLAGS      = -pipe -Wall -W -Woverloaded-virtual \
                 -fPIC $(EXTRA_CXXFLAGS)
 CFLAGS        = -pipe -Wall -W -fPIC $(EXTRA_CFLAGS)
-# G__64BIT should only be defined if mips is truly 64bit.  Check for
-# example that _ABI64 is defined or so. 
 CINTCXXFLAGS  = -pipe -Wall -W -Woverloaded-virtual \
                 -fPIC $(EXTRA_CXXFLAGS) \
                 -DG__REGEXP -DG__UNIX -DG__SHAREDLIB \
                 -DG__OSFDLL -DG__ROOT -DG__REDIRECTIO \
-                -DG__STD_EXCEPTION 
+                -DG__STD_EXCEPTION -DG__64BIT
 CINTCFLAGS    = -pipe -Wall -W -fPIC $(EXTRA_CFLAGS) \
                 -DG__REGEXP -DG__UNIX -DG__SHAREDLIB \
                 -DG__OSFDLL -DG__ROOT -DG__REDIRECTIO \
-                -DG__STD_EXCEPTION 
+                -DG__STD_EXCEPTION -DG__64BIT
 COMPILER      = gnu
 
 # Linker:
--- a/config/root-config.in
+++ b/config/root-config.in
@@ -266,8 +266,14 @@ linux)
    ;;
 linuxmips)
    # Linux on mips with gcc >= 3.x
-   auxcflags="-mapi=32"
-   auxldflags="-mapi=32"
+   auxcflags="-mabi=32"
+   auxldflags="-mabi=32"
+   auxlibs="-lm -ldl -rdynamic"
+   ;;
+linuxmips64)
+   # Linux on mips n64
+   auxcflags=""
+   auxldflags=""
    auxlibs="-lm -ldl -rdynamic"
    ;;
 linuxhppa)
--- a/debian/rules
+++ b/debian/rules
@@ -25,6 +25,8 @@ export CFLAGS EXTRA_LDFLAGS DEB_HOST_MUL
 
 ifeq ($(DEB_HOST_ARCH_CPU),powerpc)
 PLATFORM	= linux
+else ifeq ($(DEB_HOST_ARCH_CPU),mips64el)
+PLATFORM	= linuxmips64
 else
 PLATFORM	=
 endif

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to