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=-0.3 required=5.0 tests=BAYES_00,FREEMAIL_FROM, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,99e88d5f39f38483,start X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail From: Felix Krause Newsgroups: comp.lang.ada Subject: GprBuild and linker options Date: Mon, 18 Jul 2011 05:39:31 -0700 (PDT) Organization: http://groups.google.com Message-ID: <30764c54-0e96-4394-9a5c-d742adbc5344@glegroupsg2000goo.googlegroups.com> Reply-To: comp.lang.ada@googlegroups.com NNTP-Posting-Host: 92.203.58.248 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1310992771 15378 127.0.0.1 (18 Jul 2011 12:39:31 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 18 Jul 2011 12:39:31 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=92.203.58.248; posting-account=sXebhAoAAACnuNgFPhYnsVyKMeBm3XmF User-Agent: G2/1.0 X-Google-Web-Client: true Xref: g2news2.google.com comp.lang.ada:21191 Date: 2011-07-18T05:39:31-07:00 List-Id: I need GprBuild to use a custom linker option (in this case, for linking ag= ainst an OSX framework). So I include this in my project file: package Linker is for Linker_Options use ("-framework OpenCL", "-v"); end Linker; When I try to build this project, this is the output I get at linking phase= , which fails: /usr/local/gnat/bin/gcc [...] -framework OpenCL -v [...] [...] COLLECT_GCC_OPTIONS=3D[...] '-framework OpenCL' '-v' [...] /usr/local/gnat/libexec/gcc/x86_64-apple-darwin10.2.0/4.5.3/collect2 [...] After that, I get a list of undefined symbols. This is due to "-framework O= penCL" not being given to the collect2 call. I have no idea what COMPILE_GC= C_OPTIONS does, but I noticed my switch being listed there. Now when I copy= paste the above call to /usr/local/gnat/bin/gcc into my shell and execute i= t there, my switch isn't listed in COLLECT_GCC_OPTIONS anymore, but instead= is given to the collect2 call, and everything links correctly. Now of course, I want the build to work directly without having to copy com= mands to the shell. One thing I tried is splitting the switch into two stri= ngs: for Linker_Options use ("-framework", "OpenCL", "-v"); The linking phase now executes the following: /usr/local/gnat/bin/gcc [...] -framework /users/felix/projects/libs/opencla= da//OpenCL -v [...] This obviously results in an error because this framework can't be found. I= searched in the GprBuild user's guide for some hint on what causes this be= havior, but I didn't find anything. Can anyone tell me how to either make t= he GprBuild execution with "-framework OpenCL" work like when I execute it = in the shell, or prevent GprBuild from prepending the working path to "Open= CL" when passing two strings to Linker_Options? Thanks. Felix