Search code examples
gcccross-compilingyoctoopenembedded

Yocto project cannot find asm/errno.h


I'm trying to compile a program that requires asm/errno.h header.

Building C object CMakeFiles/modem.dir/src/client.c.o
| /home/kristupas/yocto/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc  -Dmodem_EXPORTS -std=gnu99  -march=armv7-a -mfloat-abi=softfp -mfpu=neon  --sysroot=/home/kristupas/yocto/oe-core/build/tmp-glibc/sysroots/mdm9607  -O2 -fexpensive-optimizations -frename-registers -fomit-frame-pointer -fPIC -I/home/kristupas/yocto/oe-core/build/tmp-glibc/work/armv7a-vfp-neon-oe-linux-gnueabi/libmodem/1.0-r0/libmodem/src -I/home/kristupas/yocto/oe-core/build/tmp-glibc/work/armv7a-vfp-neon-oe-linux-gnueabi/libmodem/1.0-r0/libmodem/include    -o CMakeFiles/modem.dir/src/client.c.o   -c /home/kristupas/yocto/oe-core/build/tmp-glibc/work/armv7a-vfp-neon-oe-linux-gnueabi/libmodem/1.0-r0/libmodem/src/client.c
| [ 83%] /home/kristupas/yocto/oe-core/build/tmp-glibc/work/armv7a-vfp-neon-oe-linux-gnueabi/libmodem/1.0-r0/libmodem/src/client.c:14:25: fatal error: asm/ernno.h: No such file or directory
|  #include <asm/ernno.h>
                         ^

The --sysroot argument is set correctly to my targets sysroot, but gcc still can't find the header, even though it's clearly there:

ls -la /home/kristupas/yocto/oe-core/tmp-glibc/sysroots/mdm9607/usr/include/asm/ | grep "errno\.h"
-rw-r--r--  3 kristupas kristupas    31 Kov  9 16:06 errno.h

Doing

echo | /home/kristupas/yocto/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc -R -Wp. -v -

returns this:

--includedir=/home/kristupas/yocto/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/include

This is the include directory for the host, which does not contain asm/errno.h. Shouldn't it point to targets sysroot instead?


Solution

  • Turns out I misspelled errno and failed to notice it for hours!