can't build latest master

Andrew Bartlett abartlet at samba.org
Thu Jun 20 06:54:34 MDT 2013


On Thu, 2013-06-20 at 14:47 +0200, Christian Ambach wrote:
> On 06/20/2013 02:13 PM, steve wrote:
> 
> >>>> [ 628/3837] Compiling lib/util/genrand.c
> >>>> In file included from ../source4/../lib/crypto/crypto.h:22:0,
> >>>>                   from ../lib/util/genrand.c:24:
> >>>> ../source4/../lib/crypto/md5.h:31:3: error: expected ‘;’, identifier or
> >>>> ‘(’ before ‘struct’
> >>>> Waf: Leaving directory `/home/steve/samba-master/bin'
> >>>> Build failed:  -> task failed (err #1):
> >>>>          {task: cc genrand.c -> genrand_1.o}
> >>>> make: *** [all] Error 1
> >>>
> >>> What's your platform?
> >>
> >> And has configure been re-run?
> >>
> 
> >
> > Hi
> > No. This is:
> > git clean -xdf
> > git pull
> > ./configure --enable-debug && make
> >
> 
> I can reproduce this locally on my F17 when renaming 
> /usr/include/openssl/md5.h to something else.
> 
> Culprit is the a define made in that case
> #define MD5_CTX struct MD5Context
> 
> This attached patch makes it work again on my system (but might cause 
> breakage on others?)
> 
> Comments?

I tried to cope with a case where the system had an md5.h, but it used
struct MD5Context but not MD5_CTX.  This may well not be needed, it was
a belts and braces thing that clearly has gone wrong, and the whole line
could be dropped.

Either that, change:

typedef struct MD5Context {
        uint32_t buf[4];
        uint32_t bits[2];
        uint8_t in[64];
} MD5_CTX;

to

struct MD5Context {
        uint32_t buf[4];
        uint32_t bits[2];
        uint8_t in[64];
};

In md5.h

You might now see why I said I wasn't sure this was worth the pain :-)

What do you think?

Thanks,

Andrew Bartlett

-- 
Andrew Bartlett                                http://samba.org/~abartlet/
Authentication Developer, Samba Team           http://samba.org




More information about the samba-technical mailing list