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 autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.159.34.232 with SMTP id 95mr8094248uan.0.1504389767070; Sat, 02 Sep 2017 15:02:47 -0700 (PDT) X-Received: by 10.36.9.136 with SMTP id 130mr73738itm.14.1504389767027; Sat, 02 Sep 2017 15:02:47 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!weretis.net!feeder4.news.weretis.net!border2.nntp.ams1.giganews.com!nntp.giganews.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!u11no1242335qtu.1!news-out.google.com!80ni1737itk.0!nntp.google.com!127no342164itw.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sat, 2 Sep 2017 15:02:46 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=76.218.37.33; posting-account=W2gdXQoAAADxIuhBWhPFjUps3wUp4RhQ NNTP-Posting-Host: 76.218.37.33 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <6d6e96b3-b881-43d7-a5cc-5c131ac97c03@googlegroups.com> Subject: link errors with GNAT GPL 2016 and gprof From: Stephen Leake Injection-Date: Sat, 02 Sep 2017 22:02:47 +0000 Content-Type: text/plain; charset="UTF-8" X-Received-Body-CRC: 1479447460 X-Received-Bytes: 2635 Xref: news.eternal-september.org comp.lang.ada:47893 Date: 2017-09-02T15:02:46-07:00 List-Id: I'm trying to Do The Right Thing and profile my code before I start messing with it to make it faster. But GNAT is _not_ cooperating! According to the gnat user guide, to use gprof, we compile as: gnatmake -f -pg -P That fails with GNAT GPL 2016: gprbuild: illegal option "-pg" on the command line So I added "-pg" in the Builder package in the project file: package Builder is case Profile is when "Full" => for Default_Switches ("Ada") use ("-f", "-pg"); when "On" => for Default_Switches ("Ada") use ("-pg"); when "Off" => null; end case; end Builder; That gives -pg options on each 'gcc' command, but fails at link time: gcc run_ada_lite_parser.o -o run_ada_lite_parser.exe run_ada_lite_parser.o: In function `ada_run_ada_lite_parser': C:/Projects/org.wisitoken.stephe-1/wisi/test/run_ada_lite_parser.adb:12: undefined reference to `mcount' I noticed there is no '-pg' on the 'gcc' link command line, so I added it to the Linker package: package Linker is case Profile is when "Full" | "On" => for Default_Switches ("Ada") use ("-pg"); when "Off" => null; end case; end Linker; That did not help. Also tried adding it to the Binder package; no help there either. How do I tell gprbuild to specify "-pg" for linking? The gnat user guide has always been unhelpful about mapping command line options to project file packages. -- Stephe