[Samba] Samba Compile Error on 3.0.7 and 3.0.8 Pre 1 on X64 Fedora

Bent Vangli vangli at online.no
Wed Jul 6 20:44:35 GMT 2005


Hi

Thank Guus. Your advise helped. I am now able to pinpoint the exact code that creates this error.

References below are  to Samba 3.0.20Pre1

"dynconfig.c" has an include statement that incorporate the file "include/includes.h". This latter file. On line 494 in this file a macro is runned if you have valgrind installed (valgrind is a memory check utility designed for x86 processors):

/* Special macros that are no-ops except when run under Valgrind on
 * x86.  They've moved a little bit from valgrind 1.0.4 to 1.9.4 */
#if HAVE_VALGRIND_MEMCHECK_H
        /* memcheck.h includes valgrind.h */
#include <valgrind/memcheck.h>
#elif HAVE_VALGRIND_H
#include <valgrind.h>
#endif

Using your advise Guus, I edited the Makefile to create .S file an analyzed it. As the error report stated during normal compilation, I found on both reported error lines the following assembler code:

  movl %rsi, %eax

This statement doesn't seem to be valid for the AMD64 processor. I also tryed to download a fresh new version of valgrind. That to bailed out in error because of this statement. IMHO it looks like that valgrind isn't 64 bit compliant. Further on it also look like samba detect the 64 bit prosecor as x86 (which isn't tatally wrong :-)) ) and therefor include valgrind code if that is installed. On Fedora 64 bit version, valgrind is included in the 32 bit parts, and thus is used.

Suggestion: A better test should be included to not select valgrind on 64 bit systemes, or better - valgrind should be rewritten to be 64 bit compliant.

Medicine: Delete the above section in "include/includes.h", then compilation run just fine.

All tests was done on Fedora Core 3 64 bit dual opteron system.

Very best regards Bent Vangli


More information about the samba mailing list