This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Mali OpenCL SDK compile problem

Hello,

I am trying to run the 'hello_world_opencl' sample program from the Mali OpenCL SDK on an Android platform (version 5.0.1). Using my Linux desktop with the terminal, I unzipped the Mali OpenCL SDK Linux download .tgz file. Following the ARM Mali OpenCL tutorials from the website, I changed directories to the hello_world_opencl directory and I tried to run the command 'make install' however I got the following error:

arm-none-linux-gnueabi-g++ -c -Wall -I../../include -I../../common -I. hello_world_opencl.cpp -o hello_world_opencl.o
make: arm-none-linux-gnueabi-g++: Command not found
make: *** [hello_world_opencl.o] Error 127

What am I doing wrong? How can I fix this issue?

Thanks for your time and help,

David

Parents Reply Children
  • You should be able to use Linaro tools with Debian. That said, you might be able to install a cross-compiler using the following commands :

    dpkg --add-architecture armhf
    apt-get update
    apt-get install crossbuild-essential-armhf
    apt-get install g++-arm-linux-gnueabihf
    

    Linaro cross-compilers seems to be used like this :

    • Extract the cross-compiler gcc in a folder
    • Then add the folder to your path, like this:
      export PATH="$PATH":/path/to/gcc-linaro-arm-linux-gnueabihf-*_linux/bin/

     

    Whether you use one method of the other, when trying to autocomplete "arm" on a shell (e.g. pressing TAB 3 times on Bash), you should be able to see something like :

    arm-linux-gnueabihf-addr2line
    arm-linux-gnueabihf-ar
    arm-linux-gnueabihf-as
    ...
    arm-linux-gnueabihf-g++
    arm-linux-gnueabihf-gcc


    At that point, you might be able to compile the SDK

    Note that you might want to also try arm and gcc-arm-linux-gnueabi instead of armhf and gcc-arm-linux-gnueabihf if you want to use the soft float ABI.

    Also, note that some configuration scripts will use the following variables to determine the cross-compiling tools prefix :

    • CROSS_COMPILE
    • ARCH

    For example, you might have to export the following variables before configuring/compiling some packages :

    export CROSS_COMPILE=arm-linux-gnueabihf-
    export ARCH=arm
  • Hi Myy. The host computer that I am using has an Intel CPU. Do you know if it is possible to run the cross-compiler on this system?

    Thanks,
    David
  • Hello Myy,

    I ran the commands:
    sudo dpkg --add-architecture armhf
    sudo apt-get update

    I noticed an errors:

    W: Failed to fetch ppa.launchpad.net/.../Sources 404 Not Found

    W: Failed to fetch ppa.launchpad.net/.../Packages 404 Not Found

    W: Failed to fetch ppa.launchpad.net/.../Packages 404 Not Found

    Then when I ran this:

    sudo apt-get install gcc-arm-linux-gnueabihf

    sudo apt-get install g++-arm-linux-gnueabihf

    However, when I run these commands, I get an error message stating "Unable to locate package".

    Any advice or help? Sorry to keep bothering you with these issues.

    Thanks,

    David

  • Yes you can. Cross-compiling is mainly done on x86(-64) machines anyway.

    The only big difference between a compiler and a cross-compiler is the machine code it outputs.

    • A compiler will output machine code for machine architecture it was invoked on. (e.g. x86 compiler program outputs x86 machine code)
    • A cross-compiler will output machine code for another type of architecture. (e.g. x86 cross-compiler program outputs ARM machine code)

    Still, it's just a user program available for multiple architectures, including Intel architectures.

  • Another question, do you know what are the commands to install Linaro cross-compiler on Ubuntu? Do I use the same three commands you stated in your second reply?
  • Yes, as stated above, in order to use a Linaro pre-packaged toolset, you'll have to download the appropriate archive from linaro's HTTP repository and :

    • Extract the archive in a folder
    • Then add the folder to your path, like this:
      export PATH="$PATH":/path/to/gcc-linaro-arm-linux-gnueabihf-*_linux/bin/