pcp
[Top] [All Lists]

Re: [pcp] problems with linux pmda build

To: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>, PCP <pcp@xxxxxxxxxxx>
Subject: Re: [pcp] problems with linux pmda build
From: Martins Innus <minnus@xxxxxxxxxxx>
Date: Mon, 22 Dec 2014 14:05:34 -0500
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <54948729.6090902@xxxxxxxxxxxxxxxx>
References: <54948729.6090902@xxxxxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
Ken,

On 12/19/14 3:14 PM, Ken McDonell wrote:
On
vm04        unknown  i586    CentOS 5.11 (Final)
there is no flex-devel rpm, but libfl.a comes from the flex rpm.
I looked into this and libfl.a recently changed location. On the CentOS side, it was in the flex package pre 6.6. From 6.6 onwards it is in a new flex-devel package. On the Fedora side, looks like there has been a flex-devel since at least version 18, and the libfl.a has been there that whole time. I was unable to find any earlier information.

I don't know the difference between the fedora.spec and the pcp.spec.in to be able to fix this properly.

But the linux pmda no longer builds because yylineno is not defined ...

gcc  -Wall -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src  -shared 
-Wl,-soname,pmda_proc.so -Wl,--version-script=exports -o pmda_proc.so  pmda.o 
cgroups.o proc_pid.o proc_runq.o proc_dynamic.o ksym.o getinfo.o contexts.o 
gram_node.o config.o error.o hotproc.o   lex.o gram.tab.o -lpcp_pmda -lpcp  
-lfl  -ldl
gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 
-fvisibility=hidden       -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.10.2\" 
-I../../../src/include -I../../../src/include/pcp -o pmdaproc  -Wall 
-L../../../src/libpcp/src -L../../../src/libpcp_pmda/src   pmda.o cgroups.o proc_pid.o 
proc_runq.o proc_dynamic.o ksym.o getinfo.o contexts.o gram_node.o config.o error.o 
hotproc.o   lex.o gram.tab.o -lpcp_pmda -lpcp  -lfl
error.o: In function `yyerror':
/home/kenj/src/pcp/src/pmdas/linux_proc/error.c:31: undefined reference to 
`yylineno'
error.o: In function `yywarn':
/home/kenj/src/pcp/src/pmdas/linux_proc/error.c:24: undefined reference to 
`yylineno'
gram.tab.o: In function `parse_predicate':
/home/kenj/src/pcp/src/pmdas/linux_proc/gram.y:150: undefined reference to 
`yylineno'
collect2: ld returned 1 exit status
make[2]: *** [pmdaproc] Error 1
rm lex.c
make[1]: *** [default_pcp] Error 2
make: *** [default_pcp] Error 2
I have a fix for this here:

https://github.com/ubccr/pcp/tree/martins_working

commit 9d43a0f18e8890f0fd726cd2df1dc80493aa86c1
Author: Martins Innus <minnus@xxxxxxxxxxx>
Date:   Mon Dec 22 13:45:08 2014 -0500

    Fix flex config on older CentOS for hotproc

 src/pmdas/linux_proc/lex.l |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)



I wasn't seeing this in my version of flex/gcc, sorry.

Do we really need to be using flex in this PMDA?
I carried it over from the original sgi hotproc implementation for parsing of the config files and modernized it enough to compile and work. If there is a more pcp specific way of handling config files, I can look into it. As far as I can tell, the pcp rpm build has required flex for a while, but some files moving to flex-devel is a new wrinkle.


I am seeing a lot of other build breakage (about 1/3 of my machines), but don't 
know yet if this issue is responsible on platforms other than CentOS 5.11.

_
Let me know what platforms these are and if I can spin up a VM I will take a look.


Thanks

Martins

<Prev in Thread] Current Thread [Next in Thread>