AdaCore / spark2014

SPARK 2014 is the new version of SPARK, a software development technology specifically designed for engineering high-reliability applications.
GNU General Public License v3.0
249 stars 33 forks source link

"Get_First_Main_File_Name" not declared in "Osint" #11

Closed Earnestly closed 5 years ago

Earnestly commented 5 years ago

New build failure:

gprbuild  -Pgnat2why -j0 -cargs -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -largs -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now
Compile
   [Ada]          gnat1drv.adb
   [C]            smissing.c
   [Ada]          atree.adb
   [Ada]          back_end.adb
   [Ada]          checks.adb
   [Ada]          comperr.adb
   [Ada]          csets.adb
back_end.adb:168:46: "Get_First_Main_File_Name" not declared in "Osint"

   compilation of back_end.adb failed

gprbuild: *** compilation phase failed
kanigsson commented 5 years ago

That's indeed a new function in the GNAT sources - I suspect this will be merged with FSF sources soon (if that's what you are using).

yannickmoy commented 5 years ago

btw, you will not have this problem if you use the "fsf" branch of spark2014, which is meant to follow the changes on FSF sources, as documented in the README: https://github.com/AdaCore/spark2014/#62-building-spark-with-gnat-fsf

Earnestly commented 5 years ago

Why was this closed?

yannickmoy commented 5 years ago

You need to use the "fsf" branch of spark2014 repo as I indicated.

pmderodat commented 5 years ago

Hello @Earnestly

At this point we can’t do much more: while we guarantee that the fsf branch of spark2014 can be built against the current trunk of GCC at the FSF, we cannot provide the same guarantee for the master branch, as it needs corresponding changes in GNAT. What we do is that we update the fsf branch to follow master as soon as we could port the required GNAT changes at the FSF.

Note that since GCC development at the FSF reached stage 4, we currently can’t port GNAT changes anymore, probably until April (once GCC is branched and we switch back to stage 1).

Earnestly commented 5 years ago

I've given it some thought and read through the staged development model used in GCC and how it may hinder adacore's ability commit the work. However, this leads me to conclude that perhaps the branches used in spark2014 are inverted. That is, master should be the fsf branch while the current master should be something like next to indicate the changes which will be included in the future when possible.

By calling the next branch master it created an implication that the fsf branch was for second-class users, as various adacore products would stop building with current releases of gcc (or even versions of gcc built from latest code).

I'll switch to the fsf branch under the impression that adacore would keep it working with the latest code in GCC if they could, and not due to any deliberate dilly dallying to create a false divergence between GCC and the "Pro" guff.

pmderodat commented 5 years ago

Ok. :-) Yes, as I said, since GCC is currently in a stabilization process, our regular efforts to port our internal GNAT patches to the FSF are paused. The purpose of the fsf branch here is precisely to let anyone build spark2014 with the most recent GCC sources at the FSF. We update this branch to follow master every time we port patches to the FSF. So we’re already doing our best.