1 |
Howdy. |
2 |
|
3 |
I'm sending this not only to the team members on the alias, but also |
4 |
to the whole dev list for discussion. |
5 |
|
6 |
So far I've been trying to support in Gentoo the full risc-v multilib |
7 |
directory structure and the ABI sets supported by glibc. According to |
8 |
specs this means for riscv64 |
9 |
|
10 |
-mabi=rv64gc -march=lp64d |
11 |
libdir = lib64/lp64d |
12 |
("hardfloat") |
13 |
|
14 |
-mabi=rv64imac -march=lp64 |
15 |
libdir = lib64/lp64 |
16 |
("softfloat") |
17 |
|
18 |
and theoretically similar for riscv32 (which just landed in glibc and |
19 |
is still broken in qemu-user). |
20 |
|
21 |
However, this leads to several levels of pain (and I definitely dont |
22 |
have time to deal with it myself): |
23 |
|
24 |
a) In many places the two-level libdir (e.g., /usr/lib64/lp64d) leads |
25 |
to difficulties in build systems. Right now Qt5 and CMake are still |
26 |
somewhat broken (in *Gentoo*). |
27 |
|
28 |
b) Rust only supports rv64gc/lp64d. (Which is arguably what you should |
29 |
have for decent Linux support.) |
30 |
|
31 |
I'm pretty sure these are not the only things, but they are somewhat |
32 |
symptomatic. |
33 |
|
34 |
So, I would like to bring two proposals up for discussion. |
35 |
|
36 |
1) We stop caring about anything except rv64gc/lp64d. |
37 |
People can still bootstrap other stuff with crossdev etc, but the |
38 |
Gentoo tree and the riscv keyword reflect that things work with above |
39 |
-mabi and -march settings. |
40 |
|
41 |
2) We drop the multilib paths and use "normal" lib64, with additional |
42 |
"safety symlinks" (/usr)/lib64/lp64d -> . |
43 |
This is what SuSE and (I think) Fedora already does. The symlink |
44 |
should be there since "lib64" is NOT an official fallback coded into |
45 |
gcc/glibc/binutils; the only fallback present is "lib" ... |
46 |
|
47 |
Opinions? |
48 |
|
49 |
Cheers, |
50 |
Andreas |
51 |
|
52 |
|
53 |
|
54 |
-- |
55 |
Andreas K. Hüttel |
56 |
dilfridge@g.o |
57 |
Gentoo Linux developer |
58 |
(council, toolchain, base-system, perl, libreoffice) |