[krbdev.mit.edu #8854] mit-krb5 fails to build on X32 host.

"Kai Osen via RT" <[email protected]>
Newsgroups gmane.comp.encryption.kerberos.bugs
Message-ID <[email protected]>
Fri Nov 29 18:41:14 2019: Request 8854 was acted upon.
 Transaction: Ticket created by [email protected]
       Queue: krb5
     Subject: mit-krb5 fails to build on X32 host.
       Owner: Nobody
  Requestors: [email protected]
      Status: new
 Ticket <URL: https://krbdev.mit.edu/rt/Ticket/Display.html?id=8854 >


Hi, I have an old Atom cpu based PC with 2GB of ram that I'm trying to
install Gentoo X32 variant on. It stopped on mit-krb5 library and I made
the attached patch to fix it (at least compile it).


*Some info from this PC:*
CFLAGS="-O2 -pipe -march=bonnell -mmmx -msse -msse2 -msse3 -mssse3 -mcx16
-msahf -mmovbe -mfxsr --param l1-cache-size=24 --param
l1-cache-line-size=64 --param l2-cache-size=512 -mtune=bonnell
-fomit-frame-pointer -mfpmath=sse"
CHOST="x86_64-pc-linux-gnux32"

*Debug output from start of gentoo emerge that includes the configure
arguments:*

emerge -v mit-krb5

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] app-crypt/mit-krb5-1.17-r1::gentoo  USE="keyutils nls
pkinit threads -doc -libressl -lmdb -openldap (-selinux) -test* -xinetd"
ABI_X86="(x32) -32 -64" CPU_FLAGS_X86="-aes" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB


>>> Verifying ebuild manifests

>>> Emerging (1 of 1) app-crypt/mit-krb5-1.17-r1::gentoo
 * krb5-1.17.tar.gz BLAKE2B SHA512 size ;-) ...
     [ ok ]
>>> Unpacking source...
>>> Unpacking krb5-1.17.tar.gz to
/var/tmp/portage/app-crypt/mit-krb5-1.17-r1/work
>>> Source unpacked in /var/tmp/portage/app-crypt/mit-krb5-1.17-r1/work
>>> Preparing source in
/var/tmp/portage/app-crypt/mit-krb5-1.17-r1/work/krb5-1.17/src ...
 * Applying mit-krb5-1.12_warn_cflags.patch ...
     [ ok ]
 * Applying mit-krb5-config_LDFLAGS-r1.patch ...
      [ ok ]
 * Applying mit-krb5-1.16.3-libressl-r1.patch ...
     [ ok ]
 * Applying mit-krb5-1.17-fix-x32.patch ...
     [ ok ]
 * User patches applied.
 * Running eautoreconf in
'/var/tmp/portage/app-crypt/mit-krb5-1.17-r1/work/krb5-1.17/src' ...
 * This package has a configure.in file which has long been deprecated.
Please
 * update it to use configure.ac instead as newer versions of autotools
will die
 * when it finds this file.  See https://bugs.gentoo.org/426262 for details.
 * Running autoconf --force ...
     [ ok ]
 * Running autoheader ...
     [ ok ]
 * Running elibtoolize in: krb5-1.17/src/
>>> Source prepared.
>>> Configuring source in
/var/tmp/portage/app-crypt/mit-krb5-1.17-r1/work/krb5-1.17/src ...
 * abi_x86_x32.x32: running multilib-minimal_abi_src_configure
 * econf: updating krb5-1.17/src/config/config.guess with
/usr/share/gnuconfig/config.guess
 * econf: updating krb5-1.17/src/config/config.sub with
/usr/share/gnuconfig/config.sub
/var/tmp/portage/app-crypt/mit-krb5-1.17-r1/work/krb5-1.17/src/configure
--prefix=/usr --build=x86_64-pc-linux-gnux32 --host=x86_64-pc-linux-gnux32
--mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share
--sysconfdir=/etc --localstatedir=/var/lib
--docdir=/usr/share/doc/mit-krb5-1.17-r1
--htmldir=/usr/share/doc/mit-krb5-1.17-r1/html --libdir=/usr/libx32
--without-ldap --without-tcl --enable-nls --enable-pkinit
--enable-thread-support --without-lmdb --without-hesiod --enable-shared
--with-system-et --with-system-ss --enable-dns-for-realm
--enable-kdc-lookaside-cache --with-system-verto --disable-rpath
configure: loading site script /usr/share/config.site

<. rest is cut for brevity .>

--- Kai William Osen

_______________________________________________
krb5-bugs mailing list
[email protected]
https://mailman.mit.edu/mailman/listinfo/krb5-bugs
mit-krb5-1.17-fix-x32.patch (text/x-patch, 1 KB)
diff -aur src/configure.in src.x32/configure.in
--- src/configure.in	2019-11-29 19:24:13.000000000 -0000
+++ src.x32/configure.in	2019-11-29 18:00:04.000000000 -0000
@@ -351,6 +351,10 @@
 	aesni_obj=iaesx86.o
 	aesni_machine=x86
 	;;
+    x86_64-*-gnux32)
+	aesni_obj=iaesx32.o
+	aesni_machine=x32
+	;;
     x86_64-*)
 	aesni_obj=iaesx64.o
 	aesni_machine=amd64
diff -aur src/lib/crypto/builtin/aes/Makefile.in src.x32/lib/crypto/builtin/aes/Makefile.in
--- src/lib/crypto/builtin/aes/Makefile.in	2019-01-08 16:02:37.000000000 -0000
+++ src.x32/lib/crypto/builtin/aes/Makefile.in	2019-11-29 19:16:49.000000000 -0000
@@ -37,6 +37,11 @@
 iaesx64@SHOBJEXT@: $(srcdir)/iaesx64.s
 	$(YASM) $(AESNI_FLAGS) -o $@ $(srcdir)/iaesx64.s
 
+# x32 has the same instruction set as x64, but uses 32bit pointers.
+# So for now the iaesx32.o file is compiled from the same source code as x64.
+iaesx32@SHOBJEXT@: $(srcdir)/iaesx64.s
+	$(YASM) $(AESNI_FLAGS) -o $@ $(srcdir)/iaesx64.s
+
 iaesx86@SHOBJEXT@: $(srcdir)/iaesx86.s
 	$(YASM) $(AESNI_FLAGS) -o $@ $(srcdir)/iaesx86.s
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.