linux-imx: include/uapi/linux/ipu.h redefines standard integer types

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

linux-imx: include/uapi/linux/ipu.h redefines standard integer types

180件の閲覧回数
ernest_tdx
Contributor III

Hi,

I'm using the Toradex BSP master branch to build for the Verdin iMX8MM. This BSP uses the meta-freescale layer to support the NXP SoCs. There, things are being updated to follow NXP BSP 6.18.2.  In particular, imx-gst1.0-plugin is now at version "MM_04.10.03_2512_L6.18.2", and linux-imx and linux-imx-headers are now at lf-6.18.y.

When building imx-gst1.0-plugin with Yocto/OE for the verdin-imx8mm, I noticed the following build error:
MACHINE=verdin-imx8mm bitbake imx-gst1.0-plugin:

  | In file included from ../sources/imx-gst1.0-plugin-4.10.3+git/libs/v4l2_core/gstimxv4l2.c:29:
  | /workdir/oe/tmp/work/armv8a-mx8mm-tdx-linux/imx-gst1.0-plugin/4.10.3+git/recipe-sysroot/usr/include/imx/linux/ipu.h:42:17: error: two or more data types in declaration specifiers
  |    42 | #define uint8_t unsigned char
  |       |                 ^~~~~~~~
  | /workdir/oe/tmp/work/armv8a-mx8mm-tdx-linux/imx-gst1.0-plugin/4.10.3+git/recipe-sysroot/usr/include/imx/linux/ipu.h:42:26: error: two or more data types in declaration specifiers
  |    42 | #define uint8_t unsigned char
  |       |                          ^~~~
  | /workdir/oe/tmp/work/armv8a-mx8mm-tdx-linux/imx-gst1.0-plugin/4.10.3+git/recipe-sysroot/usr/include/imx/linux/ipu.h:41:18: error: two or more data types in declaration specifiers
  |    41 | #define uint16_t unsigned short
  |       |                  ^~~~~~~~
  | /workdir/oe/tmp/work/armv8a-mx8mm-tdx-linux/imx-gst1.0-plugin/4.10.3+git/recipe-sysroot/usr/include/imx/linux/ipu.h:41:27: error: two or more data types in declaration specifiers
  |    41 | #define uint16_t unsigned short
  |       |                           ^~~~~
  | /workdir/oe/tmp/work/armv8a-mx8mm-tdx-linux/imx-gst1.0-plugin/4.10.3+git/recipe-sysroot/usr/include/imx/linux/ipu.h:40:18: error: two or more data types in declaration specifiers
  |    40 | #define uint32_t unsigned int
  |       |                  ^~~~~~~~
  | /workdir/oe/tmp/work/armv8a-mx8mm-tdx-linux/imx-gst1.0-plugin/4.10.3+git/recipe-sysroot/usr/include/imx/linux/ipu.h:40:27: error: two or more data types in declaration specifiers
  |    40 | #define uint32_t unsigned int
  |       |                           ^~~

[...]

  | ninja: build stopped: subcommand failed.
  | INFO: autodetecting backend as ninja
  | INFO: calculating backend command to run: /workdir/oe/tmp/work/armv8a-mx8mm-tdx-linux/imx-gst1.0-plugin/4.10.3+git/recipe-sysroot-native/usr/bin/ninja -j 64 -v
  | WARNING: exit code 1 from a shell command.
  NOTE: recipe imx-gst1.0-plugin-4.10.3+git-r0: task do_compile: Failed
  ERROR: Task (/workdir/oe/build/../layers/meta-freescale/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb:do_compile) failed with exit code '1'
  NOTE: recipe gstreamer1.0-plugins-bad-1.26.6.imx-r0: task do_package: Succeeded
  NOTE: Tasks Summary: Attempted 10003 tasks of which 8796 didn't need to be rerun and 1 failed.
  NOTE: Writing buildhistory
  NOTE: Writing buildhistory took: 6 seconds
  
  Summary: 1 task failed:
    /workdir/oe/build/../layers/meta-freescale/recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb:do_compile
      log: /workdir/oe/tmp/work/armv8a-mx8mm-tdx-linux/imx-gst1.0-plugin/4.10.3+git/temp/log.do_compile.827805
  Summary: There was 1 WARNING message.
  Summary: There was 1 ERROR message, returning a non-zero exit code.

 
