Re: hppa vDSO and compiler (non-)support

From: Jiri Slaby
Date: Wed Mar 09 2022 - 00:49:02 EST


Hi,

On 08. 03. 22, 15:51, Helge Deller wrote:
Hi Jiri,

Thanks for testing on parisc!

On 3/8/22 12:06, Jiri Slaby wrote:
since the "parisc: Add vDSO support" commit, I can no longer cross-build a hppa kernel. I see two issues:

1) CROSS32_COMPILE detection doesn't work here, as openSUSE provides hppa-suse-linux-* binaries. It's easy to overcome by "CROSS32_COMPILE=hppa-suse-linux-"

How is it handled for other platforms like s390x?

s390 simply uses CC for vdso32:
cmd_vdso32cc = $(CC) $(c_flags) -c -o $@ $<

Would it make sense to add the detection for SUSE too?

Maybe.

2) openSUSE doesn't provide any libc for hppa. So gcc doesn't provide libgcc.a and the build of vDSO fails.

libgcc.a comes with the compiler, I don't think you need libc for that.

I was told glibc is needed to build libgcc.a.

I'm currently installing opensuse to try myself though...

So could vDSO be optional on hppa via KConfig?
The vDSO is one of the first things which is built during kernel build process.
This is why you fail.
Making it optional doesn't make sense, because then the kernel wouldn't be able
to start the user space processes.

I used to use the cross compiler to at least compile-check the following  tty drivers:
arch/parisc/kernel/pdc_cons.o
drivers/tty/serial/mux.o
drivers/tty/serial/8250/8250_gsc.o

I assume you never built a full kernel, but stopped when building those modules?
Without libgcc.a the kernel itself wouldn't have linked before either.

Correct, I am only build-testing parisc-only drivers when doing global tty changes.

thanks,
--
js
suse labs