From: Willy Tarreau <w@1wt.eu>
To: Sven Schnelle <svens@linux.ibm.com>
Cc: "Paul E . McKenney" <paulmck@kernel.org>,
Josh Triplett <josh@joshtriplett.org>,
Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
linux-kernel@vger.kernel.org, hca@linux.ibm.com
Subject: Re: [PATCH 2/5] nolibc: add support for s390
Date: Mon, 2 Jan 2023 09:41:22 +0100 [thread overview]
Message-ID: <20230102084122.GB29287@1wt.eu> (raw)
In-Reply-To: <yt9dilhpjqpr.fsf@linux.ibm.com>
Hi Sven,
On Mon, Jan 02, 2023 at 09:17:04AM +0100, Sven Schnelle wrote:
> > But with this addressed, I'm facing this next error:
> >
> > $ make nolibc-test LDFLAGS= ARCH=s390 CC=/f/tc/nolibc/gcc-12.2.0-nolibc/s390-linux/bin/s390-linux-gcc
> > MKDIR sysroot/s390/include
> > make[1]: Entering directory '/g/public/linux/master/tools/include/nolibc'
> > make[2]: Entering directory '/g/public/linux/master'
> > make[2]: Leaving directory '/g/public/linux/master'
> > make[2]: Entering directory '/g/public/linux/master'
> > INSTALL /g/public/linux/master/tools/testing/selftests/nolibc/sysroot/sysroot/include
> > make[2]: Leaving directory '/g/public/linux/master'
> > make[1]: Leaving directory '/g/public/linux/master/tools/include/nolibc'
> > CC nolibc-test
> > /tmp/ccCzaBgD.s: Assembler messages:
> > /tmp/ccCzaBgD.s:9: Error: Unrecognized opcode: `lg'
> > /tmp/ccCzaBgD.s:12: Error: Unrecognized opcode: `lay'
> > /tmp/ccCzaBgD.s:15: Error: Unrecognized opcode: `lghi'
> > make: *** [Makefile:108: nolibc-test] Error 1
> >
> > Thus I'm wondering if specific options are required for the compiler
> > (it's gcc 12.2.0 + binutils 2.39), if I'm not using the proper compiler,
> > or if there's anything wrong in the asm code (e.g. maybe by accident you
> > sent the patch from an earlier development branch), or anything else ?
>
> Hmm, tried this on my x86 laptop, and it looks like there are two things
> here:
>
> The cross compiler needs -m64 to compile in 64bit mode. otherwise it
> assumes 31bit mode, where both lg and lghi are not present. The other
> thing is that lay was introduced with later generations of the
> z/Architecture.
Ah, this explains why along my various tests at some point I managed
to remove two of these errors (likely with -m64)!
> The kernel compiles with z10 as minimum architecture, so
> i'm leaning towards enforcing the same arch for nolibc. What do you think?
Sure, as long as this works for most users, that's likely fine.
Alternately, are there equivalent sequences of instructions that achieve
the same on older architectures, and would that be relevant ?
One future improvement I'll need will be to store the envp value into a
global "environ" variable, and run over it to catch the pointer that
follows the NULL and save it into the "_auxv" variable. I've done it for
all other archs here already:
https://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git/log/?h=20221227-nolibc-weak-4
I'll give it a try once I'm able to build and test your code, and may
ask you for some help if I don't succeed in doing it. If you want to do
it yourself, please have a look at the last commits adding environ and
auxv to any arch of your choice, such as x86_64.
Thanks!
Willy
next prev parent reply other threads:[~2023-01-02 8:42 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-09 14:19 [PATCH 0/5] add s390 support to nolibc and rcutorture Sven Schnelle
2022-12-09 14:19 ` [PATCH 1/5] nolibc: fix fd_set type Sven Schnelle
2022-12-10 8:46 ` Willy Tarreau
2022-12-09 14:19 ` [PATCH 2/5] nolibc: add support for s390 Sven Schnelle
2022-12-10 9:07 ` Willy Tarreau
2022-12-10 9:34 ` Sven Schnelle
2022-12-10 9:37 ` Willy Tarreau
2022-12-10 9:39 ` Sven Schnelle
2022-12-10 9:44 ` Willy Tarreau
2022-12-10 17:57 ` Paul E. McKenney
2022-12-10 22:05 ` Willy Tarreau
2022-12-11 5:51 ` Paul E. McKenney
2022-12-27 21:35 ` Willy Tarreau
2023-01-02 8:17 ` Sven Schnelle
2023-01-02 8:41 ` Willy Tarreau [this message]
2023-01-02 9:33 ` Sven Schnelle
2023-01-02 9:50 ` Willy Tarreau
2022-12-09 14:19 ` [PATCH 3/5] selftests/nolibc: add s390 support Sven Schnelle
2022-12-10 9:08 ` Willy Tarreau
2022-12-09 14:19 ` [PATCH 4/5] rcutorture: add support for s390 Sven Schnelle
2022-12-09 14:19 ` [PATCH 5/5] rcutorture: build initrd for rcutorture with nolibc Sven Schnelle
2022-12-09 15:03 ` [PATCH 0/5] add s390 support to nolibc and rcutorture Paul E. McKenney
2022-12-09 15:28 ` Willy Tarreau
2022-12-10 1:26 ` Paul E. McKenney
2022-12-10 9:12 ` Willy Tarreau
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=20230102084122.GB29287@1wt.eu \
--to=w@1wt.eu \
--cc=hca@linux.ibm.com \
--cc=jiangshanlai@gmail.com \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=paulmck@kernel.org \
--cc=rostedt@goodmis.org \
--cc=svens@linux.ibm.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