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"#include <stdbool.h>" into core/process.c and keepal= ived-2.0.7 built.<div>I haven'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's just some definitions.=C2=A0 I can log bugs about these if necessa= ry? 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><d= iv class=3D"gmail_quote"><div dir=3D"ltr">On Tue, 16 Oct 2018 at 17:39, Que= ntin Armitage <<a href=3D"mailto:[email protected]">quentin@armita= ge.org.uk</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 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't have a stdbool.h hea= der file, but I'm not sure why the #include <stdbool.h> isn'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'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'</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 '=3D', ',', ';', '= asm' or '__attribute__' before 'realtime_priority_set'<= /font></div><div><font face=3D"monospace, monospace">process.c:49: error: e= xpected '=3D', ',', ';', 'asm' or '__at= tribute__' before 'priority_set'</font></div><div><font face=3D= "monospace, monospace">process.c: In function 'set_process_priority'= ;:</font></div><div><font face=3D"monospace, monospace">process.c:79: error= : 'priority_set' 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: '= ;true' undeclared (first use in this function)</font></div><div><font f= ace=3D"monospace, monospace">process.c: In function 'reset_process_prio= rity':</font></div><div><font face=3D"monospace, monospace">process.c:9= 1: error: 'priority_set' undeclared (first use in this function)</f= ont></div><div><font face=3D"monospace, monospace">process.c:91: error: = 9;false' undeclared (first use in this function)</font></div><div><font= face=3D"monospace, monospace">process.c: In function 'reset_process_pr= iorities':</font></div><div><font face=3D"monospace, monospace">process= .c:141: error: 'realtime_priority_set' undeclared (first use in thi= s function)</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: 'pr= iority_set' 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'</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'</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></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 <<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't have a defi= nition of, or use, TIMER_MAX, at least not on my systems, and musl doesn= 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'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'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'</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'</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'</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==--