Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Thu, 22 Dec 2011 15:22:23 +0700
From: Alexey Dokuchaev <danfe@....ru>
To: john-users@...ts.openwall.com
Subject: 1.7.9-jumbo5 fails to build with OMPFLAGS = -fopenmp -msse2

Hi there,

I was trying to build OpenMP-enabled JtR on FreeBSD 8.2 and commented out
"OMPFLAGS = -fopenmp -msse2" line in Makefile, but john could not be
linked because of some missing symbols:

    DES_fmt.o(.text+0xf1): In function `get_key':
    : undefined reference to `DES_bs_all'
    DES_fmt.o(.data+0x78): undefined reference to `DES_bs_crypt_25'
    DES_bs.o(.text+0xd): In function `DES_bs_set_key':
    : undefined reference to `DES_bs_all'
    DES_bs.o(.text+0x13): In function `DES_bs_set_key':
    : undefined reference to `DES_bs_all'
    DES_bs.o(.text+0xe1): In function `DES_bs_set_key_LM':

It turns out that with -msse2 in ASFLAGS, x86-sse.o lacks those functions,
per "nm x86-sse.o" for example:

    00000000 d const_init_a
    00000010 d const_init_b
    00000020 d const_init_c
    00000030 d const_init_d
    00000040 d const_stage2
    00000050 d const_stage3
             U nt_buffer1x
             U nt_buffer4x
    00000000 T nt_crypt_all_sse2
             U output1x
             U output4x

When I remove -msse2 from OMPFLAGS (and thus ASFLAGS), all DES_* symbols
are there (output is too long to list here, "nm x86-sse.o | wc -l" yields
42).  This behavior is consistent between GCC 4.2 and 4.4.  Why does it
happen?  Does it mean that "OMPFLAGS = -fopenmp -msse2" case is broken, or
I am missing something obvious here?  Thanks,

./danfe

Powered by blists - more mailing lists

Your e-mail address:

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