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
signature.asc
Description: This is a digitally signed message part