AdaCore / gprbuild

GPRbuild is an advanced build system designed to help automate the construction of multi-language systems.
Other
65 stars 21 forks source link

Bootstrap: no selector "Append_Vector" for private type "Ada.Containers.Indefinite_Vectors.Vector" #106

Closed HiPhish closed 2 years ago

HiPhish commented 2 years ago

Hello,

I am trying to compile gprbuild on Void Linux, but when I try to bootstrap the application I get the following error:

$ ./bootstrap.sh --with-xmlada=../xmlada --with-kb=../gprconfig_kb --prefix=./bootstrap --build
gcc -c -I./ -I/home/hiphish/Developer/ada/gprbuild/src -I/home/hiphish/Developer/ada/gprbuild/gpr/src -I../xmlada/sax -I../xmlada/do
m -I../xmlada/schema -I../xmlada/unicode -I../xmlada/input_sources -I- /home/hiphish/Developer/ada/gprbuild/src/gprbuild-link.adb
gcc -c -I./ -I/home/hiphish/Developer/ada/gprbuild/src -I/home/hiphish/Developer/ada/gprbuild/gpr/src -I../xmlada/sax -I../xmlada/do
m -I../xmlada/schema -I../xmlada/unicode -I../xmlada/input_sources -I- /home/hiphish/Developer/ada/xmlada/input_sources/input_source
s-strings.adb
gcc -c -I./ -I/home/hiphish/Developer/ada/gprbuild/src -I/home/hiphish/Developer/ada/gprbuild/gpr/src -I../xmlada/sax -I../xmlada/do
m -I../xmlada/schema -I../xmlada/unicode -I../xmlada/input_sources -I- /home/hiphish/Developer/ada/xmlada/sax/sax-models.adb
gcc -c -I./ -I/home/hiphish/Developer/ada/gprbuild/src -I/home/hiphish/Developer/ada/gprbuild/gpr/src -I../xmlada/sax -I../xmlada/do
m -I../xmlada/schema -I../xmlada/unicode -I../xmlada/input_sources -I- /home/hiphish/Developer/ada/xmlada/schema/schema-simple_types
.adb
gcc -c -I./ -I/home/hiphish/Developer/ada/gprbuild/src -I/home/hiphish/Developer/ada/gprbuild/gpr/src -I../xmlada/sax -I../xmlada/do
m -I../xmlada/schema -I../xmlada/unicode -I../xmlada/input_sources -I- /home/hiphish/Developer/ada/xmlada/sax/sax-state_machines.adb
gcc -c -I./ -I/home/hiphish/Developer/ada/gprbuild/src -I/home/hiphish/Developer/ada/gprbuild/gpr/src -I../xmlada/sax -I../xmlada/do
m -I../xmlada/schema -I../xmlada/unicode -I../xmlada/input_sources -I- /home/hiphish/Developer/ada/xmlada/schema/schema-validators-x
sd_grammar.adb
gprbuild-link.adb:765:20: no selector "Append_Vector" for private type "Ada.Containers.Indefinite_Vectors.Vector" from instance at g
pr-util.ads:39
gprbuild-link.adb:799:22: no selector "Append_Vector" for private type "Ada.Containers.Indefinite_Vectors.Vector" from instance at g
prbuild.ads:165
gprbuild-link.adb:802:22: no selector "Append_Vector" for private type "Ada.Containers.Indefinite_Vectors.Vector" from instance at g
prbuild.ads:165
gprbuild-link.adb:888:19: no selector "Append_Vector" for private type "Ada.Containers.Indefinite_Vectors.Vector" from instance at g
prbuild.ads:165
gprbuild-link.adb:3431:37: no selector "Append_Vector" for private type "Ada.Containers.Indefinite_Vectors.Vector" from instance at
gprbuild.ads:165
gprbuild-link.adb:3450:19: no selector "Append_Vector" for private type "Ada.Containers.Indefinite_Vectors.Vector" from instance at
gprbuild.ads:165
gnatmake: "/home/hiphish/Developer/ada/gprbuild/src/gprbuild-link.adb" compilation error

I have explicitly checked out the tag v22.0.0 in both this repository and its two dependencies. My version of both GCC and GNATmake is 10.2.1 20202103, installed from the Void repositories as gcc and gcc-ada respectively. Is there some extra dependency I am missing?

My goal is to build and bundle gprbuild in the Void package repositories. Void has no Ada packages other than gcc-ada, so it would be cool if we could have at least the basic Ada packages like gprbuild, alire and the Ada language server there.

anisimkov commented 2 years ago

It is because gcc-ada you have too old for gprbuild 22.0 sources. You should get either newer Ada compiler from https://www.adacore.com/download or older gprbuild sources from github repository.

HiPhish commented 2 years ago

Which version of GCC do I need? I want to use GCC from the Void repositories since I want to package gprbuild. Updating GCC should not be an issue, Void is a rolling release distro.

anisimkov commented 2 years ago

I do not know exact GCC version. The GNAT Commutily is on top of 10.3.1. But it does not mean that gcc-ada with the same gcc version going to be compatible with latest gprbuild sources.If you want to remain on gcc-ada from Void repositories you should install latest gcc-ada and try gprbuild form latest one to older one step by step. NExt after 22.0 you should try 21.2. then you can try 20.2, then 19.2

HiPhish commented 2 years ago

Version 21.0.0 builds fine. I don't see a version 21.1 or 21.2 tag, where can I get those releases? In fact, I was not able to find any release notes or archive of previous releases.

The GNAT Commutily is on top of 10.3.1. But it does not mean that gcc-ada with the same gcc version going to be compatible with latest gprbuild sources.

What is the relationship between GCC GNAT and Adacore GNAT? I thought Adacore "just" repackages GCC GNAT in a "batteries included" bundle with and IDE, gprbuild and a bunch of other extras and then offers paid support, while GCC GNAT is only the bare compiler.

t-14 commented 2 years ago

Version 21.0.0 builds fine. I don't see a version 21.1 or 21.2 tag, where can I get those releases?

This roughly corresponds to the heads of correspondingly-named branches. We didn't use to tag the actual source set for past commercial releases, though we might start doing it next year. Probably using top of branch 21.2 is better than using 21.0.0 tag since the former may carry some additional stability patches.

What is the relationship between GCC GNAT and Adacore GNAT? I thought Adacore "just" repackages GCC GNAT in a "batteries included" bundle with and IDE, gprbuild and a bunch of other extras and then offers paid support, while GCC GNAT is only the bare compiler.

This question is out of scope of gprbuild GH project, so let's not use a gprbuild issue to discuss it (short answer is that there is no particular relationship version-wise). It's not relevant anyway, pragmatically all that matters for you is that your Ada compiler should be able to compile a given state of gprbuild and its dependencies (sounds like in your case it's 21.x, which is fine since it's recent enough).

HiPhish commented 2 years ago

I understand. One last question: since this is beyond the scope of a gprbuild issue, where can I ask these types of questions? Is there a mailing list? All I have been able to find is the contact form on the AdaCore website, but I'm sure that's just for regular business queries, not technical questions by non-customers.

Fabien-Chouteau commented 2 years ago

Hello @HiPhish,

We have a community contact form: https://www.adacore.com/community/contact The Ada forums on Reddit, Gitter or Telegram would also be a valid option to ask this kind of questions.