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. > 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
