comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@stephe-leake.org>
Subject: Re: GprBuild and linker options
Date: Tue, 19 Jul 2011 04:20:28 -0400
Date: 2011-07-19T04:20:28-04:00	[thread overview]
Message-ID: <82sjq2isvn.fsf@stephe-leake.org> (raw)
In-Reply-To: 30764c54-0e96-4394-9a5c-d742adbc5344@glegroupsg2000goo.googlegroups.com

Felix Krause <fordprefect86@googlemail.com> writes:

> I need GprBuild to use a custom linker option (in this case, for linking against an OSX framework). So I include this in my project file:
>
> package Linker is
>    for Linker_Options use ("-framework OpenCL", "-v");
> end Linker;

As you have seen, this treats "-framework OpenCL" as a single option
string, which is not what your shell does.

> One thing I tried is splitting the switch into two strings:
>
> for Linker_Options use ("-framework", "OpenCL", "-v");
>
> The linking phase now executes the following:
>
> /usr/local/gnat/bin/gcc [...] -framework
> /users/felix/projects/libs/openclada//OpenCL -v [...]

Apparently gprbuild is treating each item in Linker_Options that does
not start with "-" as a library file; it searches for that file in the
search path, and provides the full path when found.

Which is not what you want.

> 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 behavior, but I didn't find anything. 

The user's guide is woefully inadequate.

> Can anyone tell me how to either make the GprBuild execution with
> "-framework OpenCL" work like when I execute it in the shell, or
> prevent GprBuild from prepending the working path to "OpenCL" when
> passing two strings to Linker_Options?

Can you use "-framework=OpenCL"?

In the gcc manual, there is this:

`-Xlinker OPTION'
     Pass OPTION as an option to the linker.  You can use this to
     supply system-specific linker options which GCC does not know how
     to recognize.

     If you want to pass an option that takes an argument, you must use
     `-Xlinker' twice, once for the option and once for the argument.
     For example, to pass `-assert definitions', you must write
     `-Xlinker -assert -Xlinker definitions'.  It does not work to write
     `-Xlinker "-assert definitions"', because this passes the entire
     string as a single argument, which is not what the linker expects.

`-Wl,OPTION'
     Pass OPTION as an option to the linker.  If OPTION contains
     commas, it is split into multiple options at the commas.

either of these might work.

-- 
-- Stephe



  parent reply	other threads:[~2011-07-19  8:20 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-18 12:39 GprBuild and linker options Felix Krause
2011-07-18 20:32 ` Simon Wright
2011-07-18 22:51   ` Felix Krause
2011-07-19  5:59 ` anon
2011-07-19  8:20 ` Stephen Leake [this message]
2011-07-19 21:05   ` Felix Krause
2011-07-20 12:19     ` Stephen Leake
2011-07-19  9:14 ` Alex R. Mosteo
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox