Cross compiling Mesa for arm - linux

I have cross compiled Qt5.9.1 for an arm linux platform. I see that qtwebengine because mesa/libegl1-mesa-dev is missing.
I am relatively new to linux and i have been trying to cross compile mesa12, mesa13 and mesa17. But all failed.
Is libegl1-mesa-dev absolutely necessary to build qtwebengine to work on linuxfb ? If so, can anyone provide me the dependency list for opengl without x11 and some guiding light to how to cross compile it ?
I came to know that QtWebengine can use software renderer such as QtQuick2drenderer in Qt 5.7. What are the possibilities that i can do the same in Qt 5.9.1 ?
Thank you for your time.
Edit :
Mesa version : 12.0.6
cross compiled dependencies : udev-182 and util-linux-2.30 (for libblkid)
This is the error i am getting :
CCLD libgbm.la
../../src/loader/.libs/libloader.a(libxmlconfig_la-xmlconfig.o): In function `__getProgramName':
xmlconfig.c:(.text+0x64): undefined reference to `__progname'
collect2: error: ld returned 1 exit status
configure i have used
./configure CPPFLAGS="-I$INCLUDEPATH -DMESA_EGL_NO_X11_HEADERS" CFLAGS="-I$INCLUDEPATH -DMESA_EGL_NO_X11_HEADERS" LDFLAGS="-L$LIBPATH" --host=$HOST --prefix=$PREFIX --enable-dri3=no --enable-gallium-llvm=no --disable-omx --enable-gallium-tests=no --enable-gallium-osmesa=no -enable-glx=dri --with-gallium-drivers=swrast --with-dri-drivers=swrast --disable-glx --enable-va=no --enable-vdpau=no --with-egl-platforms=drm

Related

How to install i386 gcc cross compiler on linux

Hi, how can i download i386 elf cross compiler on linux
i need:
i386-elf-gcc
i386-elf-ld
what commands i need to write in to cmd to get this packages?
Please help me!
I think you could create your own binary cross compiler basing on sources from:
https://crosstool-ng.github.io/
The crosstool-ng are sources of the cross toolchain which you can configure on your own to achieve gcc and ld. The configuration process is similar to the configuration of linux kernel. It just uses "menuconfig" method for configuring all the things. Then you run compilation of this project and if everything go fine you will get cross toolchain.

Cross-compiling Rust project fails due to missing libraries

I'm trying to cross compile a Rust project from x86-64 to armv7 (Raspberry Pi 3B+). That project uses the cxx for some of its functionality.
I set up the toolchain, installed the armv7-unknown-linux-gnueabihf target with rustup, and after some trial and error, I copied the required header files to /usr/arm-none-linux-gnueabihf/include. I also copied the /usr/lib/arm-linux-gnueabihf directory from a live Raspbian to /usr/arm-none-linux-gnueabihf/lib.
Then I executed cargo build --target armv7-unknown-linux-gnueabihf. That gives me the following error: https://pastebin.com/2LVZnQMQ.
I then made sure that libc.so.6 is in /usr/arm-none-linux-gnueabihf/lib and libc_nonshared.a is in /usr/arm-linux-gnueabihf/. That did not solve the issue.
I am lost as to what more the linker wants. What else do I need to copy to successfully compare the binary?

undefined reference to `clock_gettime' for arm arm-linux-gnueabi

I was trying to cross compile a file for ARM architecture using arm-lunux-gnueabi cross compiling tool chain. But I am getting below error : -
undefined reference to `clock_gettime'
Please guide me which header files or libraries should I include and how , to get rid over this error.
I am using following command for cross compiling : -
make ARCH=arm CROSS_COMPILE -C /path/to/source
Help is appreciated.
As the documentation says:
Note
Most systems require the program be linked with the librt library to
use these functions.
So link to the rt library with the -lrt flag.

Cross Compilation of OpenCV for ARM fails

I am following this site to compile OpenCV for ARM.
It could not find my compiler so i hardcoded it into cmake file
find_program(CMAKE_C_COMPILER NAMES arm-linux-gnueabi-gcc-4.7)
find_program(CMAKE_CXX_COMPILER NAMES arm-linux-gnueabi-g++-4.7)
set(ARM_LINUX_SYSROOT /usr/arm-linux-gnueabi CACHE PATH "ARM cross compilation system root")
It compiles to aproximately 50% and then throws the following error:
Linking CXX shared library ../../lib/libopencv_viz.so
/usr/lib/libvtkCharts.so.5.8.0: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
I am not every experienced in cross compilation (or straight compilation for the matter). How do i fix this?
I think it is a mismatch between libopencv_viz and libvtkCharts. Some of your 3rdparty libs are built for another platform. These libraries themselves must be recompiled from source to match the details (ABI, dynamic system library dependencies, etc) of the system on which they are intended to be used.
Compiling OpenCV 2.4.10 worked for me. I did not have any preferred version. If you want to compile v3.0 see #Kornel's answer, that suggests to leave viz library out of compilation.
Use this command to checkout v2.4.10
git checkout 2.4.10

building cross-compiler with --- GTK+ & X11 libraries

I have made my cross compiler using crosstool-ng :--
http://www.bootc.net/archives/2012/05/26/how-to-build-a-cross-compiler-for-your-raspberry-pi/
Now i have to cross compile wxGTK using this cross compiler.
wxGTK requires GTK+ & X11 libraries to build. But my cross-compiler is
not build for the support of the same.
1> X11 library packages required are :----
wx2.8-headers
libwxgtk2.8-0
libwxgtk2.8-dev
2> X11 client requires following Package :---
libx11-dev
Please suggest to configure crosstool-ng for GTK+ & X11 support in
cross-compiler, this command is correct or not :-----
./configure --prefix=/opt/cross --with-x11 --with-libx11-dev
--with-wx2.8-headers --with-libwxgtk2.8-0 --with-libwxgtk2.8-dev
Regards,
//Allan
Why don't you use a solution such as Openembedded to build all the software you need? Compiling X, GTK and WX by hand is not trivial and time consuming
As I suggested yesterday, I'd rather use Openembedded

Resources