Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0b529e0192687b6e08a02f330c4542fc@smtp.hushmail.com>
Date: Mon, 20 Oct 2014 17:52:11 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: Error with gcc-4.9.1 on MacOS 10.9.5

On 2014-10-20 16:20, Solar Designer wrote:
> On Mon, Oct 20, 2014 at 07:11:56AM -0400, Erik Winkler wrote:
>> I am getting the following error compiling the latest bleeding jumbo using gcc-4.9.1.
>> ccRPUOcd.s:398:no such instruction: `andn %edi, %r8d,%eax?

Did you not get this message from ./configure?

configure: WARNING: **************************************************
configure: WARNING: * System's 'as' can't assemble AVX instructions. *
configure: WARNING: * Fixing this may yield better performance.      *
configure: WARNING: * See last section of doc/INSTALL                *
configure: WARNING: **************************************************

> The problem is that your gcc is more capable than your assembler.
> Your gcc recognized your newer CPU and generated code for it, but your
> assembler (coming from OS X) can't translate it into opcodes.

The native clang can do it though, so we do provide a trivial script 
that goes to /usr/local/bin/as and that just calls clang instead. All 
details are in doc/INSTALL. I'm not sure why autoconf did not end up 
working (not using AVX), that's is a bug.

> We'll keep seeing this problem in various contexts, for various
> instruction set extensions on various archs, as long as we use the
> -march=native option to gcc.  There's no good solution.  Maybe we need a
> documented workaround, though - e.g., "remove -march=native or replace
> it with a specific option requesting an older architecture revision such
> as -mavx, or upgrade your assembler".  Maybe we need a configure option
> disabling use of -march=native, or do we already have that?  magnum?

We have that too. IIRC --disable-native-macro turns off -march=native 
and --disable-native-tests turns off all auto-probing so you can specify 
custom CFLAGS however you want. But that 'as' wrapper script should be 
the best solution in this case.

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.