This happens because "include/imx/linux/ipu.h" is redefining types that are already set as a typedef in "linux/types.h", which is included by ipu.h. It is probably pure chance that this error was not triggered by a userspace program consuming this header before, due to a different include order.

The solution seems relatively straightforward to me: remove the macro defines of uint*_t, which already exist anyways. My assumption is these just remained from some historical growth but there should be no reason for them in a Linux context.

I've attached a patch with what I believe is a decent solution, on top of lf-6.18.y, which fixes my build problems. Any feedback or the integration of this patch would certainly be appreciated.

Thanks,
Ernest - Toradex

ラベル(2)
0 件の賞賛
返信
0 返答(返信)
%3CLINGO-SUB%20id%3D%22lingo-sub-2359396%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Elinux-imx%3A%20include%2Fuapi%2Flinux%2Fipu.h%20%E3%81%A7%E6%A8%99%E6%BA%96%E6%95%B4%E6%95%B0%E5%9E%8B%E3%81%8C%E5%86%8D%E5%AE%9A%E7%BE%A9%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2359396%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AFVerdin%20iMX8MM%E5%90%91%E3%81%91%E3%81%AB%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81Toradex%20BSP%E3%81%AE%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%81%AEBSP%E3%81%AF%E3%80%81%E3%83%A1%E3%82%BF%E3%83%95%E3%83%AA%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6NXP%E8%A3%BDSoC%E3%82%92%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%81%9D%E3%81%93%E3%81%A7%E3%81%AF%E3%80%81NXP%20BSP%206.18.2%E3%81%AB%E6%BA%96%E6%8B%A0%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E6%9B%B4%E6%96%B0%E4%BD%9C%E6%A5%AD%E3%81%8C%E9%80%B2%E3%82%81%E3%82%89%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E7%89%B9%E3%81%AB%E3%80%81imx-gst1.0-plugin%20%E3%81%AF%E7%8F%BE%E5%9C%A8%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%20%22MM_04.10.03_2512_L6.18.2%22%20%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81linux-imx%20%E3%81%8A%E3%82%88%E3%81%B3%20linux-imx-headers%20%E3%81%AF%E7%8F%BE%E5%9C%A8%20lf-6.18.y%20%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3Eimx-gst1.0-plugin%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E9%9A%9Bverdin-imx8mm%20%E7%94%A8%E3%81%AE%20Yocto%2FOE%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%E9%9A%9B%E3%81%AB%E3%80%81%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3CBR%20%2F%3E%20MACHINE%3Dverdin-imx8mm%20bitbake%20imx-gst1.0-plugin%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3E%20%20%7C%20In%20file%20included%20from%20..%2Fsources%2Fimx-gst1.0-plugin-4.10.3%2Bgit%2Flibs%2Fv4l2_core%2Fgstimxv4l2.c%3A29%3A%0A%20%20%7C%20%2Fworkdir%2Foe%2Ftmp%2Fwork%2Farmv8a-mx8mm-tdx-linux%2Fimx-gst1.0-plugin%2F4.10.3%2Bgit%2Frecipe-sysroot%2Fusr%2Finclude%2Fimx%2Flinux%2Fipu.h%3A42%3A17%3A%20error%3A%20two%20or%20more%20data%20types%20in%20declaration%20specifiers%0A%20%20%7C%20%20%20%2042%20%7C%20%23define%20uint8_t%20unsigned%20char%0A%20%20%7C%20%20%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E~~~~~~~%0A%20%20%7C%20%2Fworkdir%2Foe%2Ftmp%2Fwork%2Farmv8a-mx8mm-tdx-linux%2Fimx-gst1.0-plugin%2F4.10.3%2Bgit%2Frecipe-sysroot%2Fusr%2Finclude%2Fimx%2Flinux%2Fipu.h%3A42%3A26%3A%20error%3A%20two%20or%20more%20data%20types%20in%20declaration%20specifiers%0A%20%20%7C%20%20%20%2042%20%7C%20%23define%20uint8_t%20unsigned%20char%0A%20%20%7C%20%20%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E~~~%0A%20%20%7C%20%2Fworkdir%2Foe%2Ftmp%2Fwork%2Farmv8a-mx8mm-tdx-linux%2Fimx-gst1.0-plugin%2F4.10.3%2Bgit%2Frecipe-sysroot%2Fusr%2Finclude%2Fimx%2Flinux%2Fipu.h%3A41%3A18%3A%20error%3A%20two%20or%20more%20data%20types%20in%20declaration%20specifiers%0A%20%20%7C%20%20%20%2041%20%7C%20%23define%20uint16_t%20unsigned%20short%0A%20%20%7C%20%20%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E~~~~~~~%0A%20%20%7C%20%2Fworkdir%2Foe%2Ftmp%2Fwork%2Farmv8a-mx8mm-tdx-linux%2Fimx-gst1.0-plugin%2F4.10.3%2Bgit%2Frecipe-sysroot%2Fusr%2Finclude%2Fimx%2Flinux%2Fipu.h%3A41%3A27%3A%20error%3A%20two%20or%20more%20data%20types%20in%20declaration%20specifiers%0A%20%20%7C%20%20%20%2041%20%7C%20%23define%20uint16_t%20unsigned%20short%0A%20%20%7C%20%20%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E~~~~%0A%20%20%7C%20%2Fworkdir%2Foe%2Ftmp%2Fwork%2Farmv8a-mx8mm-tdx-linux%2Fimx-gst1.0-plugin%2F4.10.3%2Bgit%2Frecipe-sysroot%2Fusr%2Finclude%2Fimx%2Flinux%2Fipu.h%3A40%3A18%3A%20error%3A%20two%20or%20more%20data%20types%20in%20declaration%20specifiers%0A%20%20%7C%20%20%20%2040%20%7C%20%23define%20uint32_t%20unsigned%20int%0A%20%20%7C%20%20%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E~~~~~~~%0A%20%20%7C%20%2Fworkdir%2Foe%2Ftmp%2Fwork%2Farmv8a-mx8mm-tdx-linux%2Fimx-gst1.0-plugin%2F4.10.3%2Bgit%2Frecipe-sysroot%2Fusr%2Finclude%2Fimx%2Flinux%2Fipu.h%3A40%3A27%3A%20error%3A%20two%20or%20more%20data%20types%20in%20declaration%20specifiers%0A%20%20%7C%20%20%20%2040%20%7C%20%23define%20uint32_t%20unsigned%20int%0A%20%20%7C%20%20%20%20%20%20%20%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E~~%0A%0A%5B...%5D%0A%0A%20%20%7C%20ninja%3A%20build%20stopped%3A%20subcommand%20failed.%0A%20%20%7C%20INFO%3A%20autodetecting%20backend%20as%20ninja%0A%20%20%7C%20INFO%3A%20calculating%20backend%20command%20to%20run%3A%20%2Fworkdir%2Foe%2Ftmp%2Fwork%2Farmv8a-mx8mm-tdx-linux%2Fimx-gst1.0-plugin%2F4.10.3%2Bgit%2Frecipe-sysroot-native%2Fusr%2Fbin%2Fninja%20-j%2064%20-v%0A%20%20%7C%20WARNING%3A%20exit%20code%201%20from%20a%20shell%20command.%0A%20%20NOTE%3A%20recipe%20imx-gst1.0-plugin-4.10.3%2Bgit-r0%3A%20task%20do_compile%3A%20Failed%0A%20%20ERROR%3A%20Task%20(%2Fworkdir%2Foe%2Fbuild%2F..%2Flayers%2Fmeta-freescale%2Frecipes-multimedia%2Fgstreamer%2Fimx-gst1.0-plugin_git.bb%3Ado_compile)%20failed%20with%20exit%20code%20'1'%0A%20%20NOTE%3A%20recipe%20gstreamer1.0-plugins-bad-1.26.6.imx-r0%3A%20task%20do_package%3A%20Succeeded%0A%20%20NOTE%3A%20Tasks%20Summary%3A%20Attempted%2010003%20tasks%20of%20which%208796%20didn't%20need%20to%20be%20rerun%20and%201%20failed.%0A%20%20NOTE%3A%20Writing%20buildhistory%0A%20%20NOTE%3A%20Writing%20buildhistory%20took%3A%206%20seconds%0A%20%20%0A%20%20Summary%3A%201%20task%20failed%3A%0A%20%20%20%20%2Fworkdir%2Foe%2Fbuild%2F..%2Flayers%2Fmeta-freescale%2Frecipes-multimedia%2Fgstreamer%2Fimx-gst1.0-plugin_git.bb%3Ado_compile%0A%20%20%20%20%20%20log%3A%20%2Fworkdir%2Foe%2Ftmp%2Fwork%2Farmv8a-mx8mm-tdx-linux%2Fimx-gst1.0-plugin%2F4.10.3%2Bgit%2Ftemp%2Flog.do_compile.827805%0A%20%20Summary%3A%20There%20was%201%20WARNING%20message.%0A%20%20Summary%3A%20There%20was%201%20ERROR%20message%2C%20returning%20a%20non-zero%20exit%20code.%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CBR%20%2F%3E%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81%E3%80%8Cinclude%2Fimx%2Flinux%2Fipu.h%E3%80%8D%E3%81%8C%E3%80%81ipu.h%20%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AB%E3%83%BC%E3%83%89%E3%81%95%E3%82%8C%E3%82%8B%E3%80%8Clinux%2Ftypes.h%E3%80%8D%E3%81%A7%E3%81%99%E3%81%A7%E3%81%AB%20typedef%20%E3%81%A8%E3%81%97%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%9E%8B%E3%82%92%E5%86%8D%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%81%AE%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E7%A9%BA%E9%96%93%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%8C%E4%BB%A5%E5%89%8D%E3%81%AB%E3%81%93%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%82%92%E7%99%BA%E7%94%9F%E3%81%95%E3%81%9B%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%AF%E3%80%81%E3%81%8A%E3%81%9D%E3%82%89%E3%81%8F%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AB%E3%83%BC%E3%83%89%E9%A0%86%E5%BA%8F%E3%81%8C%E7%95%B0%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%81%9F%E3%81%9F%E3%82%81%E3%80%81%E7%B4%94%E7%B2%8B%E3%81%AA%E5%81%B6%E7%84%B6%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%A7%A3%E6%B1%BA%E7%AD%96%E3%81%AF%E6%AF%94%E8%BC%83%E7%9A%84%E7%B0%A1%E5%8D%98%E3%81%9D%E3%81%86%E3%81%AB%E6%80%9D%E3%81%88%E3%82%8B%E3%80%82%E6%97%A2%E3%81%AB%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8Buint*_t%E3%81%AE%E3%83%9E%E3%82%AF%E3%83%AD%E5%AE%9A%E7%BE%A9%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8C%E3%81%B0%E3%81%84%E3%81%84%E3%81%AE%E3%81%A0%E3%80%82%E3%81%93%E3%82%8C%E3%82%89%E3%81%AF%E9%81%8E%E5%8E%BB%E3%81%AE%E6%88%90%E9%95%B7%E9%81%8E%E7%A8%8B%E3%81%A7%E6%AE%8B%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE%E3%81%A0%E3%81%A8%E6%8E%A8%E6%B8%AC%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81Linux%E3%81%AE%E7%92%B0%E5%A2%83%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6%E3%81%AF%E3%81%93%E3%82%8C%E3%82%89%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%99%E3%82%8B%E7%90%86%E7%94%B1%E3%81%AF%E3%81%AA%E3%81%84%E3%81%AF%E3%81%9A%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3Elf-6.18.y%20%E3%82%92%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E3%80%81%E3%83%93%E3%83%AB%E3%83%89%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E9%81%A9%E5%88%87%E3%81%AA%E8%A7%A3%E6%B1%BA%E7%AD%96%E3%81%A8%E6%80%9D%E3%82%8F%E3%82%8C%E3%82%8B%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E6%B7%BB%E4%BB%98%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%81%93%E3%81%AE%E3%83%91%E3%83%83%E3%83%81%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%81%94%E6%84%8F%E8%A6%8B%E3%82%84%E3%80%81%E3%83%91%E3%83%83%E3%83%81%E3%81%AE%E5%B0%8E%E5%85%A5%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%81%94%E6%8F%90%E6%A1%88%E3%82%92%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%82%8C%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%80%81%3CBR%20%2F%3E%E3%82%A2%E3%83%BC%E3%83%8D%E3%82%B9%E3%83%88%20-%20%E3%83%88%E3%83%A9%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2359396%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3ELinux%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EYocto%20Project%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E