Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 20 Jan 2013 16:17:58 +0100
From: Frank Dittrich <frank_dittrich@...mail.com>
To: john-dev@...ts.openwall.com
Subject: Re: clang build error

On 01/20/2013 01:08 PM, magnum wrote:
> On 20 Jan, 2013, at 12:51 , Frank Dittrich <frank_dittrich@...mail.com> wrote:
>> May be clang found a real bug here.
>> With latest git (+changing the MAYBE_INLINE definition in common.h),
> 
> Why does it need to be changed now?
> 
>> I get for linux-x86-64-clang on Fedora 18 (clang 3.1):
>>
>> dynamic_fmt.o: In function `DynamicFunc__crypt_md5':
>> dynamic_fmt.c:(.text+0x4ce0): undefined reference to `MD5_body'
>> dynamic_fmt.o: In function `DynamicFunc__POCrypt':
>> dynamic_fmt.c:(.text+0x6516): undefined reference to `MD5_body'
>> dynamic_fmt.o: In function `DynamicFunc__crypt2_md5':
>> dynamic_fmt.c:(.text+0x6670): undefined reference to `MD5_body'
>> dynamic_fmt.o: In function `DynamicFunc__crypt_md5_in1_to_out2':
>> dynamic_fmt.c:(.text+0x6900): undefined reference to `MD5_body'
>> dynamic_fmt.o: In function `DynamicFunc__crypt_md5_in2_to_out1':
>> dynamic_fmt.c:(.text+0x6c20): undefined reference to `MD5_body'
>> dynamic_fmt.o:dynamic_fmt.c:(.text+0x71f0): more undefined references to
>> `MD5_body' follow
>> clang: error: linker command failed with exit code 1 (use -v to see
>> invocation)
>> make[1]: *** [../run/john] Error 1
>> make: *** [linux-x86-64-clang] Error 2
> 
> This looks more like a "make clean" miss, or something wrong with the build target. But Bull can build that target.

With a new clone of latest git:

commit 89bdf4a2573720f664d2b80dbb6ea90b28aae058
Author: magnum <john.magnum@...hmail.com>
Date:   Sun Jan 20 14:49:01 2013 +0100

    Use correct value of BINARY_SIZE: GPU formats, and a couple Dhiru
missed (?)


and this change:
(unstable-jumbo)src $ git diff
diff --git a/src/common.h b/src/common.h
index 4efff92..49bda4c 100644
--- a/src/common.h
+++ b/src/common.h
@@ -29,7 +29,7 @@ typedef unsigned long long ARCH_WORD_64;
 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
 #define MAYBE_INLINE __attribute__((always_inline)) inline
 #elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
-#define MAYBE_INLINE __attribute__((always_inline))
+#define MAYBE_INLINE __attribute__((always_inline)) inline
 #else
 #define MAYBE_INLINE __inline__
 #endif


I still get that error when building linux-x86-64-clang (after doing an
unnecessary make clean).
I can reproduce the error with Fedora 18 (clang 3.1) and Fedora 16
(clang 2.9).

On my 32bit Fedora 16 system, building linux-x86-64-clang with the
common.h change mentioned above works.

Frank

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.