From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.13.254.131 with SMTP id o125mr11289075ywf.56.1434031699248; Thu, 11 Jun 2015 07:08:19 -0700 (PDT) X-Received: by 10.140.93.38 with SMTP id c35mr141907qge.38.1434031699231; Thu, 11 Jun 2015 07:08:19 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!z60no591779qgd.1!news-out.google.com!4ni584qgh.1!nntp.google.com!q107no592819qgd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Thu, 11 Jun 2015 07:08:19 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=105.210.1.171; posting-account=orbgeAkAAADzWCTlruxuX_Ts4lIq8C5J NNTP-Posting-Host: 105.210.1.171 References: <6d5f352b-d886-4cd4-8f88-4116fe34129a@googlegroups.com> <4bc35d01-158d-48bb-b241-d4e3c3ce4344@googlegroups.com> <373a8c7e-8538-4de3-9647-dead707b8a88@googlegroups.com> <1e1e5cf8-5535-4e9f-9d85-261466ad9ce2@googlegroups.com> <295e0eb8-4779-4c72-ba98-3fb0c507640d@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <0d48037a-2a35-4e60-b98a-3f76ee300263@googlegroups.com> Subject: Re: gnat compiler issues with a partial build From: jan.de.kruyf@gmail.com Injection-Date: Thu, 11 Jun 2015 14:08:19 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: news.eternal-september.org comp.lang.ada:26267 Date: 2015-06-11T07:08:19-07:00 List-Id: On Thursday, June 11, 2015 at 7:01:25 AM UTC+2, Simon Wright wrote: > > In my opinion, this approach is *exactly* why you are having problems. Since when is it, that when I point out something in the tools that does not seem kosher (or perhaps is not documented) that I ought to have a problem? The issue I had, I have solved for myself long ago, because I do know my tools. And when it proves I dont, I will strive to get to know them better. > > Since you aren't doing that, the compiler looks at the code you are > working on, including the parts that should be in the RTS. Yes. > it will look in the RTS it is in fact compiling > against, which in your case is the Linux GNAT GPL 2014 RTS, No, for that it needs a library (or RTS as we call it in Ada). I have made sure it is not there, by setting the RTS essentially to null in the project file. And I have tried to inform the compiler of that fact. But apparently I failed or there is a bug in the compiler. > and generate > code that expects to find those features at link time. Possible, but the documentation as it stands says it ought not, if one uses the right restrictions. What is more, the arm cross environment does not suffer of it, according to Mark L. And in the olden days we had "No Runtime", which means exactly that. Today gnat says that we can imitate that with the right restrictions etc. > > (2) work in an RTS framework, as I have described, and write your own > System.Memory. I think you can get away with the standard spec and just > modify the body (to use the same bindings as you'd have written for > (1)). You have a wrong understanding of an RTS. It is a collection of source files that are compiled and partially linked into a library. This library is then linked with the final customer program (when it is a static lib) to make the executable. It is nothing more and also nothing less. And where the firewall between the 2 lies is entirely unimportant. The linker just wants the symbols it needs in other parts of the program. So I fail to see how an extra layer of obfuscation will make this issue (of wrong or accidental code go away. On the contrary _understanding the tools better_, including their failings will clear this issue up. The issue is not my runtime (or immitation of it) The issue is that the compiler produces symbols that _ARE NOT_ in the ravenscar profile for arm. Although I set all the switches to immitate that compile environment. (At least I hope I did). Thanks for listening to me, j.