Bug 10151 - toolchain eclipse register : fails with a custom BR2_HOST_DIR
Summary: toolchain eclipse register : fails with a custom BR2_HOST_DIR
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: All Linux
: P5 normal
Target Milestone: ---
Assignee: Arnout Vandecappelle
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-08-03 09:25 UTC by Frederic MATHIEU
Modified: 2018-04-01 10:16 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Frederic MATHIEU 2017-08-03 09:25:50 UTC
The toolchain registering fails when a custom HOST directory is defined. 

the script './support/scripts/eclipse-register-toolchain' returns message :
"Your project directory does not look like a Buildroot output"

tested with versions 2017.02.(n), 2017.05.2


in my case, 
BR2_HOST_DIR="$(BASE_DIR)/../../../toolchain/2107.02.3_X86_32/host"
also tested with absolute path : /home/dev01/data/toolchain/2107.02.3_X86_32/host"


...
./support/scripts/eclipse-register-toolchain `readlink -f /home/dev01/data/projects/buildroot-2017.02.3_X86_32/output` i686-buildroot-linux-gnu- "i686"
Your project directory does not look like a Buildroot output
Makefile:655: recipe for target 'target-finalize' failed
make[1]: *** [target-finalize] Error 1
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2
Comment 1 Arnout Vandecappelle 2017-08-03 21:29:03 UTC
Indeed, the eclipse-register-toolchain script doesn't seem to support a non-default BR2_HOST_DIR.

A simple solution would be to symlink host to BR2_HOST_DIR if it's not the default. Any objections to that?
Comment 2 Thomas Petazzoni 2017-08-04 07:03:55 UTC
I'm not really happy to add this host symlink just for the sake of making the eclipse-register-toolchain script work. Instead, we should pass $(HOST_DIR) as argument to eclipse-register-toolchain.
Comment 3 Frederic MATHIEU 2017-08-04 07:38:37 UTC
I agree with Thomas, it is better to solve the problem at its source, ie the main makefile.
Comment 4 Arnout Vandecappelle 2017-08-04 16:43:42 UTC
(In reply to Thomas Petazzoni from comment #2)
> I'm not really happy to add this host symlink just for the sake
> of making the eclipse-register-toolchain script work.

It's more that scripts in general (e.g. post-build scripts) may assume that $(O)/host exists, and it just simplifies life in general if you can rely on it being there. A bit like the staging symlink.

Note that things *will* break dramatically if you change BR2_HOST_DIR and try to rebuild. So there can be no argument of "the symlink could dangle".

> Instead, we should pass $(HOST_DIR) as argument to eclipse-register-toolchain.

HOST_DIR is already exported, no need to add an argument.

However, if you look at the script, you'll see that it just checks that ${project_directory}/host exists, but this directory is *not* encoded in the eclipse toolchains file. Since there is apparently no way to pass BR2_HOST_DIR to eclipse, I guess a non-default BR2_HOST_DIR can't be supported without changing both the eclipse plugin and the toolchains file. That, in turn, requires a synchronised update, and old Buildroots won't run with the new eclipse plugin and vice versa...

In short: I propose to add the symlink :-)
http://patchwork.ozlabs.org/patch/797910/