Re: Fedora RISC-V port needs to put shared objects into /usr/lib64/lp64d

2024-04-30 Thread Andreas K. Huettel
Am Dienstag, 30. April 2024, 19:00:33 +11 schrieb Andrea Bolognani:
> 
> Shouldn't the symlink point in the opposite direction anyway?
> /usr/lib64/lp64d is the actual canonical path, /usr/lib64 is just for
> compatibility.
> 
> Though apparently (see elsewhere in the thread) Gentoo does it this
> way too, so maybe there's something I'm missing that makes the
> current direction more desirable.
> 

Apart from certain difficulties in implementing that (as Florian said),
telling upstream build systems to install their libraries into 
/usr/lib64/lp64d breaks too many (wrong) assumptions (of the library
directory being one dir level under /usr).

We tried and had some surprises.

Obviously these are upstream bugs in various packages. I don't remember
the details anymore, sorry. Explaining the RISC-V directory structure to 
people back then was somewhat painful. Today it might be easier.

-- 
Andreas K. Hüttel
dilfri...@gentoo.org
Gentoo Linux developer 
(council, comrel, toolchain, base-system, perl, libreoffice)
https://wiki.gentoo.org/wiki/User:Dilfridge

signature.asc
Description: This is a digitally signed message part.
--
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: Fedora RISC-V port needs to put shared objects into /usr/lib64/lp64d

2024-04-22 Thread Andreas K. Huettel
> 
> Just for your information, here's how Gentoo is doing things to stay 
> compatible
> with as many variants as possible:
> 

PS. Stage files are here:
https://www.gentoo.org/downloads/#riscv

(rv32-ilp32 is still building, rv32 musl is waiting until the worst musl-1.2.5 
issues
are ironed out...)

-- 
Andreas K. Hüttel
dilfri...@gentoo.org
Gentoo Linux developer 
(council, comrel, toolchain, base-system, perl, libreoffice)
https://wiki.gentoo.org/wiki/User:Dilfridge

signature.asc
Description: This is a digitally signed message part.
--
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: Fedora RISC-V port needs to put shared objects into /usr/lib64/lp64d

2024-04-22 Thread Andreas K. Huettel
Hi, 

I'm handling the RISC-V libdirs in Gentoo.

> There are multiple PRs and patches floating around that make RISC-V use
> the /usr/lib64 directory, like other 64-bit ports.  However, RISC-V
> recommends to use /usr/lib64/lp64d for the Fedora ABI variant, and
> various upstream projects follow that.

From memory I think as per spec both variants are valid.
For more than one ABI, only the latter makes sense of course.

(It gets more complicated for 32bit, because there it's /usr/lib versus
/usr/lib32/ilp32d ...)

Just for your information, here's how Gentoo is doing things to stay compatible
with as many variants as possible:

1) Non-multilib setups, 64bit 
   /usr/lib64

2) Non-multilib setups, 32bit:
   /usr/lib

3) Multilib setups (example with primary ABI lp64d):
   * The *primary* ABI is using the non-multilib path, to keep binary 
compatibility
/usr/lib64
   * All *other* ABI use the multilib, two-level paths:
/usr/lib64/lp64
/usr/lib32/ilp32d
/usr/lib32/ilp32
   * The two-level path of the *primary* ABI is a symlink to the non-multilib 
path.
/usr/lib64/lp64d => /usr/lib64
(or equivalent, /usr/lib64/lp64d => . )

Installing the primary ABI into a two-level libdir is something we tried in the 
past, 
but it lead to some pain. There are too many build systems out there that assume
that $(get_libdir) has one path level only, and then use expressions like 
(particularly
stupid invented example)

CONFIG_FILE=/usr/$(get_libdir)/../../etc/myconfig.conf

which leads to chaos once $(get_libdir) outputs "lib64/lp64d" ...

Cheers, 
Andreas
(on vacation, expect >24h response times)

> I think we should follow upstream, so that it's possible to use Fedora
> to do upstream development without patching the sources, or elaborate
> Fedora-specific configure invocations.  The other reasons is to
> future-proof the Fedora port against the arrival of an alternative ABI
> that is not fully backwards-compatible (the same reason why the official
> RISC-V documentation requires use of these paths).

-- 
Andreas K. Hüttel
dilfri...@gentoo.org
Gentoo Linux developer 
(council, comrel, toolchain, base-system, perl, libreoffice)
https://wiki.gentoo.org/wiki/User:Dilfridge

signature.asc
Description: This is a digitally signed message part.
--
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue