Opened 9 years ago

Last modified 9 years ago

#9398 new Bugs

get-invocation-command is not using user provided value in some cases

Reported by: nison.mael@… Owned by:
Milestone: To Be Determined Component: Building Boost
Version: Boost 1.55.0 Severity: Problem
Keywords: Cc:

Description

Notably, the problem appears when trying to specify a custom <archiver> or <ranlib> option to either gcc or clang toolchains (the latter deriving from the former.

The get-invocation-command rule executes a shell command then return the output, or the user provided value if the execution did not output anything.

However, it means that the user cannot overwrite the tools paths and has to manually patch the toolset file to hardcode the tool path, which is an issue.

The easy fix would be to check for an option before calling get-invocation-command (at least in gcc.jam, but it is possible that other toolsets are also affected). A maybe-not-so-easy-fix would be to change get-invocation-command behavior to return the user provided value if there is one, and to call the specified command if there is none (so the opposite of what is currently done).

tl;dr : tools/build/v2/user-config.jam

using clang
: 3.3
: /home/arcanis/emscripten/emcc
: <archiver>"/home/arcanis/emscripten/archiver"
  <ranlib>"/home/arcanis/emscripten/emranlib" ;

Doesn't (cannot) work

Change History (1)

comment:1 by nison.mael@…, 9 years ago

Version: Boost 1.54.0Boost 1.55.0

Errata 1 : I'm using Boost 1.55.0 (but this bug seems old)

Errata 2 : This specific issue only affects the gcc toolset. The clang toolset ignores archiver & ranlib paths, even when hardcoded into gcc.jam. I'm not sure why, maybe an other issue could be opened about it ?

Note: See TracTickets for help on using tickets.