AnsweredAssumed Answered

ipu.h typedef error

Question asked by Chris Roed on Aug 22, 2018
Latest reply on Aug 29, 2018 by gusarambula

I'm using the latest yocto (2.4) and I built an x11 image.  I've been adding my own library recipes and I'm running into some issues.

 

The library I'm using includes <linux/ipu.h>, but when I go to compile, the compiler complains

 

/recipe-sysroot/usr/include/bits/stdint-uintn.h:24:19: error: two or more data types in declaration specifiers
| typedef __uint8_t uint8_t;

recipe-sysroot/usr/include/bits/stdint-uintn.h:25:20: error: two or more data types in declaration specifiers
| typedef __uint16_t uint16_t;

recipe-sysroot/usr/include/bits/stdint-uintn.h:26:20: error: two or more data types in declaration specifiers
| typedef __uint32_t uint32_t;

 

Now... I know what the issue is...  The first few lines of ipu.h has 

#define uint32_t unsigned int
#define uint16_t unsigned short
#define uint8_t unsigned char

 

These typedefs are obviously conflicting with the stdint-uintn.h typedefs.

 

In my old dev system I would just go into the root file system and comment out those lines, but now that I'm compiling with yocto this has become an issue...

 

Since I have a custom kernel, I can change the file in the kernel source, or patch it in the linux-libc-headers recipe, but it seems to me there is a reason those #define statements are there, and how other developers have gotten around this problem when developing with the ipu

 

 

 

EDIT:  I used the patch method.  I've attached the patch, which should be placed in the recipes-kernel/linux-libc-headers/files folder and included in the linux-libc-headers_4.9.bb SRC_URI_append section

Outcomes