GCC Toolchain & PX4 build problem (ninja: no work to do)

What does this mean? This is what I get when I try to build the PX4 from the terminal now.

It worked fine the first time. But then I had to run another script to install a different version of the arm-gcc. I tried to restore things by running the ubuntu_sim_nuttx.sh script. This is what I got from it:

.
.
E: Unable to locate package gdb-arm-none-eabi
E: Unable to locate package gcc-arm-embedded
Installing GCC to: /home/safat/gcc-arm-none-eabi-7-2017-q4-major
 GCC already installed.
RESTART YOUR COMPUTER to complete installation of PX4 development toolchain

Then I rebooted my machine and checked the arm-gcc version:

~$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

How is that possible if the ubuntu_sim_nuttx.sh script supposedly removed the old toolchain and installed the correct version? Just to see what happens, I tried to build the PX4:

$ make px4_fmu-v5_default
ninja: no work to do.

What does this imply?

You need to make sure your PATH variable is set correctly. I suggest that you do echo $PATH to see what it is set to and then open ~/.profile and check your entries there.

If you find older entries (e.g. gcc 5.4.1) you can remove these lines.

$ make px4_fmu-v5_default
ninja: no work to do.

I suggest you try make clean and try to build again to see more output.

This is what I see:

~$ echo $PATH
/home/safat/gcc-arm-none-eabi-5_4-2017q2/bin:/home/safat/gcc-arm-none-eabi-7-2017-q4-major/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

When I open ~/.profile with gedit, this is what I see:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi
export PATH=/home/safat/gcc-arm-none-eabi-7-2017-q4-major/bin:$PATH

Does this seem alright? I only see an entry for version 7!

As I’ve said before, I see version 5.4.1 when I check arm-none-eabi-gcc version on terminal.

Ok, check your .bashrc (or .zshrc if you’re using zsh), or check .xprofile.