Patchwork [v2] perf: Ensure we use CFLAGS and LDFLAGS settings from kernel build system

login
register
mail settings
Submitter Otavio Salvador
Date Sept. 17, 2013, 4:18 a.m.
Message ID <1379391500-22149-1-git-send-email-otavio@ossystems.com.br>
Download mbox | patch
Permalink /patch/58221/
State Accepted
Commit e624d737b7117f00b81b389ab81570d1737cc339
Headers show

Comments

Otavio Salvador - Sept. 17, 2013, 4:18 a.m.
The kernel build system does the right thing here and we should stop
overriding it. This code has been added based on a change from
'meta-metro' layer, revision 9d698004137c1a888d40d6a4808d94afa22387e7,
without any information about what problem it fixes so I am reverting
it.

Using the CFLAGS and LDFLAGS makes it impossible for kernel build
system to append to it, thus making the build fail in various ways as:

|     CC /.../perf/1.0-r8/perf-1.0/perf.o
| In file included from builtin.h:4:0,
|                  from perf.c:9:
| util/util.h:74:24: fatal error: lk/debugfs.h: No such file or directory
|  #include <lk/debugfs.h>
|                         ^
| compilation terminated.

The unset is done in do_compile and do_install otherwise it /rebuild/
perf as it detects the compiler options has change.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v2:
- unset CFLAGS and LDFLAGS
- reword commit log

 meta/recipes-kernel/perf/perf.bb | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)
Bruce Ashfield - Sept. 17, 2013, 1:02 p.m.
On 13-09-17 12:18 AM, Otavio Salvador wrote:
> The kernel build system does the right thing here and we should stop
> overriding it. This code has been added based on a change from
> 'meta-metro' layer, revision 9d698004137c1a888d40d6a4808d94afa22387e7,
> without any information about what problem it fixes so I am reverting
> it.
>
> Using the CFLAGS and LDFLAGS makes it impossible for kernel build
> system to append to it, thus making the build fail in various ways as:
>
> |     CC /.../perf/1.0-r8/perf-1.0/perf.o
> | In file included from builtin.h:4:0,
> |                  from perf.c:9:
> | util/util.h:74:24: fatal error: lk/debugfs.h: No such file or directory
> |  #include <lk/debugfs.h>
> |                         ^
> | compilation terminated.
>
> The unset is done in do_compile and do_install otherwise it /rebuild/
> perf as it detects the compiler options has change.

Confirmed. I was able to build perf for qemux8-64 with this change in place.

Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com>

>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
> Changes in v2:
> - unset CFLAGS and LDFLAGS
> - reword commit log
>
>   meta/recipes-kernel/perf/perf.bb | 11 ++++-------
>   1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
> index d2c1048..4a815ff 100644
> --- a/meta/recipes-kernel/perf/perf.bb
> +++ b/meta/recipes-kernel/perf/perf.bb
> @@ -60,7 +60,6 @@ B = "${WORKDIR}/${BPN}-${PV}"
>   SCRIPTING_DEFINES = "${@perf_feature_enabled('perf-scripting', '', 'NO_LIBPERL=1 NO_LIBPYTHON=1',d)}"
>   TUI_DEFINES = "${@perf_feature_enabled('perf-tui', '', 'NO_NEWT=1',d)}"
>
> -export LDFLAGS = "-ldl -lutil"
>   EXTRA_OEMAKE = \
>   		'-C ${S}/tools/perf \
>   		O=${B} \
> @@ -72,13 +71,7 @@ EXTRA_OEMAKE = \
>   		NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${SCRIPTING_DEFINES} \
>   		'
>
> -# We already pass the correct arguments to our compiler for the CFLAGS (if we
> -# don't override it, it'll add -m32/-m64 itself). For LDFLAGS, it was failing
> -# to find bfd symbols.
>   EXTRA_OEMAKE += "\
> -	'CFLAGS=${CFLAGS} -fPIC' \
> -	'LDFLAGS=${LDFLAGS} -lpthread -lrt -lelf -lm -lbfd' \
> -	\
>   	'prefix=${prefix}' \
>   	'bindir=${bindir}' \
>   	'sharedir=${datadir}' \
> @@ -94,10 +87,14 @@ EXTRA_OEMAKE += "\
>   PARALLEL_MAKE = ""
>
>   do_compile() {
> +	# Linux kernel build system is expected to do the right thing
> +	unset CFLAGS LDFLAGS
>   	oe_runmake all
>   }
>
>   do_install() {
> +	# Linux kernel build system is expected to do the right thing
> +	unset CFLAGS LDFLAGS
>   	oe_runmake DESTDIR=${D} install
>   	# we are checking for this make target to be compatible with older perf versions
>   	if [ "${@perf_feature_enabled('perf-scripting', 1, 0, d)}" = "1" -a $(grep install-python_ext ${S}/tools/perf/Makefile) = "0"]; then
>

Patch

diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index d2c1048..4a815ff 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -60,7 +60,6 @@  B = "${WORKDIR}/${BPN}-${PV}"
 SCRIPTING_DEFINES = "${@perf_feature_enabled('perf-scripting', '', 'NO_LIBPERL=1 NO_LIBPYTHON=1',d)}"
 TUI_DEFINES = "${@perf_feature_enabled('perf-tui', '', 'NO_NEWT=1',d)}"
 
-export LDFLAGS = "-ldl -lutil"
 EXTRA_OEMAKE = \
 		'-C ${S}/tools/perf \
 		O=${B} \
@@ -72,13 +71,7 @@  EXTRA_OEMAKE = \
 		NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${SCRIPTING_DEFINES} \
 		'
 
-# We already pass the correct arguments to our compiler for the CFLAGS (if we
-# don't override it, it'll add -m32/-m64 itself). For LDFLAGS, it was failing
-# to find bfd symbols.
 EXTRA_OEMAKE += "\
-	'CFLAGS=${CFLAGS} -fPIC' \
-	'LDFLAGS=${LDFLAGS} -lpthread -lrt -lelf -lm -lbfd' \
-	\
 	'prefix=${prefix}' \
 	'bindir=${bindir}' \
 	'sharedir=${datadir}' \
@@ -94,10 +87,14 @@  EXTRA_OEMAKE += "\
 PARALLEL_MAKE = ""
 
 do_compile() {
+	# Linux kernel build system is expected to do the right thing
+	unset CFLAGS LDFLAGS
 	oe_runmake all
 }
 
 do_install() {
+	# Linux kernel build system is expected to do the right thing
+	unset CFLAGS LDFLAGS
 	oe_runmake DESTDIR=${D} install
 	# we are checking for this make target to be compatible with older perf versions
 	if [ "${@perf_feature_enabled('perf-scripting', 1, 0, d)}" = "1" -a $(grep install-python_ext ${S}/tools/perf/Makefile) = "0"]; then