Re: Request to help test ia64 build for galera-4
John Paul Adrian Glaubitz <[email protected]> Mon, 27 May 2024 17:14:38 +0200
| Newsgroups | gmane.linux.debian.ports.ia64 |
|---|---|
| Message-ID | <b2d188bff8eab920db51543116a38c1c7215ecd6.camel@physik.fu-berlin.de> |
Hello, On Sun, 2024-05-26 at 14:09 +0200, Frank Scheiner wrote: > > It was also removed because there was no maintainer for it in glibc and > > suffered from a lot of testsuite failures. I tried for a long time to > > convince Adhemerval to fix these issues, but he explained that it would > > involve rewriting large parts of the math code for ia64 which he though= t > > wasn't worth the effort. >=20 > Adhemerval gave his assessment in [2]: "From glibc point of view,=20 > besides the math issues due the ia64 specific math implementation, the= =20 > port status seems in order." >=20 > [2]: https://sourceware.org/pipermail/libc-alpha/2023-November/152497.htm= l As I mentioned, getting the math testsuite to pass would require the libm_e= rror.c code to be adapted that it will work with the new error-handling design. Wi= thout that, FPU error handling will remain broken on ia64. > There are "some rough spots" mentioned in addition and also that "There= =20 > are no emulators widely available, and so boot testing Itanium is=20 > generally infeasible for ordinary contributors. Well, I've had long discussions over this with Adhemerval and he was more r= eserved in this announcement mail than in the conversations that we had in private = where he discussed the problems with the port more openly. > But all this was not the actual reason to remove ia64 support from the= =20 > glibc. Joseph Meyers added: "We should remove any architecture removed= =20 > from the Linux kernel. [...]" in [3]. And Carlos O'Donell detailed why= =20 > in [4]: "[...] We need an upstream kernel to define the ABI for the=20 > port. [...]". Adhemerval also added in a later message ([5]): "Sorry,=20 > but not being upstream is a no start. [...] The best way is to still=20 > remove it and eventually reinstate it if it were the case.". The kernel removal may be the main reason, but not the only one. > Other than that, we have a working ia64 emulator (Ski) and in the=20 > meantime, also support for it in Linux was restored ([6]). Sure, as I said, I think these efforts are always laudable. I just don't th= ink there is any chance on getting support re-added upstream to the Linux kerne= l and glibc. The majority of developers will vote against it, as hard as that sounds. > There seem to be different opinions about this "relation": Xi Ruoyao=20 > pointed out the following recently on the binutils mailing list [7]: >=20 > ``` > The reasoning is incorrect. The dependency chain of a port is: >=20 > - Upstream GCC needs upstream Binutils > - Upstream Linux kernel needs upstream GCC > - Upstream Glibc needs upstream Linux kernel >=20 > So the removal of IA64 from the Linux kernel means we should remove it > from Glibc, but you cannot reversely traverse the dependency chain and > claim it should be removed from GCC or Binutils. > [...] > ``` I know it doesn't _have_ to be removed from GCC and Binutils. However, remo= ving it will still relieve the codebase quite a bit and allow for a lot of code refactoring that people have on their TODO stashes. >=20 > > Have you already sorted out who is going to maintain ia64 support in gl= ibc > > and the Linux kernel? >=20 > Well, since quite a while we maintain out-of-tree versions for both=20 > ([8]). Especially for Linux you can follow our progress as replies to=20 > Linus' release messages to the LKML for 6.7, 6.8 and just recently 6.9= =20 > ([9]) and also on https://lore.kernel.org/linux-ia64/. >=20 > [8]: https://github.com/orgs/linux-ia64/repositories >=20 > [9]:=20 > https://lore.kernel.org/lkml/[email protected]/ There is more involved to maintenance than keeping something buildable and = bootable. You will have to review patches, merge them and send pull requests to Linus= and so on. > > And do you already know how to get Ruby upstream to > > re-add ia64 support? Ruby is required for a lot of other packages that = depend > > on it. >=20 > Depending on something like Ruby for a lot of packages is a=20 > short-sightedness that should eventually be fixed. I didn't need it to= =20 > create a working rebuild of Slackware for ia64. Of course, the package= =20 > selection for EPIC Slack is still limited, but I don't hold anyone back= =20 > or advise against trying to use Ruby on it. I don't think these projects that use Ruby in their codebase will waive for= it just because there is no working Ruby interpreter on some (deprecated) platforms= . >=20 > > - ia64 comes with its own implementation of EFI which is not fully comp= atible > > with UEFI and requires additional support code; this was the main re= ason why > > some GRUB developers wanted to get rid of ia64 support, see: > >=20 > > > https://lists.gnu.org/archive/html/grub-devel/2023-05/msg00051.htm= l >=20 > In general I thought that UEFI was derived from EFI, so I don't really= =20 > see, why both can't coexist together. But I might have to do further=20 > research on that. Apart from that, ELILO is working perfectly fine both= =20 > for diskless boots and booting from disk. ELILO is unmaintained and has had various issues and bugs in the past which= is why I switched to GRUB on Debian back then. But it also looks like that ia64 su= pport is going to stay in GRUB for a while, I haven't seen any new efforts for re= moving it lately on the grub-devel mailing list. > > - ia64 uses a 61-bit virtual address space as opposed to the 48-bit vir= tual > > address space found on x86_64; >=20 > Yes, it was done earlier than x86_64. >=20 > > this causes problems with languages like > > JavaScript which use tagged pointers to encode type information in t= he > > bits unused on x86_64, see: > >=20 > > > https://www.ia64-linux.org/doc/IA64linuxkernel.PDF (p. 18) > >=20 > > (NB: This is expected to improve in the future as x86_64 optionally = supports > > larger virtual address spaces in the kernel nowadays as well). > >=20 > > - the math error handling ABI on ia64 in glibc is different from other = architectures > > and the code for it in sysdeps/ia64/fpu/libm_error.c is quite convol= uted; as glibc > > tries to unify and simplify FPU error handling, the different semant= ics of the ia64 > > ABI would require - quoting Adhemerval here - =C2=BBa lot boilerplat= e and mechanical > > changes=C2=AB which he doesn't think is worth the effort >=20 > I think we could have done more in this regard, if ia64 support wouldn't= =20 > have been removed from Linux last year, requiring additional work=20 > everywhere. But I don't complain, I think it also forced our hands. Well, I have done a lot of work in this regard in the past to get JavaScrip= t fixed on targets with virtual address space sizes beyond 48 bits. But it's still not= fixed everywhere, especially not in Qt5. It has been fixed in Qt6 though. > > There are probably more issues and quirks that I don't remember, but I = think the list > > above already mentions enough show stoppers which mean that upstream pr= ojects won't be > > willing to re-add support for the architecture. >=20 > Thanks for your assessment. I consider that much more useful than to=20 > advise people against working on ia64. I'm not advising against you to do anything. You are free to spend your fre= e time with whatever you want and if you think that keeping ia64 is worth the effort, m= ore power to you! All I did was giving an elaborate explanation why ia64 is going to be = removed from Debian within the next days and why I personally think it's a lost cause. > > Of course, I am not going to stop you from continuing your work and I t= hink such efforts > > are always laudable. I just don't think the very limited interest in th= is architecture > > will be enough to overcome the difficulties that ia64 maintainers have = to face. > >=20 > > This is also the reason why the ia64 maintainers of neither Debian nor = Gentoo were against > > the removal of support for the architecture in Ruby, the Linux kernel, = glibc and so on. >=20 > Being not against something and taking care of something are two=20 > different things. But why would maintainers start an argument with upstream developers over s= omething they don't really care about? That makes no sense. Adrian --=20 .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913