On Mon, Oct 30, 2017 at 2:45 AM, ChenQi <[email protected]> wrote: > On 10/28/2017 01:40 AM, Khem Raj wrote: > > On Fri, Oct 27, 2017 at 2:43 AM, Chen Qi <[email protected]> wrote: > > We've observed strange behaviour of `systemctl status <xxx> on qemumips64. > The output of the command is like `systemctl show <xxx>', which is > incorrect. > > This patch is from gcc bugzilla's attachment. > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81803 > > The patch hasn't been merged into gcc. But it does solve the above problem. > > This looks ok. Can you help by providing your testing results to gcc > bugzilla > so the patch can then be submitted to gcc ml. > > > Some updates in this issue. > > 1) I've provided information in gcc bugzilla. The author says that he's > going to submit the patch to gcc mailing list. > > 2) I've update remote branch to fix a typo ('mips4' --> 'mips64'). > > git://git.pokylinux.org/poky-contrib ChenQi/bug12266 > http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/bug12266 > > > 3) 'core-image-sato + testimage' has been tested on other qemu machines > including qemux86-64, qemux86, qemumips, qemuppc, qemuarm64. >
thanks I have tested this fix locally. its good to apply > Best Regards, > Chen Qi > > > Signed-off-by: Chen Qi <[email protected]> > --- > meta/recipes-devtools/gcc/gcc-7.2.inc | 1 + > .../fix-miscompilation-for-O1-on-mips64el.patch | 35 > ++++++++++++++++++++++ > 2 files changed, 36 insertions(+) > create mode 100644 > meta/recipes-devtools/gcc/gcc-7.2/fix-miscompilation-for-O1-on-mips64el.patch > > diff --git a/meta/recipes-devtools/gcc/gcc-7.2.inc > b/meta/recipes-devtools/gcc/gcc-7.2.inc > index 5883bc6..04edad7 100644 > --- a/meta/recipes-devtools/gcc/gcc-7.2.inc > +++ b/meta/recipes-devtools/gcc/gcc-7.2.inc > @@ -75,6 +75,7 @@ SRC_URI = "\ > file://0048-gcc-Enable-static-PIE.patch \ > file://fix-segmentation-fault-precompiled-hdr.patch \ > > file://0050-RISC-V-Handle-non-legitimate-address-in-riscv_legiti.patch \ > + file://fix-miscompilation-for-O1-on-mips64el.patch \ > ${BACKPORTS} \ > " > BACKPORTS = "\ > diff --git > a/meta/recipes-devtools/gcc/gcc-7.2/fix-miscompilation-for-O1-on-mips64el.patch > b/meta/recipes-devtools/gcc/gcc-7.2/fix-miscompilation-for-O1-on-mips64el.patch > new file mode 100644 > index 0000000..28020b0 > --- /dev/null > +++ > b/meta/recipes-devtools/gcc/gcc-7.2/fix-miscompilation-for-O1-on-mips64el.patch > @@ -0,0 +1,35 @@ > +This patch comes from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81803 > + > +Author: mpf <mpf@138bc75d-0d04-0410-961f-82ee72b054a4> > + > +This patch hasn't been merged into gcc. But it does solve the problem of > +strange behaviour of `systemd status <xxx>' on qemumips64. > + > +Upstream-Status: Pending [Taken from gcc bugzilla's attachment] > + > +Signed-off-by: Chen Qi <[email protected]> > +--- > + gcc/lra-constraints.c | 7 ++++++- > + 1 file changed, 6 insertions(+), 1 deletion(-) > + > +diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c > +index c8bc9b9a66f..6d319662b09 100644 > +--- a/gcc/lra-constraints.c > ++++ b/gcc/lra-constraints.c > +@@ -4235,7 +4235,12 @@ curr_insn_transform (bool check_only_p) > + && (goal_alt[i] == NO_REGS > + || (simplify_subreg_regno > + (ira_class_hard_regs[goal_alt[i]][0], > +- GET_MODE (reg), byte, mode) >= 0))))) > ++ GET_MODE (reg), byte, mode) >= 0)))) > ++ || (type != OP_IN > ++ && GET_MODE_PRECISION (mode) > ++ < GET_MODE_PRECISION (GET_MODE (reg)) > ++ && GET_MODE_SIZE (GET_MODE (reg)) <= > UNITS_PER_WORD > ++ && WORD_REGISTER_OPERATIONS)) > + { > + /* An OP_INOUT is required when reloading a subreg of a > + mode wider than a word to ensure that data beyond the > +-- > +2.13.0 > + > -- > 1.9.1 > > -- > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core > > -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
