Message ID | 1468271236-6781-1-git-send-email-ross.burton@intel.com |
---|---|
State | Accepted |
Commit | 61f73ae289bf8dfe72d5f4beaac966fb4ac8dc90 |
Headers | show |
On Mon, Jul 11, 2016 at 2:07 PM, Ross Burton <ross.burton@intel.com> wrote: > glibc master added the EM_METAG tag but didn't add the relocation defines. > However the kernel tooling only checks for EM_METAG when defining its own values > so scripts/recordmcount ends up using R_META_* symbols without their definition. > > Whilst the kernel can and should be fixed, this breaks all users of recordmcount > so patch elf.h to add the values. > > Signed-off-by: Ross Burton <ross.burton@intel.com> > --- > meta/recipes-core/glibc/glibc/elf-meta.patch | 32 ++++++++++++++++++++++++++++ > meta/recipes-core/glibc/glibc_2.24.bb | 1 + > 2 files changed, 33 insertions(+) > create mode 100644 meta/recipes-core/glibc/glibc/elf-meta.patch > > diff --git a/meta/recipes-core/glibc/glibc/elf-meta.patch b/meta/recipes-core/glibc/glibc/elf-meta.patch > new file mode 100644 > index 0000000..fab66d7 > --- /dev/null > +++ b/meta/recipes-core/glibc/glibc/elf-meta.patch > @@ -0,0 +1,32 @@ > +Upstream-Status: Pending > +Signed-off-by: Ross Burton <ross.burton@intel.com> > + > +From a495656665cd4a4f97744741a4741eafa621d65b Mon Sep 17 00:00:00 2001 > +From: Ross Burton <ross.burton@intel.com> > +Date: Mon, 11 Jul 2016 16:57:38 +0100 > +Subject: [PATCH] elf.h: add relocations for Imagination META > + > +Adding EM_METAG but not the relocations means the kernel doesn't compile as it > +guards its own declarations on the presence of EM_METAG. > +--- > + elf/elf.h | 4 ++++ > + 1 file changed, 4 insertions(+) > + > +diff --git a/elf/elf.h b/elf/elf.h > +index b6112d9..69e85a7 100644 > +--- a/elf/elf.h > ++++ b/elf/elf.h > +@@ -3677,6 +3677,10 @@ enum > + > + #define R_TILEGX_NUM 130 > + > ++/* Imagination META relocs */ > ++#define R_METAG_ADDR32 2 > ++#define R_METAG_NONE 3 > ++ Looks ok, however if you want it to be upstreamed then 1. Move them after BPF declarations. 2. Write a ChangeLog entry, something like 2016-07-11 Ross Burton <xxx@yyy.zzz> * elf/elf.h (R_METAG_NONE, R_METAG_NONE): New. > + /* BPF specific declarations. */ > + > + #define R_BPF_NONE 0 /* No reloc */ > +-- > +2.8.1 > + > diff --git a/meta/recipes-core/glibc/glibc_2.24.bb b/meta/recipes-core/glibc/glibc_2.24.bb > index f0c6a03..456f206 100644 > --- a/meta/recipes-core/glibc/glibc_2.24.bb > +++ b/meta/recipes-core/glibc/glibc_2.24.bb > @@ -37,6 +37,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ > file://0023-eglibc-Install-PIC-archives.patch \ > file://0024-eglibc-Forward-port-cross-locale-generation-support.patch \ > file://0025-Define-DUMMY_LOCALE_T-if-not-defined.patch \ > + file://elf-meta.patch \ > " > > SRC_URI += "\ > -- > 2.8.1 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
On 12 July 2016 at 02:24, Khem Raj <raj.khem@gmail.com> wrote: > 1. Move them after BPF declarations. > Sure. > 2. Write a ChangeLog entry, something like > <blinks>. Really?! :) Ross -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
diff --git a/meta/recipes-core/glibc/glibc/elf-meta.patch b/meta/recipes-core/glibc/glibc/elf-meta.patch new file mode 100644 index 0000000..fab66d7 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/elf-meta.patch @@ -0,0 +1,32 @@ +Upstream-Status: Pending +Signed-off-by: Ross Burton <ross.burton@intel.com> + +From a495656665cd4a4f97744741a4741eafa621d65b Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Mon, 11 Jul 2016 16:57:38 +0100 +Subject: [PATCH] elf.h: add relocations for Imagination META + +Adding EM_METAG but not the relocations means the kernel doesn't compile as it +guards its own declarations on the presence of EM_METAG. +--- + elf/elf.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/elf/elf.h b/elf/elf.h +index b6112d9..69e85a7 100644 +--- a/elf/elf.h ++++ b/elf/elf.h +@@ -3677,6 +3677,10 @@ enum + + #define R_TILEGX_NUM 130 + ++/* Imagination META relocs */ ++#define R_METAG_ADDR32 2 ++#define R_METAG_NONE 3 ++ + /* BPF specific declarations. */ + + #define R_BPF_NONE 0 /* No reloc */ +-- +2.8.1 + diff --git a/meta/recipes-core/glibc/glibc_2.24.bb b/meta/recipes-core/glibc/glibc_2.24.bb index f0c6a03..456f206 100644 --- a/meta/recipes-core/glibc/glibc_2.24.bb +++ b/meta/recipes-core/glibc/glibc_2.24.bb @@ -37,6 +37,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ file://0023-eglibc-Install-PIC-archives.patch \ file://0024-eglibc-Forward-port-cross-locale-generation-support.patch \ file://0025-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://elf-meta.patch \ " SRC_URI += "\
glibc master added the EM_METAG tag but didn't add the relocation defines. However the kernel tooling only checks for EM_METAG when defining its own values so scripts/recordmcount ends up using R_META_* symbols without their definition. Whilst the kernel can and should be fixed, this breaks all users of recordmcount so patch elf.h to add the values. Signed-off-by: Ross Burton <ross.burton@intel.com> --- meta/recipes-core/glibc/glibc/elf-meta.patch | 32 ++++++++++++++++++++++++++++ meta/recipes-core/glibc/glibc_2.24.bb | 1 + 2 files changed, 33 insertions(+) create mode 100644 meta/recipes-core/glibc/glibc/elf-meta.patch -- 2.8.1 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core