Hi Joris,

On Thu, Jun 11, 2015 at 03:57:27PM +0200, joris dedieu wrote:
> Ok. I have checked out the main repo
> I'm at 28b48ccbc879a552f988e6e1db22941e3362b4db
(...)

> Same issue same solution with minor adjustments for the patch to apply
> 
> Joris
> 
> diff --git a/include/common/compat.h b/include/common/compat.h
> index ecbc3b1..48ea1f7 100644
> --- a/include/common/compat.h
> +++ b/include/common/compat.h
> @@ -27,6 +27,8 @@
>  #include <sys/types.h>
>  #include <sys/socket.h>
>  #include <arpa/inet.h>
> +#include <common/config.h>
> +#include <common/standard.h>
> 
>  #ifndef BITS_PER_INT
>  #define BITS_PER_INT    (8*sizeof(int))
> diff --git a/include/common/config.h b/include/common/config.h
> index 27b8f14..5833cfc 100644
> --- a/include/common/config.h
> +++ b/include/common/config.h
> @@ -23,7 +23,6 @@
>  #define _COMMON_CONFIG_H
> 
>  #include <common/compiler.h>
> -#include <common/compat.h>
>  #include <common/defaults.h>
> 
>  /* this reduces the number of calls to select() by choosing appropriate
> diff --git a/include/types/global.h b/include/types/global.h
> index b3b9672..3812771 100644
> --- a/include/types/global.h
> +++ b/include/types/global.h
> @@ -25,7 +25,6 @@
>  #include <netinet/in.h>
> 
>  #include <common/config.h>
> -#include <common/standard.h>
>  #include <import/da.h>
>  #include <types/freq_ctr.h>
>  #include <types/listener.h>

Since in theory that doesn't make sense at all, I suspect that we're falling
into a case of a #ifndef <something> where <something> is defined on your
platform.

Could you please try the following with and without the patch above :

  make clean
  make [your usual options] DEBUG_CFLAGS="-dM -E"

It will not complete, as it will dump all known defines into each .o file.
By archiving them between the builds, you can diff the trees and see if
a define appears/disappears from one .o file (probably the one where you
see the crash). I'd bet that we'll find that FreeBSD uses a macro with a
similar name as one in haproxy and that it changes a struct size or
something depending on how the .h are included.

Thanks,
Willy


Reply via email to