Alon Bar-Lev wrote: > OK... here it is. > > It uses AC_CANONICAL_HOST and as you don't use automake you must > manually copy the config.guess and config.sub files from gnuconfig to the > source tree. It is more complicated than just checking processor type. Portably enabling assembler implementation must also check that the assembler understands AT&T syntax as default (like GNU assembler does), and not the official "backwards" syntax documented by Intel and AMD. > When can I find your code repository or snapshot so we sync? My current version is below. This patch does not include changes to generated ./configure script, so anyone applying this patch must also run autoconf command afterwards. This works, as always: ./configure make x86 make tests make install And this too, although it compiles C language versions of AES and MD5: ./configure && make install-strip DESTDIR=/tmp/foo -- Jari Ruusu 1024R/3A220F51 5B 4B F9 BB D3 3F 52 E9 DB 1D EB E3 24 0E A9 DD --- ../aespipe-v2.3e/Makefile.in 2007-02-18 11:26:23.000000000 +0200 +++ ./Makefile.in 2008-11-01 22:17:04.000000000 +0200 @@ -1,16 +1,20 @@ # # Makefile.in # -# Written by Jari Ruusu, February 18 2007 +# Written by Jari Ruusu, November 1 2008 # -# Copyright 2002-2007 by Jari Ruusu. +# Copyright 2002-2008 by Jari Ruusu. # Redistribution of this file is permitted under the GNU Public License. # -CC = @CC@ @CFLAGS@ @DEFS@ -D_GNU_SOURCE=1 -D_FILE_OFFSET_BITS=64 +CC = @CC@ @CPPFLAGS@ @CFLAGS@ @DEFS@ LINK = @CC@ @LDFLAGS@ +STRIP = @STRIP@ prefix = @prefix@ exec_prefix = @exec_prefix@ +srcdir = $(shell echo "@srcdir@" | sed -e 's/ /\\ /g') +builddir = @builddir@ +datarootdir = @datarootdir@ @SET_MAKE@ aespipe: aespipe.o aes.o md5.o sha512.o rmd160.o @@ -19,24 +23,24 @@ $(LINK) -o aespipe aespipe.o aes-x86.o md5-x86.o sha512.o rmd160.o @LIBS@ amd64: aespipe.o aes-amd64.o md5-amd64.o sha512.o rmd160.o $(LINK) -o aespipe aespipe.o aes-amd64.o md5-amd64.o sha512.o rmd160.o @LIBS@ -aespipe.o: aespipe.c aes.h md5.h sha512.h rmd160.h - $(CC) -o aespipe.o -c aespipe.c -aes.o: aes.c aes.h - $(CC) -DCONFIGURE_DETECTS_BYTE_ORDER=1 -DDATA_ALWAYS_ALIGNED=1 -o aes.o -c aes.c -aes-x86.o: aes-x86.S aes.h - $(CC) -o aes-x86.o -c aes-x86.S -aes-amd64.o: aes-amd64.S aes.h - $(CC) -o aes-amd64.o -c aes-amd64.S -md5.o: md5.c md5.h - $(CC) -o md5.o -c md5.c -md5-x86.o: md5-x86.S md5.h - $(CC) -o md5-x86.o -c md5-x86.S -md5-amd64.o: md5-amd64.S md5.h - $(CC) -o md5-amd64.o -c md5-amd64.S -sha512.o: sha512.c sha512.h - $(CC) -o sha512.o -c sha512.c -rmd160.o: rmd160.c rmd160.h - $(CC) -o rmd160.o -c rmd160.c +aespipe.o: $(srcdir)/aespipe.c $(srcdir)/aes.h $(srcdir)/md5.h $(srcdir)/sha512.h $(srcdir)/rmd160.h + $(CC) -o aespipe.o -c $(srcdir)/aespipe.c +aes.o: $(srcdir)/aes.c $(srcdir)/aes.h + $(CC) -DCONFIGURE_DETECTS_BYTE_ORDER=1 -DDATA_ALWAYS_ALIGNED=1 -o aes.o -c $(srcdir)/aes.c +aes-x86.o: $(srcdir)/aes-x86.S $(srcdir)/aes.h + $(CC) -o aes-x86.o -c $(srcdir)/aes-x86.S +aes-amd64.o: $(srcdir)/aes-amd64.S $(srcdir)/aes.h + $(CC) -o aes-amd64.o -c $(srcdir)/aes-amd64.S +md5.o: $(srcdir)/md5.c $(srcdir)/md5.h + $(CC) -o md5.o -c $(srcdir)/md5.c +md5-x86.o: $(srcdir)/md5-x86.S $(srcdir)/md5.h + $(CC) -o md5-x86.o -c $(srcdir)/md5-x86.S +md5-amd64.o: $(srcdir)/md5-amd64.S $(srcdir)/md5.h + $(CC) -o md5-amd64.o -c $(srcdir)/md5-amd64.S +sha512.o: $(srcdir)/sha512.c $(srcdir)/sha512.h + $(CC) -o sha512.o -c $(srcdir)/sha512.c +rmd160.o: $(srcdir)/rmd160.c $(srcdir)/rmd160.h + $(CC) -o rmd160.o -c $(srcdir)/rmd160.c clean: rm -f *.o aespipe test-file[12345] config.log config.status configure.lineno @@ -45,12 +49,20 @@ rm -f Makefile install: - mkdir -p @bindir@ - rm -f @bindir@/aespipe - cp aespipe @bindir@/aespipe - mkdir -p @mandir@/man1 - rm -f @mandir@/man1/aespipe.1 - cp aespipe.1 @mandir@/man1/aespipe.1 + if ! test -e aespipe ; then $(MAKE) aespipe ; fi + mkdir -p "$(DESTDIR)@bindir@" + rm -f "$(DESTDIR)@bindir@/aespipe" + cp aespipe "$(DESTDIR)@bindir@/aespipe" + chmod 0755 "$(DESTDIR)@bindir@/aespipe" + mkdir -p "$(DESTDIR)@mandir@/man1" + rm -f "$(DESTDIR)@mandir@/man1/aespipe.1" + cp $(srcdir)/aespipe.1 "$(DESTDIR)@mandir@/man1/aespipe.1" + chmod 0644 "$(DESTDIR)@mandir@/man1/aespipe.1" + +install-strip: + if ! test -e aespipe ; then $(MAKE) aespipe ; fi + $(STRIP) aespipe + $(MAKE) install tests: dd if=/dev/zero of=test-file1 bs=1024 count=33 @@ -62,16 +74,17 @@ $(MAKE) test-part2 CT=AES256 HF=sha512 ITER=0 GK= MD=1bf92ee337b653cdb32838047dec00fc MD5WORK=test-part@MD5WORKPART@ $(MAKE) test-part2 CT=AES256 HF=rmd160 ITER=0 GK= MD=c85eb59da18876ae71ebd838675c6ef4 MD5WORK=test-part@MD5WORKPART@ $(MAKE) test-part2 CT=AES256 HF=sha512 ITER=10 GK= MD=dadad48a6d3d9b9914199626ed7b710c MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@rm -fr test-dir1 @GPGWORKPART@mkdir test-dir1 - @GPGWORKPART@$(MAKE) test-part2 CT=AES128 HF=sha256 ITER=0 GK="-K gpgkey1.asc -G test-dir1" MD=fa5c9a84bc8f6257830c3cbe60294c69 MD5WORK=test-part@MD5WORKPART@ - @GPGWORKPART@$(MAKE) test-part2 CT=AES192 HF=sha384 ITER=0 GK="-K gpgkey1.asc -G test-dir1" MD=ddec9544a36100156aef353ec2bf9740 MD5WORK=test-part@MD5WORKPART@ - @GPGWORKPART@$(MAKE) test-part2 CT=AES256 HF=sha512 ITER=0 GK="-K gpgkey1.asc -G test-dir1" MD=cb38b603f96f0deac1891d423983d69c MD5WORK=test-part@MD5WORKPART@ - @GPGWORKPART@$(MAKE) test-part2 CT=AES128 HF=sha256 ITER=0 GK="-K gpgkey2.asc -G test-dir1" MD=f9825b79873f5c439ae9371c1a929a6c MD5WORK=test-part@MD5WORKPART@ - @GPGWORKPART@$(MAKE) test-part2 CT=AES192 HF=sha384 ITER=0 GK="-K gpgkey2.asc -G test-dir1" MD=489991b779213f60219f09c575c08247 MD5WORK=test-part@MD5WORKPART@ - @GPGWORKPART@$(MAKE) test-part2 CT=AES256 HF=sha512 ITER=0 GK="-K gpgkey2.asc -G test-dir1" MD=2a1d0d3fce83fbe5f3edcca95fbab3b7 MD5WORK=test-part@MD5WORKPART@ - @GPGWORKPART@$(MAKE) test-part2 CT=AES128 HF=sha256 ITER=0 GK="-K gpgkey3.asc -G test-dir1" MD=fabe7422f534820838dfd4571ba14ade MD5WORK=test-part@MD5WORKPART@ - @GPGWORKPART@$(MAKE) test-part2 CT=AES192 HF=sha384 ITER=0 GK="-K gpgkey3.asc -G test-dir1" MD=3eadc976525f9df7e18d56676ec730c8 MD5WORK=test-part@MD5WORKPART@ - @GPGWORKPART@$(MAKE) test-part2 CT=AES256 HF=sha512 ITER=0 GK="-K gpgkey3.asc -G test-dir1" MD=3be488a60dd77bcab9fbeba4a428c3d5 MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES128 HF=sha256 ITER=0 GK="-K $(srcdir)/gpgkey1.asc -G test-dir1" MD=fa5c9a84bc8f6257830c3cbe60294c69 MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES192 HF=sha384 ITER=0 GK="-K $(srcdir)/gpgkey1.asc -G test-dir1" MD=ddec9544a36100156aef353ec2bf9740 MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES256 HF=sha512 ITER=0 GK="-K $(srcdir)/gpgkey1.asc -G test-dir1" MD=cb38b603f96f0deac1891d423983d69c MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES128 HF=sha256 ITER=0 GK="-K $(srcdir)/gpgkey2.asc -G test-dir1" MD=f9825b79873f5c439ae9371c1a929a6c MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES192 HF=sha384 ITER=0 GK="-K $(srcdir)/gpgkey2.asc -G test-dir1" MD=489991b779213f60219f09c575c08247 MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES256 HF=sha512 ITER=0 GK="-K $(srcdir)/gpgkey2.asc -G test-dir1" MD=2a1d0d3fce83fbe5f3edcca95fbab3b7 MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES128 HF=sha256 ITER=0 GK="-K $(srcdir)/gpgkey3.asc -G test-dir1" MD=fabe7422f534820838dfd4571ba14ade MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES192 HF=sha384 ITER=0 GK="-K $(srcdir)/gpgkey3.asc -G test-dir1" MD=3eadc976525f9df7e18d56676ec730c8 MD5WORK=test-part@MD5WORKPART@ + @GPGWORKPART@$(MAKE) test-part2 CT=AES256 HF=sha512 ITER=0 GK="-K $(srcdir)/gpgkey3.asc -G test-dir1" MD=3be488a60dd77bcab9fbeba4a428c3d5 MD5WORK=test-part@MD5WORKPART@ echo 1234567890123456789012345678901 >test-file4 $(MAKE) test-part2 CT=AES HF=unhashed1 ITER=0 GK= MD=293b09053055af7ca5235dc6a5bc0b74 MD5WORK=test-part@MD5WORKPART@ echo 12345678901234567890123456789012 >test-file4 @@ -98,4 +111,4 @@ echo "NO MD5 TEST" >test-file2 echo "NO MD5 TEST" >test-file5 -.PHONY: aespipe x86 i586 amd64 clean distclean install tests test-part2 test-part3 test-part4 test-part5 +.PHONY: aespipe x86 i586 amd64 clean distclean install install-strip tests test-part2 test-part3 test-part4 test-part5 --- ../aespipe-v2.3e/configure.ac 2004-07-07 17:41:14.000000000 +0300 +++ ./configure.ac 2008-11-01 22:17:04.000000000 +0200 @@ -1,15 +1,18 @@ dnl dnl configure.ac dnl -dnl Written by Jari Ruusu, July 7 2004 +dnl Written by Jari Ruusu, November 1 2008 dnl -dnl Copyright 2002,2003,2004 by Jari Ruusu. +dnl Copyright 2002-2008 by Jari Ruusu. dnl Redistribution of this file is permitted under the GNU Public License. dnl AC_INIT(aespipe, 2) AC_CONFIG_SRCDIR([aespipe.c]) +AC_GNU_SOURCE +AC_SYS_LARGEFILE AC_PROG_CC +AC_CHECK_TOOL([STRIP],[strip]) AC_PROG_MAKE_SET AC_CHECK_FUNCS(mlockall) AC_HEADER_STDC @@ -21,20 +24,20 @@ AC_TYPE_SIZE_T dnl Check if parameter 1 exists as typedef or macro -AC_DEFUN(AESPIPE_CHECK_TYPE, +AC_DEFUN([AESPIPE_CHECK_TYPE], [ AC_MSG_CHECKING(for $1 type) -AC_CACHE_VAL(x_have_type_$1, +AC_CACHE_VAL(x_cv_have_type_$1, [AC_TRY_COMPILE([#define _GNU_SOURCE 1 #include <string.h> #include <sys/types.h>], [ int a = sizeof($1); -], x_have_type_$1=yes, x_have_type_$1=no )]) -AC_MSG_RESULT($x_have_type_$1) +], x_cv_have_type_$1=yes, x_cv_have_type_$1=no )]) +AC_MSG_RESULT($x_cv_have_type_$1) ]) dnl Make sure that u_int32_t is something sane AESPIPE_CHECK_TYPE(u_int32_t) -if test "$x_have_type_u_int32_t" = no; then +if test "$x_cv_have_type_u_int32_t" = no; then AC_CHECK_SIZEOF(unsigned int, 4) if test "$ac_cv_sizeof_unsigned_int" = 4; then AC_DEFINE(u_int32_t, unsigned int) @@ -48,7 +51,7 @@ dnl Make sure that u_int64_t is something sane AESPIPE_CHECK_TYPE(u_int64_t) -if test "$x_have_type_u_int64_t" = no; then +if test "$x_cv_have_type_u_int64_t" = no; then AC_CHECK_SIZEOF(unsigned long, 4) if test "$ac_cv_sizeof_unsigned_long" = 8; then AC_DEFINE(u_int64_t, unsigned long) - Linux-crypto: cryptography in and on the Linux system Archive: http://mail.nl.linux.org/linux-crypto/