Re: error building 2.0.7
Paul Gildea <[email protected]> Tue, 20 Nov 2018 16:42:52 +0000
| Newsgroups | gmane.linux.keepalived.devel |
|---|---|
| Message-ID | <CAP3D3gesUK2S+h+JrWVHqioGDEXUPXcn7QptZyVPcTB4TGAzAQ@mail.gmail.com> |
--===============7095220571752865621==
Content-Type: multipart/alternative; boundary="000000000000c7fbbb057b1b5391"
--000000000000c7fbbb057b1b5391
Content-Type: text/plain; charset="UTF-8"
Hi, just so you know, the naming conflict above (with uClibc) is present in
the newest keepalived (2.0.10).
If anybody else is having this issue here is the patch I use for my system:
diff -Naur keepalived-2.0.10/lib/parser.c
keepalived-2.0.10_patch/lib/parser.c
--- keepalived-2.0.10/lib/parser.c 2018-11-05 21:49:48.000000000 +0000
+++ keepalived-2.0.10_patch/lib/parser.c 2018-11-20
15:55:08.381534860 +0000
@@ -1915,20 +1915,20 @@
#endif
if (!max_time)
- max_time = TIMER_MAX;
+ max_time = TIMER_MAXIMUM;
errno = 0;
timer = strtoul(vector_slot(strvec, index), &endptr, 10);
- *res = (timer > TIMER_MAX ? TIMER_MAX : timer) * TIMER_HZ;
+ *res = (timer > TIMER_MAXIMUM ? TIMER_MAXIMUM : timer) * TIMER_HZ;
if (FMT_STR_VSLOT(strvec, index)[0] == '-')
report_config_error(CONFIG_INVALID_NUMBER, "%snegative
number '%s'", warn, FMT_STR_VSLOT(strvec, index));
else if (*endptr)
report_config_error(CONFIG_INVALID_NUMBER, "%sinvalid
number '%s'", warn, FMT_STR_VSLOT(strvec, index));
- else if (errno == ERANGE || timer > TIMER_MAX)
+ else if (errno == ERANGE || timer > TIMER_MAXIMUM)
report_config_error(CONFIG_INVALID_NUMBER, "%snumber '%s'
outside timer range", warn, FMT_STR_VSLOT(strvec, index));
else if (timer < min_time || timer > max_time)
- report_config_error(CONFIG_INVALID_NUMBER, "number '%s'
outside range [%ld, %ld]", FMT_STR_VSLOT(strvec, index), min_time, max_time
? max_time : TIMER_MAX);
+ report_config_error(CONFIG_INVALID_NUMBER, "number '%s'
outside range [%ld, %ld]", FMT_STR_VSLOT(strvec, index), min_time, max_time
? max_time : TIMER_MAXIMUM);
else
return true;
diff -Naur keepalived-2.0.10/lib/parser.h
keepalived-2.0.10_patch/lib/parser.h
--- keepalived-2.0.10/lib/parser.h 2018-11-08 19:33:31.000000000 +0000
+++ keepalived-2.0.10_patch/lib/parser.h 2018-11-20
15:55:08.381534860 +0000
@@ -38,7 +38,7 @@
#define MAXBUF 1024
/* Maximum time read_timer can return */
-#define TIMER_MAX (ULONG_MAX / TIMER_HZ)
+#define TIMER_MAXIMUM (ULONG_MAX / TIMER_HZ)
/* Configuration test errors. These should be in decreasing order of
severity */
typedef enum {
On Thu, 18 Oct 2018 at 11:23, Paul Gildea <[email protected]> wrote:
> Apologies for the slow reply, I patched "#include <stdbool.h>" into
> core/process.c and keepalived-2.0.7 built.
> I haven't tested it out yet but if there is a problem with that solution
> (never really used C) I can work around it as it's just some definitions.
> I can log bugs about these if necessary? Even though it's more of a uClibc
> problem.
>
> Thanks,
>
> --
> Paul
>
> On Tue, 16 Oct 2018 at 17:39, Quentin Armitage <[email protected]>
> wrote:
>
>> Paul,
>>
>> It looks like bool, true and false are undeclared/undefined. So far as I
>> can see uClibc doesn't have a stdbool.h header file, but I'm not sure why
>> the #include <stdbool.h> isn't failing.
>>
>> Quentin
>>
>> On Tue, 2018-10-16 at 15:25 +0100, Paul Gildea wrote:
>>
>> Thanks Quentin, that cleared up the issue in my mind for me very well.
>> Either solution worked fine and build is progressing further.
>> It looks like there are some more issues for me so I'll see how I get on
>> and let you know of what happens:
>>
>> make[3]: Entering directory
>> `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7new/keepalived/core'
>> CC main.o
>> CC daemon.o
>> CC pidfile.o
>> CC layer4.o
>> CC smtp.o
>> CC global_data.o
>> CC global_parser.o
>> CC process.o
>> process.c:41: error: expected '=', ',', ';', 'asm' or '__attribute__'
>> before 'realtime_priority_set'
>> process.c:49: error: expected '=', ',', ';', 'asm' or '__attribute__'
>> before 'priority_set'
>> process.c: In function 'set_process_priority':
>> process.c:79: error: 'priority_set' undeclared (first use in this
>> function)
>> process.c:79: error: (Each undeclared identifier is reported only once
>> process.c:79: error: for each function it appears in.)
>> process.c:79: error: 'true' undeclared (first use in this function)
>> process.c: In function 'reset_process_priority':
>> process.c:91: error: 'priority_set' undeclared (first use in this
>> function)
>> process.c:91: error: 'false' undeclared (first use in this function)
>> process.c: In function 'reset_process_priorities':
>> process.c:141: error: 'realtime_priority_set' undeclared (first use in
>> this function)
>> process.c:150: error: 'false' undeclared (first use in this function)
>> process.c:164: error: 'priority_set' undeclared (first use in this
>> function)
>> make[3]: *** [process.o] Error 1
>> make[3]: *** Waiting for unfinished jobs....
>> make[3]: Leaving directory
>> `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7new/keepalived/core'
>> make[2]: *** [all-recursive] Error 1
>> make[2]: Leaving directory
>> `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7new/keepalived'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory
>> `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7new'
>> make: ***
>> [/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7new/.stamp_built]
>> Error 2
>>
>>
>> On Tue, 16 Oct 2018 at 14:26, Quentin Armitage <[email protected]>
>> wrote:
>>
>> Paul,
>>
>> This appears probably to be due to a conflict between uClibc using
>> TIMER_MAX and keepalived defining TIMER_MAX. glibc doesn't have a
>> definition of, or use, TIMER_MAX, at least not on my systems, and musl
>> doesn't appear to either.
>>
>> So the problem would appear to be namespace polution by uClibc. Looking
>> at the uClibc-ng source code, TIMER_MAX doesn't appear to be used other
>> than to define it if it is not defined, in common/bits/uClibc_local_lim.h,
>> so I suspect it is some historical code in uClibc that should be removed.
>>
>> It would be simple enough to rename the TIMER_MAX used in keepalived to
>> something else, and there are only 4 lines in keepalived where it is used
>> (all in read_timer in lib/parser.c).
>>
>> Could you just try moving the definition of TIMER_MAX from lib/parser.h
>> to lib/parser.c and see if that works. If not, could you try changing it to
>> TIMER_MAX_UL or something like that and seeing if it resolves your problem.
>>
>> Please let me know what you work out, and we can then see if we can push
>> a commit to work around the problem in uClibc.
>>
>> Quentin Armitage
>> On Tue, 2018-10-16 at 12:22 +0100, Paul Gildea wrote:
>>
>> Hi,
>>
>> I currently have 2.0.5 build and was trying to patch it with a fix I need
>> by patching this commit to it:
>>
>> https://github.com/acassen/keepalived/commit/37d6b3bc22d307d09ab8bd75111c3645c742c792
>> However the code change must be too great between 2.0.5 and master
>> because doing so causes build errors. To make the code more similar before
>> patching I decided to upgrade to the latest release, 2.0.7, however that is
>> not building with the below error, do you know what might have changed to
>> cause this or what is happening? I'm not sure from reading the changelog. I
>> have also tried to build 2.0.6 to narrow it down, which worked fine.
>>
>> /media/vmpart/vrrp/buildroot/output/host/usr/x86_64-unknown-linux-uclibc/sysroot/usr/include/bits/uClibc_local_lim.h:15:3:
>> error: #error local_lim.h was incorrectly updated, use the NPTL version
>> from glibc
>> make[3]: *** [parser.o] Error 1
>> make[3]: *** Waiting for unfinished jobs....
>> CC logger.o
>> make[3]: Leaving directory
>> `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7/lib'
>> make[2]: *** [all] Error 2
>> make[2]: Leaving directory
>> `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7/lib'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory
>> `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7'
>> make: ***
>> [/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7/.stamp_built]
>> Error 2
>>
>>
>> Looking at the file with that error I see:
>>
>> #if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX || !defined
>> SEM_VALUE_MAX
>> # error local_lim.h was incorrectly updated, use the NPTL version from
>> glibc
>> #endif
>>
>> Regards,
>>
>> --
>> Paul
>>
>> _______________________________________________
>> Keepalived-devel mailing [email protected]://lists.sourceforge.net/lists/listinfo/keepalived-devel
>>
>>
--000000000000c7fbbb057b1b5391
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div dir=3D"ltr">Hi, just so you know, the naming conflict=
above (with uClibc) is present in the newest keepalived (2.0.10).<div><br>=
</div><div>If anybody else is having this issue here is the patch I use for=
my system:</div><div><br></div><div><div><font face=3D"monospace, monospac=
e">diff -Naur keepalived-2.0.10/lib/parser.c keepalived-2.0.10_patch/lib/pa=
rser.c</font></div><div><font face=3D"monospace, monospace">--- keepalived-=
2.0.10/lib/parser.c =C2=A0 =C2=A0 =C2=A02018-11-05 21:49:48.000000000 +0000=
</font></div><div><font face=3D"monospace, monospace">+++ keepalived-2.0.10=
_patch/lib/parser.c =C2=A0 =C2=A0 =C2=A0 =C2=A02018-11-20 15:55:08.38153486=
0 +0000</font></div><div><font face=3D"monospace, monospace">@@ -1915,20 +1=
915,20 @@</font></div><div><font face=3D"monospace, monospace">=C2=A0#endif=
</font></div><div><font face=3D"monospace, monospace"><br></font></div><div=
><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!max_t=
ime)</font></div><div><font face=3D"monospace, monospace">- =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 max_time =3D TIMER_MAX;</font></div><div=
><font face=3D"monospace, monospace">+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 max_time =3D TIMER_MAXIMUM;</font></div><div><font face=3D"mo=
nospace, monospace"><br></font></div><div><font face=3D"monospace, monospac=
e">=C2=A0 =C2=A0 =C2=A0 =C2=A0 errno =3D 0;</font></div><div><font face=3D"=
monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 timer =3D strtoul(vector_=
slot(strvec, index), &endptr, 10);</font></div><div><font face=3D"monos=
pace, monospace">- =C2=A0 =C2=A0 =C2=A0 *res =3D (timer > TIMER_MAX ? TI=
MER_MAX : timer) * TIMER_HZ;</font></div><div><font face=3D"monospace, mono=
space">+ =C2=A0 =C2=A0 =C2=A0 *res =3D (timer > TIMER_MAXIMUM ? TIMER_MA=
XIMUM : timer) * TIMER_HZ;</font></div><div><font face=3D"monospace, monosp=
ace"><br></font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 if (FMT_STR_VSLOT(strvec, index)[0] =3D=3D '-')</=
font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 report_config_error(CONFIG_INVALID_NUMBE=
R, "%snegative number '%s'", warn, FMT_STR_VSLOT(strvec, =
index));</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0=
=C2=A0 =C2=A0 else if (*endptr)</font></div><div><font face=3D"monospace, =
monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 report_c=
onfig_error(CONFIG_INVALID_NUMBER, "%sinvalid number '%s'"=
;, warn, FMT_STR_VSLOT(strvec, index));</font></div><div><font face=3D"mono=
space, monospace">- =C2=A0 =C2=A0 =C2=A0 else if (errno =3D=3D ERANGE || ti=
mer > TIMER_MAX)</font></div><div><font face=3D"monospace, monospace">+ =
=C2=A0 =C2=A0 =C2=A0 else if (errno =3D=3D ERANGE || timer > TIMER_MAXIM=
UM)</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 report_config_error(CONFIG_INVALID_N=
UMBER, "%snumber '%s' outside timer range", warn, FMT_STR=
_VSLOT(strvec, index));</font></div><div><font face=3D"monospace, monospace=
">=C2=A0 =C2=A0 =C2=A0 =C2=A0 else if (timer < min_time || timer > ma=
x_time)</font></div><div><font face=3D"monospace, monospace">- =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 report_config_error(CONFIG_INVALID_N=
UMBER, "number '%s' outside range [%ld, %ld]", FMT_STR_VS=
LOT(strvec, index), min_time, max_time ? max_time : TIMER_MAX);</font></div=
><div><font face=3D"monospace, monospace">+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 report_config_error(CONFIG_INVALID_NUMBER, "number &=
#39;%s' outside range [%ld, %ld]", FMT_STR_VSLOT(strvec, index), m=
in_time, max_time ? max_time : TIMER_MAXIMUM);</font></div><div><font face=
=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 else</font></div><div=
><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 return true;</font></div><div><font face=3D"monospace, mo=
nospace"><br></font></div><div><font face=3D"monospace, monospace">diff -Na=
ur keepalived-2.0.10/lib/parser.h keepalived-2.0.10_patch/lib/parser.h</fon=
t></div><div><font face=3D"monospace, monospace">--- keepalived-2.0.10/lib/=
parser.h =C2=A0 =C2=A0 =C2=A02018-11-08 19:33:31.000000000 +0000</font></di=
v><div><font face=3D"monospace, monospace">+++ keepalived-2.0.10_patch/lib/=
parser.h =C2=A0 =C2=A0 =C2=A0 =C2=A02018-11-20 15:55:08.381534860 +0000</fo=
nt></div><div><font face=3D"monospace, monospace">@@ -38,7 +38,7 @@</font><=
/div><div><font face=3D"monospace, monospace">=C2=A0#define MAXBUF 1024</fo=
nt></div><div><font face=3D"monospace, monospace"><br></font></div><div><fo=
nt face=3D"monospace, monospace">=C2=A0/* Maximum time read_timer can retur=
n */</font></div><div><font face=3D"monospace, monospace">-#define TIMER_MA=
X (ULONG_MAX / TIMER_HZ)</font></div><div><font face=3D"monospace, monospac=
e">+#define TIMER_MAXIMUM (ULONG_MAX / TIMER_HZ)</font></div><div><font fac=
e=3D"monospace, monospace"><br></font></div><div><font face=3D"monospace, m=
onospace">=C2=A0/* Configuration test errors. These should be in decreasing=
order of severity */</font></div><div><font face=3D"monospace, monospace">=
=C2=A0typedef enum {</font></div></div><div><br></div><div><br></div></div>=
</div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Thu, 18 Oct 2018 a=
t 11:23, Paul Gildea <<a href=3D"mailto:[email protected]">[email protected]</=
a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div=
dir=3D"ltr">Apologies for the slow reply, I patched =C2=A0"#include &=
lt;stdbool.h>" into core/process.c and keepalived-2.0.7 built.<div>=
I haven't tested it out yet but if there is a problem with that solutio=
n (never really used C)=C2=A0I can work around it as it's just some def=
initions.=C2=A0 I can log bugs about these if necessary? Even though it'=
;s more of a uClibc problem.</div><div><br></div><div>Thanks,</div><div><br=
></div><div>--</div><div>Paul</div></div></div><br><div class=3D"gmail_quot=
e"><div dir=3D"ltr">On Tue, 16 Oct 2018 at 17:39, Quentin Armitage <<a h=
ref=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
rg.uk</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor=
=3D"#ffffff" text=3D"#2e3436" link=3D"#2a76c6" vlink=3D"#2e3436"><div>Paul,=
</div><div><br></div><div>It looks like bool, true and false are undeclared=
/undefined. So far as I can see uClibc doesn't have a stdbool.h header =
file, but I'm not sure why the #include <stdbool.h> isn't fai=
ling.</div><div><br></div><div>Quentin</div><div><br></div><div>On Tue, 201=
8-10-16 at 15:25 +0100, Paul Gildea wrote:</div><blockquote type=3D"cite" s=
tyle=3D"margin:0 0 0 .8ex;border-left:2px #729fcf solid;padding-left:1ex"><=
div dir=3D"ltr"><div dir=3D"ltr">Thanks Quentin, that cleared up the issue =
in my mind for me very well. Either solution worked fine and build is progr=
essing further.<div>It looks like there are some more issues for me so I=
9;ll see how I get on and let you know of what happens:</div><div><br></div=
><div><div><font face=3D"monospace, monospace">make[3]: Entering directory =
`/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7new/keepalived/c=
ore'</font></div><div><font face=3D"monospace, monospace">=C2=A0 CC =C2=
=A0 =C2=A0 =C2=A0 main.o</font></div><div><font face=3D"monospace, monospac=
e">=C2=A0 CC =C2=A0 =C2=A0 =C2=A0 daemon.o</font></div><div><font face=3D"m=
onospace, monospace">=C2=A0 CC =C2=A0 =C2=A0 =C2=A0 pidfile.o</font></div><=
div><font face=3D"monospace, monospace">=C2=A0 CC =C2=A0 =C2=A0 =C2=A0 laye=
r4.o</font></div><div><font face=3D"monospace, monospace">=C2=A0 CC =C2=A0 =
=C2=A0 =C2=A0 smtp.o</font></div><div><font face=3D"monospace, monospace">=
=C2=A0 CC =C2=A0 =C2=A0 =C2=A0 global_data.o</font></div><div><font face=3D=
"monospace, monospace">=C2=A0 CC =C2=A0 =C2=A0 =C2=A0 global_parser.o</font=
></div><div><font face=3D"monospace, monospace">=C2=A0 CC =C2=A0 =C2=A0 =C2=
=A0 process.o</font></div><div><font face=3D"monospace, monospace">process.=
c:41: error: expected '=3D', ',', ';', 'asm'=
; or '__attribute__' before 'realtime_priority_set'</font><=
/div><div><font face=3D"monospace, monospace">process.c:49: error: expected=
'=3D', ',', ';', 'asm' or '__attribute=
__' before 'priority_set'</font></div><div><font face=3D"monosp=
ace, monospace">process.c: In function 'set_process_priority':</fon=
t></div><div><font face=3D"monospace, monospace">process.c:79: error: '=
priority_set' undeclared (first use in this function)</font></div><div>=
<font face=3D"monospace, monospace">process.c:79: error: (Each undeclared i=
dentifier is reported only once</font></div><div><font face=3D"monospace, m=
onospace">process.c:79: error: for each function it appears in.)</font></di=
v><div><font face=3D"monospace, monospace">process.c:79: error: 'true&#=
39; undeclared (first use in this function)</font></div><div><font face=3D"=
monospace, monospace">process.c: In function 'reset_process_priority=
9;:</font></div><div><font face=3D"monospace, monospace">process.c:91: erro=
r: 'priority_set' undeclared (first use in this function)</font></d=
iv><div><font face=3D"monospace, monospace">process.c:91: error: 'false=
' undeclared (first use in this function)</font></div><div><font face=
=3D"monospace, monospace">process.c: In function 'reset_process_priorit=
ies':</font></div><div><font face=3D"monospace, monospace">process.c:14=
1: error: 'realtime_priority_set' undeclared (first use in this fun=
ction)</font></div><div><font face=3D"monospace, monospace">process.c:150: =
error: 'false' undeclared (first use in this function)</font></div>=
<div><font face=3D"monospace, monospace">process.c:164: error: 'priorit=
y_set' undeclared (first use in this function)</font></div><div><font f=
ace=3D"monospace, monospace">make[3]: *** [process.o] Error 1</font></div><=
div><font face=3D"monospace, monospace">make[3]: *** Waiting for unfinished=
jobs....</font></div><div><font face=3D"monospace, monospace">make[3]: Lea=
ving directory `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7n=
ew/keepalived/core'</font></div><div><font face=3D"monospace, monospace=
">make[2]: *** [all-recursive] Error 1</font></div><div><font face=3D"monos=
pace, monospace">make[2]: Leaving directory `/media/vmpart/vrrp/buildroot/o=
utput/build/keepalived-2.0.7new/keepalived'</font></div><div><font face=
=3D"monospace, monospace">make[1]: *** [all-recursive] Error 1</font></div>=
<div><font face=3D"monospace, monospace">make[1]: Leaving directory `/media=
/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7new'</font></div><d=
iv><font face=3D"monospace, monospace">make: *** [/media/vmpart/vrrp/buildr=
oot/output/build/keepalived-2.0.7new/.stamp_built] Error 2</font></div></di=
v><div><br></div></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr=
">On Tue, 16 Oct 2018 at 14:26, Quentin Armitage <<a href=3D"mailto:quen=
[email protected]" target=3D"_blank">[email protected]</a>> wrot=
e:<br></div><blockquote type=3D"cite" style=3D"margin:0 0 0 .8ex;border-lef=
t:2px #729fcf solid;padding-left:1ex"><div bgcolor=3D"#ffffff" text=3D"#2e3=
436" link=3D"#2a76c6" vlink=3D"#2e3436"><div>Paul,</div><div><br></div><div=
>This appears probably to be due to a conflict between uClibc using TIMER_M=
AX and keepalived defining TIMER_MAX. glibc doesn't have a definition o=
f, or use, TIMER_MAX, at least not on my systems, and musl doesn't appe=
ar to either.</div><div><br></div><div>So the problem would appear to be na=
mespace polution by uClibc. Looking at the uClibc-ng source code, TIMER_MAX=
doesn't appear to be used other than to define it if it is not defined=
, in common/bits/uClibc_local_lim.h, so I suspect it is some historical cod=
e in uClibc that should be removed.</div><div><br></div><div>It would be si=
mple enough to rename the TIMER_MAX used in keepalived to something else, a=
nd there are only 4 lines in keepalived where it is used (all in read_timer=
in lib/parser.c).</div><div><br></div><div>Could you just try moving the =
definition of TIMER_MAX from lib/parser.h to lib/parser.c and see if that w=
orks. If not, could you try changing it to TIMER_MAX_UL or something like t=
hat and seeing if it resolves your problem. </div><div><br></div><div>Pleas=
e let me know what you work out, and we can then see if we can push a commi=
t to work around the problem in uClibc.</div><div><br></div><div>Quentin Ar=
mitage</div><div>On Tue, 2018-10-16 at 12:22 +0100, Paul Gildea wrote:</div=
><blockquote type=3D"cite" style=3D"margin:0 0 0 .8ex;border-left:2px #729f=
cf solid;padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"lt=
r"><div dir=3D"ltr">Hi,<div><br></div><div>I currently have 2.0.5 build and=
was trying to patch it with a fix I need by patching this commit to it:</d=
iv><div><a href=3D"https://github.com/acassen/keepalived/commit/37d6b3bc22d=
307d09ab8bd75111c3645c742c792" target=3D"_blank">https://github.com/acassen=
/keepalived/commit/37d6b3bc22d307d09ab8bd75111c3645c742c792</a><br></div><d=
iv>However the code change must be too great between 2.0.5 and master becau=
se doing so causes build errors. To make the code more similar before patch=
ing I decided to upgrade to the latest release, 2.0.7, however that is not =
building with the below error, do you know what might have changed to cause=
this or what is happening? I'm not sure from reading the changelog. I =
have also tried to build 2.0.6 to narrow it down, =C2=A0which worked fine.<=
/div><div><br></div><div><div><font face=3D"monospace, monospace">/media/vm=
part/vrrp/buildroot/output/host/usr/x86_64-unknown-linux-uclibc/sysroot/usr=
/include/bits/uClibc_local_lim.h:15:3: error: #error local_lim.h was incorr=
ectly updated, use the NPTL version from glibc</font></div><div><font face=
=3D"monospace, monospace">make[3]: *** [parser.o] Error 1</font></div><div>=
<font face=3D"monospace, monospace">make[3]: *** Waiting for unfinished job=
s....</font></div><div><font face=3D"monospace, monospace">=C2=A0 CC =C2=A0=
=C2=A0 =C2=A0 logger.o</font></div><div><font face=3D"monospace, monospace=
">make[3]: Leaving directory `/media/vmpart/vrrp/buildroot/output/build/kee=
palived-2.0.7/lib'</font></div><div><font face=3D"monospace, monospace"=
>make[2]: *** [all] Error 2</font></div><div><font face=3D"monospace, monos=
pace">make[2]: Leaving directory `/media/vmpart/vrrp/buildroot/output/build=
/keepalived-2.0.7/lib'</font></div><div><font face=3D"monospace, monosp=
ace">make[1]: *** [all-recursive] Error 1</font></div><div><font face=3D"mo=
nospace, monospace">make[1]: Leaving directory `/media/vmpart/vrrp/buildroo=
t/output/build/keepalived-2.0.7'</font></div><div><font face=3D"monospa=
ce, monospace">make: *** [/media/vmpart/vrrp/buildroot/output/build/keepali=
ved-2.0.7/.stamp_built] Error 2</font></div></div><div><br></div><div><br><=
/div><div>Looking at the file with that error I see:</div><div><br></div><d=
iv><div class=3D"m_2782091737082835261m_5552788607508047176m_68873879999809=
13702gmail-add" style=3D"color:green;font-size:13.3333px;white-space:pre-wr=
ap"><font face=3D"monospace, monospace">#if !defined PTHREAD_KEYS_MAX || de=
fined TIMER_MAX || !defined SEM_VALUE_MAX</font></div><div class=3D"m_27820=
91737082835261m_5552788607508047176m_6887387999980913702gmail-ctx" style=3D=
"color:rgb(51,51,51);font-size:13.3333px;white-space:pre-wrap"><font face=
=3D"monospace, monospace"># error local_lim.h was incorrectly updated, use =
the NPTL version from glibc</font></div><div class=3D"m_2782091737082835261=
m_5552788607508047176m_6887387999980913702gmail-ctx" style=3D"color:rgb(51,=
51,51);font-size:13.3333px;white-space:pre-wrap"><font face=3D"monospace, m=
onospace">#endif</font></div></div><div class=3D"m_2782091737082835261m_555=
2788607508047176m_6887387999980913702gmail-ctx" style=3D"color:rgb(51,51,51=
);font-size:13.3333px;white-space:pre-wrap"><font face=3D"monospace, monosp=
ace"><br></font></div><div class=3D"m_2782091737082835261m_5552788607508047=
176m_6887387999980913702gmail-ctx" style=3D"color:rgb(51,51,51);font-size:1=
3.3333px;white-space:pre-wrap"><font face=3D"monospace, monospace">Regards,=
</font></div><div class=3D"m_2782091737082835261m_5552788607508047176m_6887=
387999980913702gmail-ctx" style=3D"color:rgb(51,51,51);font-size:13.3333px;=
white-space:pre-wrap"><font face=3D"monospace, monospace"><br></font></div>=
<div class=3D"m_2782091737082835261m_5552788607508047176m_68873879999809137=
02gmail-ctx" style=3D"color:rgb(51,51,51);font-size:13.3333px;white-space:p=
re-wrap"><font face=3D"monospace, monospace">--</font></div><div class=3D"m=
_2782091737082835261m_5552788607508047176m_6887387999980913702gmail-ctx" st=
yle=3D"color:rgb(51,51,51);font-size:13.3333px;white-space:pre-wrap"><font =
face=3D"monospace, monospace">Paul</font></div></div></div></div></div>
<pre>_______________________________________________
Keepalived-devel mailing list
<a href=3D"mailto:[email protected]" target=3D"_blank"=
>[email protected]</a>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/keepalived-devel" t=
arget=3D"_blank">https://lists.sourceforge.net/lists/listinfo/keepalived-de=
vel</a>
</pre></blockquote></div></blockquote></div>
</blockquote></div></blockquote></div>
</blockquote></div>
--000000000000c7fbbb057b1b5391--
--===============7095220571752865621==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============7095220571752865621==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Keepalived-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/keepalived-devel
--===============7095220571752865621==--