Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
1,156 Views

glibc header file version in Quark SDK

Jump to solution

I tried to cross-compile Soletta for Galileo on my host machine running Ubuntu 14.04.4 LTS, but hit into problem. The SDK toolchain is built from the latest BSP v1.2.1 following the instructions in http://www.intel.com/content/dam/www/public/us/en/documents/release-notes/quark-x1000-bsp-build-sw-r... http://www.intel.com/content/dam/www/public/us/en/documents/release-notes/quark-x1000-bsp-build-sw-r...

Here is the error log, the complain is definition RB_SW_SUSPEND was not found.

http://pastebin.com/piAkGjVw soletta_build_error - Pastebin.com

I found that the problem is caused by the inconsistency of the libc header files.

The GCC is v4.9.1 and the glibc is v2.19, this version actually has the definition of RB_SW_SUSPEND. RB_SW_SUSPEND is defined in sys/reboot.h and it is only added after v2.16 (2012 May). However, the sysroots of the SDK somehow has the older glibc header files. Therefore is a mismatch on the glibc header files version.

commit 1a09dc565db1da971ade18d9be7d9ac82646d599

 

Author: Andreas Jaeger mailto:aj@suse.de aj@suse.de

 

Date: Wed May 23 20:16:00 2012 +0200Add more constants to Linux 2012-05-23 Andreas Jaeger Maximilian Attems * sysdeps/unix/sysv/linux/sys/reboot.h (RB_SW_SUSPEND, RB_KEXEC): New macros.

May I know how to resolve this discrepancy?

0 Kudos

Accepted Solutions
Highlighted
27 Views

Hi all,

 

Thanks. I got the workaround from Dermot already. I tried option 2 and it works.

 

 

Option 1 - Use the build environment SDK (created using "bitbake meta-ide-support")

 

 

Option 2 - If an SDK installer script is required (to install an SDK to a different computer) then make this simple change to meta/lib/oe/manifest.py and create the installer script again: Move PKG_TYPE_MULTILIB from last to first in the INSTALL_ORDER.

 

 

Before

 

INSTALL_ORDER = [

 

PKG_TYPE_LANGUAGE,

 

PKG_TYPE_MUST_INSTALL,

 

PKG_TYPE_ATTEMPT_ONLY,

 

PKG_TYPE_MULTILIB

 

]

 

 

After

 

INSTALL_ORDER = [

 

PKG_TYPE_MULTILIB,

 

PKG_TYPE_LANGUAGE,

 

PKG_TYPE_MUST_INSTALL,

 

PKG_TYPE_ATTEMPT_ONLY

 

]

View solution in original post

3 Replies
Highlighted
Honored Contributor I
27 Views

Hi,

Just a minor remark, maybe it's related, maybe it's not: yocto images use eglibc or uclibc, both are "tuned" libc for embedded systems iiuc...

It's all I know about this matter...

Fernando.

0 Kudos
Highlighted
Community Manager
27 Views

Hello LB,

 

 

Let me check why the version of GCC differs from the version of glibc, I will try to get back to you as fast as I can.

 

 

Peter.
0 Kudos
Highlighted
28 Views

Hi all,

 

Thanks. I got the workaround from Dermot already. I tried option 2 and it works.

 

 

Option 1 - Use the build environment SDK (created using "bitbake meta-ide-support")

 

 

Option 2 - If an SDK installer script is required (to install an SDK to a different computer) then make this simple change to meta/lib/oe/manifest.py and create the installer script again: Move PKG_TYPE_MULTILIB from last to first in the INSTALL_ORDER.

 

 

Before

 

INSTALL_ORDER = [

 

PKG_TYPE_LANGUAGE,

 

PKG_TYPE_MUST_INSTALL,

 

PKG_TYPE_ATTEMPT_ONLY,

 

PKG_TYPE_MULTILIB

 

]

 

 

After

 

INSTALL_ORDER = [

 

PKG_TYPE_MULTILIB,

 

PKG_TYPE_LANGUAGE,

 

PKG_TYPE_MUST_INSTALL,

 

PKG_TYPE_ATTEMPT_ONLY

 

]

View solution in original post