Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 20 Mar 2015 00:29:16 +0100
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: [GSoC] building JtR for MIC

On 2015-03-18 11:38, Solar Designer wrote:
> I notice that in jumbo my original mic.h is modified to use autoconf'ed
> ARCH_* settings:
> 
> #if AC_BUILT
> #include "autoconfig.h"
> #else
> #define ARCH_WORD                       long
> #define ARCH_SIZE                       8
> #define ARCH_BITS                       64
> #define ARCH_BITS_LOG                   6
> #define ARCH_BITS_STR                   "64"
> #define ARCH_LITTLE_ENDIAN              1
> #define ARCH_INT_GT_32                  0
> #endif
> 
> This might be wrong since we're cross-compiling.  I doubt it's causing
> trouble now, though, since the host system is almost certainly x86_64,
> for which these settings just happen to be the same.

If configure does not realize we are cross-compiling, we are doing
something wrong. If it does, it will likely end up with the correct
figures for the target, not the build host.

configure will know you are cross-compiling if you supply a host triplet
using eg. --host=i686-apple-darwin (which is what to use if building
32-bit from a 64-bit OSX) that differs from the build host (which should
almost always end up right without an option - but there is one). I'm
not quite sure what to supply for the MIC on Super but Lei suggests we
use "--host=mic-linux" and I would think this would end up right.

I believe configure will also understand we are cross-compiling under a
few other circumstances but you should verify this. The first few lines
of output tells the tale:

*checking build system type... x86_64-apple-darwin14.1.0*
*checking host system type... i686-apple-darwin*
checking whether to compile using MPI... no
checking for i686-apple-darwin-gcc... gcc -m32 -mno-avx
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
*checking whether we are cross compiling... no*

Hmm, the above is weird. Maybe building 32-bit from 64-bit is merely
borderlining a cross compile.

Anyway, if things seem to end up wrong, the least you should do (and
what I did when I got the above output) is `--disable-native-tests`.
This is very close to saying "we ARE cross-compiling". No native checks
will be made on the build host for getting info about the targeted system.

magnum

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.