Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 20 Oct 2014 18:20:28 +0400
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Error with gcc-4.9.1 on MacOS 10.9.5

Hi Erik,

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.

For further occasions: this sort of postings are more appropriate for
john-users rather than john-dev, even if your intent is trying to help
JtR development by providing the problem reports (thanks!)

> ccRPUOcd.s:398:no such instruction: `andn %edi, %r8d,%eax?

This is an instruction from the BMI1 set, added with Haswell:

http://en.wikipedia.org/wiki/Bit_Manipulation_Instruction_Sets#BMI1_.28Bit_Manipulation_Instruction_Set_1.29

> Do I need to build gcc with certain options to get it to recognize this code?

No.  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.

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?

> I am running MacOS 10.9.5 on a system with a Haswell Corei7 cpu.

Thanks again,

Alexander

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.