Re: error building 2.0.7

Paul Gildea <[email protected]> Thu, 18 Oct 2018 11:23:47 +0100
Newsgroups gmane.linux.keepalived.devel
Message-ID <CAP3D3gf3MYL9ks4pTvNbN-LGoP3i8S4ma0duzaY-HavYLX2AZQ@mail.gmail.com>
--===============8182346986518159780==
Content-Type: multipart/alternative; boundary="00000000000054780905787e2fb5"

--00000000000054780905787e2fb5
Content-Type: text/plain; charset="UTF-8"

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
>
>

--00000000000054780905787e2fb5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">Apologies for the slow reply, I patched =
=C2=A0&quot;#include &lt;stdbool.h&gt;&quot; into core/process.c and keepal=
ived-2.0.7 built.<div>I haven&#39;t tested it out yet but if there is a pro=
blem with that solution (never really used C)=C2=A0I can work around it as =
it&#39;s just some definitions.=C2=A0 I can log bugs about these if necessa=
ry? Even though it&#39;s more of a uClibc problem.</div><div><br></div><div=
>Thanks,</div><div><br></div><div>--</div><div>Paul</div></div></div><br><d=
iv class=3D"gmail_quote"><div dir=3D"ltr">On Tue, 16 Oct 2018 at 17:39, Que=
ntin Armitage &lt;<a href=3D"mailto:[email protected]">quentin@armita=
ge.org.uk</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgc=
olor=3D"#ffffff" text=3D"#2e3436" link=3D"#2a76c6" vlink=3D"#2e3436"><div>P=
aul,</div><div><br></div><div>It looks like bool, true and false are undecl=
ared/undefined. So far as I can see uClibc doesn&#39;t have a stdbool.h hea=
der file, but I&#39;m not sure why the #include &lt;stdbool.h&gt; isn&#39;t=
 failing.</div><div><br></div><div>Quentin</div><div><br></div><div>On Tue,=
 2018-10-16 at 15:25 +0100, Paul Gildea wrote:</div><blockquote type=3D"cit=
