FS#61504 - [aarch64-linux-gnu-glibc] Directory structure in aarch64-linux-gnu* packages

Attached to Project: Community Packages
Opened by Andrew A (andrew-wja) - Wednesday, 23 January 2019, 10:17 GMT
Last edited by Eli Schwartz (eschwartz) - Thursday, 18 April 2019, 01:06 GMT
Task Type Feature Request
Category Packages
Status Closed
Assigned To Anatol Pomozov (anatolik)
Eli Schwartz (eschwartz)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

aarch64-linux-gnu-glibc installs components under /usr/aarch64/usr/XXXX, not /usr/aarch64/XXXX -- is there a reason for this? Libs installed by aarch64-linux-gnu-gcc go in /usr/aarch64/XXXX

If there is no reason why the destination directory is set like this, it would remove headaches for users of the cross-compilation tools not to fork the libdirs like this and require people to manually pass -L options when the compiler cannot find libraries that are installed in different places.
This task depends upon

Closed by  Eli Schwartz (eschwartz)
Thursday, 18 April 2019, 01:06 GMT
Reason for closing:  Fixed
Additional comments about closing:  aarch64-linux-gnu-glibc 2.28-2
Comment by Anatol Pomozov (anatolik) - Wednesday, 17 April 2019, 18:52 GMT
This request makes sense.

I tried to play with the super-weird gcc's build system and unfortunately I cannot figure out that is going to be the right combination of the flags to achieve the tree structure you are requesting.
Comment by Eli Schwartz (eschwartz) - Wednesday, 17 April 2019, 23:19 GMT
Hey, anatolik -- I believe I know how this works, and I'd be interested in helping to fix it. Some other things I'd like to note: currently this ships a lot of locales, i18n, etc -- everything in usr/aarch64-linux-gnu/usr/share, really, which is all stuff that could be derived from the host glibc instead. Also the ld-linux-aarch64.so.1 symlink is installed to /usr/aarch64-linux-gnu/lib/ which I think is probably wrong, as aarch64-linux-gnu-gcc's linker spec programs the binaries to find it in /lib (which is pretty common), so I think the rtlddir should be /usr/lib to make sure it ends up in the right place. (It will still be a symlink to /usr/aarch64-linux-gnu/lib/ld-2.28.so)

BTW: I would be willing to comaintain the package(s), as I have some small interest in toolchains myself :) (and I maintain glibc-git in the AUR in order to keep on top of new things)

To everyone concerned with this bug: can you take a look at https://pkgbuild.com/~eschwartz/repo/x86_64/aarch64-linux-gnu-glibc-2.28-2-any.pkg.tar.xz and tell me if you think this package is good? It implements the moved includedir and s/libdir, moves rtlddir to /usr/lib, and sets sharedir to /usr/share in order to rely on the host glibc -- this last, means that the package size drops down to 18.98 MB from the original 43.2 MB which is a nice bonus.
Comment by Anatol Pomozov (anatolik) - Wednesday, 17 April 2019, 23:34 GMT
Eli, the ideas sound great. Yes please take co-maintainership for aarch64 and other cross-toolchains. Making the Arch cross-toolchains clean and consistent is something that would be great to have as well.

Looking forward to have better support in this area.

Loading...