Files
poky/meta/recipes-kernel/linux/linux-yocto-rt_3.8.bb
Bruce Ashfield 6453276414 linux-yocto/3.8: Makefile: add -grecord-gcc-switches if using -mfentry
Commit a2546fae [ftrace: Add -mfentry to Makefile on function tracer]
    adds support for using -mfentry when possible, whenever the ftrace
    CONFIG_FUNCTION_TRACER option is enabled.

    This unfortunately causes bogus dwarf debuginfo to be generated:

      gcc Bug 54793 - the location of a formal_parameter is not started from a
                      function entry with -mfentry

      http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54793

    This can be fixed by applying the gcc patch above, which will be
    present in gcc-4.8, but in the meantime, the problem is currently
    being worked around in different ways by various tools.  One of those
    tools that we support in Yocto, Systemtap, requires the DW_AT_producer
    string contain -mfentry, which means that it's assuming
    record-gcc-switches is also used:

      SystemTap Bug 15123 - workaround for bad debuginfo for -mfentry
      http://sourceware.org/bugzilla/show_bug.cgi?id=15123

    The lack of -grecord-gcc-switches and therefore a missing -mfentry
    string in Yocto leads to the following Yocto bug:

      Bug 4099 - Crosstap script check fails
      https://bugzilla.yoctoproject.org/show_bug.cgi?id=4099

    Which is what this patch intends to fix.

    It only affects architectures that HAVE_FENTRY when
    CONFIG_FUNCTION_TRACER is turned on and in any case is just adding to
    the debuginfo, so there doesn't seem to be much risk to adding it.

(From OE-Core rev: c04f611aa4bf77867fe78a005d09434226feb62c)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-16 22:11:17 +01:00

31 lines
1.1 KiB
BlitzBasic

require recipes-kernel/linux/linux-yocto.inc
KBRANCH = "standard/preempt-rt/base"
KBRANCH_qemuppc = "standard/preempt-rt/qemuppc"
LINUX_VERSION ?= "3.8.4"
LINUX_KERNEL_TYPE = "preempt-rt"
KMETA = "meta"
SRCREV_machine ?= "fd5af245e21d80e8700d41c1ecf3fc4b2c3d2e40"
SRCREV_machine_qemuppc ?= "fa8b702a32cc19e77805d91224d0409f09808c88"
SRCREV_meta ?= "27b63fdbd25ad1a37bacc05f49a205c150d21779"
PR = "${INC_PR}.1"
PV = "${LINUX_VERSION}+git${SRCPV}"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.8.git;protocol=git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta"
# Omit broken machines from COMPATIBLE_MACHINE
# qemuppc hangs at boot
# qemumips panics at boot
COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm)"
# Functionality flags
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc"
KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"