e" style=3D"margin:0 0 0 .8ex;border-left:2px #729fcf solid;padding-left:1e=
x"><div dir=3D"ltr"><div dir=3D"ltr">Thanks Quentin, that cleared up the is=
sue in my mind for me very well. Either solution worked fine and build is p=
rogressing further.<div>It looks like there are some more issues for me so =
I&#39;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 direct=
ory `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.7new/keepaliv=
ed/core&#39;</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, mono=
space">=C2=A0 CC =C2=A0 =C2=A0 =C2=A0 daemon.o</font></div><div><font face=
=3D"monospace, 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=
 layer4.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, monos=
pace">=C2=A0 CC =C2=A0 =C2=A0 =C2=A0 global_data.o</font></div><div><font f=
ace=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">p=
rocess.c:41: error: expected &#39;=3D&#39;, &#39;,&#39;, &#39;;&#39;, &#39;=
asm&#39; or &#39;__attribute__&#39; before &#39;realtime_priority_set&#39;<=
/font></div><div><font face=3D"monospace, monospace">process.c:49: error: e=
xpected &#39;=3D&#39;, &#39;,&#39;, &#39;;&#39;, &#39;asm&#39; or &#39;__at=
tribute__&#39; before &#39;priority_set&#39;</font></div><div><font face=3D=
"monospace, monospace">process.c: In function &#39;set_process_priority&#39=
;:</font></div><div><font face=3D"monospace, monospace">process.c:79: error=
: &#39;priority_set&#39; undeclared (first use in this function)</font></di=
v><div><font face=3D"monospace, monospace">process.c:79: error: (Each undec=
lared identifier is reported only once</font></div><div><font face=3D"monos=
pace, monospace">process.c:79: error: for each function it appears in.)</fo=
nt></div><div><font face=3D"monospace, monospace">process.c:79: error: &#39=
;true&#39; undeclared (first use in this function)</font></div><div><font f=
ace=3D"monospace, monospace">process.c: In function &#39;reset_process_prio=
rity&#39;:</font></div><div><font face=3D"monospace, monospace">process.c:9=
1: error: &#39;priority_set&#39; undeclared (first use in this function)</f=
ont></div><div><font face=3D"monospace, monospace">process.c:91: error: &#3=
9;false&#39; undeclared (first use in this function)</font></div><div><font=
 face=3D"monospace, monospace">process.c: In function &#39;reset_process_pr=
iorities&#39;:</font></div><div><font face=3D"monospace, monospace">process=
.c:141: error: &#39;realtime_priority_set&#39; undeclared (first use in thi=
s function)</font></div><div><font face=3D"monospace, monospace">process.c:=
150: error: &#39;false&#39; undeclared (first use in this function)</font><=
/div><div><font face=3D"monospace, monospace">process.c:164: error: &#39;pr=
iority_set&#39; undeclared (first use in this function)</font></div><div><f=
ont face=3D"monospace, monospace">make[3]: *** [process.o] Error 1</font></=
div><div><font face=3D"monospace, monospace">make[3]: *** Waiting for unfin=
ished jobs....</font></div><div><font face=3D"monospace, monospace">make[3]=
: Leaving directory `/media/vmpart/vrrp/buildroot/output/build/keepalived-2=
.0.7new/keepalived/core&#39;</font></div><div><font face=3D"monospace, mono=
space">make[2]: *** [all-recursive] Error 1</font></div><div><font face=3D"=
monospace, monospace">make[2]: Leaving directory `/media/vmpart/vrrp/buildr=
oot/output/build/keepalived-2.0.7new/keepalived&#39;</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&#39;</font></d=
iv><div><font face=3D"monospace, monospace">make: *** [/media/vmpart/vrrp/b=
uildroot/output/build/keepalived-2.0.7new/.stamp_built] Error 2</font></div=
></div><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 &lt;<a href=3D"mail=
to:[email protected]" target=3D"_blank">[email protected]</a>&g=
t; wrote:<br></div><blockquote type=3D"cite" style=3D"margin:0 0 0 .8ex;bor=
der-left:2px #729fcf solid;padding-left:1ex"><div bgcolor=3D"#ffffff" text=
=3D"#2e3436" 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_MAX and keepalived defining TIMER_MAX. glibc doesn&#39;t have a defi=
nition of, or use, TIMER_MAX, at least not on my systems, and musl doesn&#3=
9;t appear to either.</div><div><br></div><div>So the problem would appear =
to be namespace polution by uClibc. Looking at the uClibc-ng source code, T=
IMER_MAX doesn&#39;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 histor=
ical code in uClibc that should be removed.</div><div><br></div><div>It wou=
ld 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 re=
ad_timer in  lib/parser.c).</div><div><br></div><div>Could you just try mov=
ing the definition of TIMER_MAX from lib/parser.h to lib/parser.c and see i=
f that works. If not, could you try changing it to TIMER_MAX_UL or somethin=
g like that and seeing if it resolves your problem. </div><div><br></div><d=
iv>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.</div><div><br></div><div>Qu=
entin Armitage</div><div>On Tue, 2018-10-16 at 12:22 +0100, Paul Gildea wro=
te:</div><blockquote type=3D"cite" style=3D"margin:0 0 0 .8ex;border-left:2=
px #729fcf solid;padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div d=
ir=3D"ltr"><div dir=3D"ltr">Hi,<div><br></div><div>I currently have 2.0.5 b=
uild and was trying to patch it with a fix I need by patching this commit t=
o it:</div><div><a href=3D"https://github.com/acassen/keepalived/commit/37d=
6b3bc22d307d09ab8bd75111c3645c742c792" target=3D"_blank">https://github.com=
/acassen/keepalived/commit/37d6b3bc22d307d09ab8bd75111c3645c742c792</a><br>=
</div><div>However the code change must be too great between 2.0.5 and mast=
er because doing so causes build errors. To make the code more similar befo=
re 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&#39;m not sure from reading the chang=
elog. I have also tried to build 2.0.6 to narrow it down, =C2=A0which worke=
d fine.</div><div><br></div><div><div><font face=3D"monospace, monospace">/=
media/vmpart/vrrp/buildroot/output/host/usr/x86_64-unknown-linux-uclibc/sys=
root/usr/include/bits/uClibc_local_lim.h:15:3: error: #error local_lim.h wa=
s incorrectly updated, use the NPTL version from glibc</font></div><div><fo=
nt face=3D"monospace, monospace">make[3]: *** [parser.o] Error 1</font></di=
v><div><font face=3D"monospace, monospace">make[3]: *** Waiting for unfinis=
hed jobs....</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, mo=
nospace">make[3]: Leaving directory `/media/vmpart/vrrp/buildroot/output/bu=
ild/keepalived-2.0.7/lib&#39;</font></div><div><font face=3D"monospace, mon=
ospace">make[2]: *** [all] Error 2</font></div><div><font face=3D"monospace=
, monospace">make[2]: Leaving directory `/media/vmpart/vrrp/buildroot/outpu=
t/build/keepalived-2.0.7/lib&#39;</font></div><div><font face=3D"monospace,=
 monospace">make[1]: *** [all-recursive] Error 1</font></div><div><font fac=
