Re: error building 2.0.7
Quentin Armitage <[email protected]> Tue, 16 Oct 2018 17:38:56 +0100
| Newsgroups | gmane.linux.keepalived.devel |
|---|---|
| Organization | The Armitage family |
| Message-ID | <[email protected]> |
--===============2647821282455122650== Content-Type: multipart/alternative; boundary="=-dzVn0GX0OYlZv933OH7m" --=-dzVn0GX0OYlZv933OH7m Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit 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]. > uk> 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 ArmitageOn 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/37d6b3bc22d307d09ab8 > > > bd75111c3645c742c792 > > > 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 list > > > [email protected] > > > https://lists.sourceforge.net/lists/listinfo/keepalived-devel --=-dzVn0GX0OYlZv933OH7m Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable <html><head></head><body bgcolor=3D"#ffffff" text=3D"#2e3436" link=3D"#2a76= c6" vlink=3D"#2e3436"><div>Paul,</div><div><br></div><div>It looks like boo= l, true and false are undeclared/undefined. So far as I can see uClibc does= n't have a stdbool.h header file, but I'm not sure why the #include <std= bool.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><blockq= uote type=3D"cite" style=3D"margin:0 0 0 .8ex; border-left:2px #729fcf soli= d;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 fi= ne and build is progressing 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:</d= iv><div><br></div><div><div><font face=3D"monospace, monospace">make[3]: En= tering directory `/media/vmpart/vrrp/buildroot/output/build/keepalived-2.0.= 7new/keepalived/core'</font></div><div><font face=3D"monospace, monospace">= CC main.o</font></div><div><font face=3D"monosp= ace, monospace"> CC daemon.o</font></div><div><f= ont face=3D"monospace, monospace"> CC pidfile.o<= /font></div><div><font face=3D"monospace, monospace"> CC  = ; layer4.o</font></div><div><font face=3D"monospace, monospace">&nbs= p; CC smtp.o</font></div><div><font face=3D"monospace,= monospace"> CC global_data.o</font></div><div><= font face=3D"monospace, monospace"> CC global_pa= rser.o</font></div><div><font face=3D"monospace, monospace"> CC  = ; process.o</font></div><div><font face=3D"monospace, monospa= ce">process.c:41: error: expected '=3D', ',', ';', 'asm' or '__attribute__'= before 'realtime_priority_set'</font></div><div><font face=3D"monospace, m= onospace">process.c:49: error: expected '=3D', ',', ';', 'asm' or '__attrib= ute__' before 'priority_set'</font></div><div><font face=3D"monospace, mono= space">process.c: In function 'set_process_priority':</font></div><div><fon= t face=3D"monospace, monospace">process.c:79: error: 'priority_set' undecla= red (first use in this function)</font></div><div><font face=3D"monospace, = monospace">process.c:79: error: (Each undeclared identifier is reported onl= y once</font></div><div><font face=3D"monospace, monospace">process.c:79: e= rror: for each function it appears in.)</font></div><div><font face=3D"mono= space, monospace">process.c:79: error: 'true' undeclared (first use in this= function)</font></div><div><font face=3D"monospace, monospace">process.c: = In function 'reset_process_priority':</font></div><div><font face=3D"monosp= ace, monospace">process.c:91: error: 'priority_set' undeclared (first use i= n this function)</font></div><div><font face=3D"monospace, monospace">proce= ss.c:91: error: 'false' undeclared (first use in this function)</font></div= ><div><font face=3D"monospace, monospace">process.c: In function 'reset_pro= cess_priorities':</font></div><div><font face=3D"monospace, monospace">proc= ess.c:141: 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><fo= nt face=3D"monospace, monospace">process.c:164: error: 'priority_set' undec= lared (first use in this function)</font></div><div><font face=3D"monospace= , monospace">make[3]: *** [process.o] Error 1</font></div><div><font face= =3D"monospace, monospace">make[3]: *** Waiting for unfinished jobs....</fon= t></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, monospace">make[2]: *** [al= l-recursive] Error 1</font></div><div><font face=3D"monospace, monospace">m= ake[2]: Leaving directory `/media/vmpart/vrrp/buildroot/output/build/keepal= ived-2.0.7new/keepalived'</font></div><div><font face=3D"monospace, monospa= ce">make[1]: *** [all-recursive] Error 1</font></div><div><font face=3D"mon= ospace, monospace">make[1]: Leaving directory `/media/vmpart/vrrp/buildroot= /output/build/keepalived-2.0.7new'</font></div><div><font face=3D"monospace= , monospace">make: *** [/media/vmpart/vrrp/buildroot/output/build/keepalive= d-2.0.7new/.stamp_built] Error 2</font></div></div><div><br></div></div></d= iv><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Tue, 16 Oct 2018 at 1= 4:26, Quentin Armitage <<a href=3D"mailto:[email protected]">quent= [email protected]</a>> wrote:<br></div><blockquote type=3D"cite" style= =3D"margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div= bgcolor=3D"#ffffff" text=3D"#2e3436" link=3D"#2a76c6" vlink=3D"#2e3436"><d= iv>Paul,</div><div><br></div><div>This appears probably to be due to a conf= lict between uClibc using TIMER_MAX and keepalived defining TIMER_MAX. glib= c doesn't have a definition of, or use, TIMER_MAX, at least not on my syste= ms, and musl doesn't appear to either.</div><div><br></div><div>So the prob= lem 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 i= s some historical code in uClibc that should be removed.</div><div><br></di= v><div>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 us= ed (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/parse= r.c and see if that works. If not, could you try changing it to TIMER_MAX_U= L or something like that and seeing if it resolves your problem. </div><div= ><br></div><div>Please let me know what you work out, and we can then see i= f we can push a commit to work around the problem in uClibc.</div><div><br>= </div><div>Quentin Armitage</div><div>On Tue, 2018-10-16 at 12:22 +0100, Pa= ul Gildea wrote:</div><blockquote type=3D"cite" style=3D"margin:0 0 0 .8ex;= border-left:2px #729fcf solid;padding-left:1ex"><div dir=3D"ltr"><div dir= =3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">Hi,<div><br></div><div>I current= ly have 2.0.5 build and was trying to patch it with a fix I need by patchin= g this commit to it:</div><div><a href=3D"https://github.com/acassen/keepal= ived/commit/37d6b3bc22d307d09ab8bd75111c3645c742c792" target=3D"_blank">htt= ps://github.com/acassen/keepalived/commit/37d6b3bc22d307d09ab8bd75111c3645c= 742c792</a><br></div><div>However the code change must be too great between= 2.0.5 and master because doing so causes build errors. To make the code mo= re 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 migh= t have changed to cause this or what is happening? I'm not sure from readin= g the changelog. I have also tried to build 2.0.6 to narrow it down, = which worked fine.</div><div><br></div><div><div><font face=3D"monospace, m= onospace">/media/vmpart/vrrp/buildroot/output/host/usr/x86_64-unknown-linux= -uclibc/sysroot/usr/include/bits/uClibc_local_lim.h:15:3: error: #error loc= al_lim.h was incorrectly updated, use the NPTL version from glibc</font></d= iv><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 jobs....</font></div><div><font face=3D"monospace, monospace= "> CC logger.o</font></div><div><font face=3D"mo= nospace, monospace">make[3]: Leaving directory `/media/vmpart/vrrp/buildroo= t/output/build/keepalived-2.0.7/lib'</font></div><div><font face=3D"monospa= ce, monospace">make[2]: *** [all] Error 2</font></div><div><font face=3D"mo= nospace, monospace">make[2]: Leaving directory `/media/vmpart/vrrp/buildroo= t/output/build/keepalived-2.0.7/lib'</font></div><div><font face=3D"monospa= ce, monospace">make[1]: *** [all-recursive] Error 1</font></div><div><font = face=3D"monospace, monospace">make[1]: Leaving directory `/media/vmpart/vrr= p/buildroot/output/build/keepalived-2.0.7'</font></div><div><font face=3D"m= onospace, monospace">make: *** [/media/vmpart/vrrp/buildroot/output/build/k= eepalived-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><div><div class=3D"m_6887387999980913702gmail-add" style=3D"color:green= ;font-size:13.3333px;white-space:pre-wrap"><font face=3D"monospace, monospa= ce">#if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX || !defined SEM_VALU= E_MAX</font></div><div class=3D"m_6887387999980913702gmail-ctx" style=3D"co= lor:rgb(51,51,51);font-size:13.3333px;white-space:pre-wrap"><font face=3D"m= onospace, monospace"># error local_lim.h was incorrectly updated, use the N= PTL version from glibc</font></div><div class=3D"m_6887387999980913702gmail= -ctx" style=3D"color:rgb(51,51,51);font-size:13.3333px;white-space:pre-wrap= "><font face=3D"monospace, monospace">#endif</font></div></div><div class= =3D"m_6887387999980913702gmail-ctx" style=3D"color:rgb(51,51,51);font-size:= 13.3333px;white-space:pre-wrap"><font face=3D"monospace, monospace"><br></f= ont></div><div class=3D"m_6887387999980913702gmail-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_6887387999980913702gmail-= 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_68873= 87999980913702gmail-ctx" style=3D"color:rgb(51,51,51);font-size:13.3333px;w= hite-space:pre-wrap"><font face=3D"monospace, monospace">--</font></div><di= v class=3D"m_6887387999980913702gmail-ctx" style=3D"color:rgb(51,51,51);fon= t-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></body></html> --=-dzVn0GX0OYlZv933OH7m-- --===============2647821282455122650== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============2647821282455122650== 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 --===============2647821282455122650==--