Re: [exim] Exim 4.8 build issue

Top Page
Delete this message
Reply to this message
Author: Todd Lyons
Date:  
To: George R. Kasica
CC: exim-users, David Godfrey, Jeremy Harris
Subject: Re: [exim] Exim 4.8 build issue
On Tue, Jun 5, 2012 at 9:26 AM, George R. Kasica <georgek@???> wrote:
>>>>I've hit the same compilation problem on a hand-crafted system running
>>>>glibc-2.2 and linux-2.6.7 kernel. Everything up to 4.77 compiled OK.
>>>>
>>>>I noticed that OS/os.h-HP-UX contains:
>>>>#define LLONG_MIN LONG_LONG_MIN
>>>>#define LLONG_MAX LONG_LONG_MAX
>>>>
>>>>so I patched expand.c with:
>>>>--- src/expand.c       2012-05-31 01:40:15.000000000 +0100
>>>>+++ src/expand.c.new   2012-06-03 18:09:01.000000000 +0100
>>>>@@ -11,6 +11,12 @@
>>>>
>>>> #include "exim.h"
>>>>
>>>>+/* dcg fix 3/6/2012 */
>>>>+#ifndef LLONG_MIN
>>>>+#define LLONG_MIN LONG_LONG_MIN
>>>>+#define LLONG_MAX LONG_LONG_MAX
>>>>+#endif
>>>>+
>>> David:
>>>
>>> You win the virtual beer (or whatever you'd like)
>>> Your patch fixed this issue and we're running on 4.8.0
>>
>>Note that this is basically what Phil told you to do in your
>>os.h-Linux :-)  David defined it in the file that he needed it to be
>>in, whereas putting it in os.h-Linux would just make it globally
>>visible.  I quote Phil:
> Thought I did the below but actually his earlier steps of 4
> lines...which failed.
> What change do you recommend making your patch or his edit....I
>
> totally missed that one here too many things flying back & forth.
>>> Alternatively, you might be able to rip the <features.h> line out of
>>> os.h-Linux and replace it with the sort of thing which os.h-HP-UX has:
>>>
>>> ----------------------------8< cut here >8------------------------------
>>> #define LLONG_MIN LONG_LONG_MIN
>>> #define LLONG_MAX LONG_LONG_MAX
>>>----------------------------8< cut here >8------------------------------


First, if it works the way David mentioned, then you know you have a
working case. You don't *need* to do this. However, if you want to
test what I consider the proper way:

1. make distclean
2. patch OS/os.h-Linux by adding the two #define statements
3. build it. If it fails...
4. patch OS/os.h-Linux by also commenting out the #include <features.h> line
5. make distclean
6. build it.

If it still fails past this point, then I think your working case
should just be considered the easiest way to fix it and you should
just walk away smiling :-)

...Todd
--
Always code as if the guy who ends up maintaining your code will be a
violent psychopath who knows where you live. -- Martin Golding