From: Segher Boessenkool <segher@kernel.crashing.org>
To: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Boqun Feng <boqun.feng@gmail.com>,
linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
Michael Jeanson <mjeanson@efficios.com>
Subject: Re: Failure to build librseq on ppc
Date: Tue, 7 Jul 2020 19:59:22 -0500 [thread overview]
Message-ID: <20200708005922.GW3598@gate.crashing.org> (raw)
In-Reply-To: <972420887.755.1594149430308.JavaMail.zimbra@efficios.com>
Hi!
On Tue, Jul 07, 2020 at 03:17:10PM -0400, Mathieu Desnoyers wrote:
> I'm trying to build librseq at:
>
> https://git.kernel.org/pub/scm/libs/librseq/librseq.git
>
> on powerpc, and I get these errors when building the rseq basic
> test mirrored from the kernel selftests code:
>
> /tmp/ccieEWxU.s: Assembler messages:
> /tmp/ccieEWxU.s:118: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:118: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:121: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:121: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:626: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:626: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:629: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:629: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:735: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:735: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:738: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:738: Error: junk at end of line: `,8'
> /tmp/ccieEWxU.s:741: Error: syntax error; found `,', expected `('
> /tmp/ccieEWxU.s:741: Error: junk at end of line: `,8'
> Makefile:581: recipe for target 'basic_percpu_ops_test.o' failed
You'll have to show the actual failing machine code, and with enough
context that we can relate this to the source code.
-save-temps helps, or use -S instead of -c, etc.
> I am using this compiler:
>
> gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
> Target: powerpc-linux-gnu
>
> So far, I got things to build by changing "m" operands to "Q" operands.
> Based on https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints
> it seems that "Q" means "A memory operand addressed by just a base register."
Yup.
> I suspect that lwz and stw don't expect some kind of immediate offset which
> can be kept with "m", and "Q" fixes this. Is that the right fix ?
>
> And should we change all operands passed to lwz and stw to a "Q" operand ?
No, lwz and stw exactly *do* take an immediate offset.
It sounds like the compiler passed memory addressed by indexed
addressing, instead. Which is fine for "m", and also fine for those
insns... well, you need lwzx and stwx.
So perhaps you have code like
int *p;
int x;
...
asm ("lwz %0,%1" : "=r"(x) : "m"(*p));
where that last line should actually read
asm ("lwz%X1 %0,%1" : "=r"(x) : "m"(*p));
?
Segher
next prev parent reply other threads:[~2020-07-08 1:01 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-07 19:17 Failure to build librseq on ppc Mathieu Desnoyers
2020-07-08 0:59 ` Segher Boessenkool [this message]
2020-07-08 12:27 ` Michael Ellerman
2020-07-08 23:53 ` Segher Boessenkool
2020-07-09 0:01 ` Mathieu Desnoyers
2020-07-09 0:18 ` Segher Boessenkool
2020-07-09 13:43 ` Mathieu Desnoyers
2020-07-09 17:37 ` Segher Boessenkool
2020-07-09 17:42 ` Mathieu Desnoyers
2020-07-09 17:56 ` Mathieu Desnoyers
2020-07-09 20:46 ` Segher Boessenkool
2020-07-09 20:57 ` Mathieu Desnoyers
2020-07-09 20:31 ` Segher Boessenkool
2020-07-08 12:33 ` Mathieu Desnoyers
2020-07-08 14:00 ` Mathieu Desnoyers
2020-07-08 14:21 ` Christophe Leroy
2020-07-08 14:32 ` Mathieu Desnoyers
2020-07-08 16:11 ` Christophe Leroy
2020-07-09 0:15 ` Segher Boessenkool
2020-07-09 0:10 ` Segher Boessenkool
2020-07-09 13:33 ` Mathieu Desnoyers
2020-07-09 17:31 ` Segher Boessenkool
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200708005922.GW3598@gate.crashing.org \
--to=segher@kernel.crashing.org \
--cc=boqun.feng@gmail.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mjeanson@efficios.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).