e=3D"monospace, monospace">make[1]: Leaving directory `/media/vmpart/vrrp/b=
uildroot/output/build/keepalived-2.0.7&#39;</font></div><div><font face=3D"=
monospace, monospace">make: *** [/media/vmpart/vrrp/buildroot/output/build/=
keepalived-2.0.7/.stamp_built] Error 2</font></div></div><div><br></div><di=
v><br></div><div>Looking at the file with that error I see:</div><div><br><=
/div><div><div class=3D"m_5552788607508047176m_6887387999980913702gmail-add=
" style=3D"color:green;font-size:13.3333px;white-space:pre-wrap"><font face=
=3D"monospace, monospace">#if !defined PTHREAD_KEYS_MAX || defined TIMER_MA=
X || !defined SEM_VALUE_MAX</font></div><div class=3D"m_5552788607508047176=
m_6887387999980913702gmail-ctx" style=3D"color:rgb(51,51,51);font-size:13.3=
333px;white-space:pre-wrap"><font face=3D"monospace, monospace"># error loc=
al_lim.h was incorrectly updated, use the NPTL version from glibc</font></d=
iv><div class=3D"m_5552788607508047176m_6887387999980913702gmail-ctx" style=
=3D"color:rgb(51,51,51);font-size:13.3333px;white-space:pre-wrap"><font fac=
e=3D"monospace, monospace">#endif</font></div></div><div class=3D"m_5552788=
607508047176m_6887387999980913702gmail-ctx" style=3D"color:rgb(51,51,51);fo=
nt-size:13.3333px;white-space:pre-wrap"><font face=3D"monospace, monospace"=
><br></font></div><div class=3D"m_5552788607508047176m_6887387999980913702g=
mail-ctx" style=3D"color:rgb(51,51,51);font-size:13.3333px;white-space:pre-=
wrap"><font face=3D"monospace, monospace">Regards,</font></div><div class=
=3D"m_5552788607508047176m_6887387999980913702gmail-ctx" style=3D"color:rgb=
(51,51,51);font-size:13.3333px;white-space:pre-wrap"><font face=3D"monospac=
e, monospace"><br></font></div><div class=3D"m_5552788607508047176m_6887387=
999980913702gmail-ctx" style=3D"color:rgb(51,51,51);font-size:13.3333px;whi=
te-space:pre-wrap"><font face=3D"monospace, monospace">--</font></div><div =
class=3D"m_5552788607508047176m_6887387999980913702gmail-ctx" style=3D"colo=
r:rgb(51,51,51);font-size:13.3333px;white-space:pre-wrap"><font face=3D"mon=
ospace, 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>

--00000000000054780905787e2fb5--


--===============8182346986518159780==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============8182346986518159780==
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

--===============8182346986518159780==--