Instead of having an ada use flag on regular GCC, a legacy version of gcc is downloaded and the ada portions are installed. That's tolerable but what really goes wrong is that when the gnat-gcc e-build is installed an eselect is used, the Ada binaries are hidden from the user. Reproducible: Always Steps to Reproduce: Just install the package and then try to use it as a non-root user. Actual Results: Gnat binaries are visible only to ROOT. =( Expected Results: All ada binaries should be available to all users. tortoise ~ # eselect gnat show Current gnat version: x86_64-pc-linux-gnu-gnat-gcc-4.4
I tried shaking gnat's eselect record up and down. Here's what happened: tortoise src # eselect gnat unset 1 tortoise src # eselect gnat list Available gnat compilers: [1] x86_64-pc-linux-gnu-gnat-gcc-4.4 Installed libs: (no libs) tortoise src # eselect gnat set 1 !!! Error: I don't recognise the selection exiting So the eselect script is definitely broken, It is probably the root cause of the problem described above.
> So the eselect script is definitely broken, It is probably the root cause of > the problem described above. No, it just does not recognize numericals. You need to pass it the name of the desired profile (x86_64-pc-linux-gnu-gnat-gcc-4.4 in your case). Yes, it is not optimal and I plan to update this this to take numericals as well. It just not a top priority now. As a reminder (so that I actually do get around to it), please open a specific bug about this. The present bug is off topic wrt this matter. As to the original issue: as always with the stuff that touches environment (and eselect-gnat updates PATH and some other vars IIRC), you need to source /etc/profile (like you are asked to do 100 of times in the install instructions) for every user that you intend to have access to gnat; or logout from your sessions and login again. As for: >Instead of having an ada use flag on regular GCC This is simply not possible. Gnat is a "real compiler". That is it has code written in Ada, so it requires functional gnat to compile itself. (Like gcc but for C, you don't say "bash gotta have a C use flag and lets forget about separate C compilers.."). Now, it would have been possible for the binary distro - there you just pull in more stuff. But here we have to compile things so, you would have to have Ada in gcc unconditionally, or things will break. I would not mind myself, but this definitely would be met with protests by toolchain people and majority of users as well in fact. So, its not just "tolerable", its the way things go..