gst-plugins-bad: avtp: how to notify meson to use custom kernel header
John Rama
john.rama01 at gmail.com
Wed Jul 15 18:50:37 UTC 2020
Thank you Nirbheek for your comment.
>
> ```
> Command line: cc -I/usr/src/linux-headers-4.19.0-hoge/include
> /home/makoto/Work/src/gstreamer/gst-build-master/build/meson-private/tmp1wwu5_s0/testfile.c
> -o /home/makoto/Work/src/gstreamer/gst-build-master/build/meson-private/tmp1wwu5_s0/output.obj
> -pipe -
> c -D_FILE_OFFSET_BITS=64 -O0
>
> Code:
> #include <linux/net_tstamp.h>
> void bar(void) {
> sizeof(struct sock_txtime);
> };
> Compiler stdout:
>
> Compiler stderr:
> /home/makoto/Work/src/gstreamer/gst-build-master/build/meson-private/tmp1wwu5_s0/testfile.c:
> In function 'bar':
> /home/makoto/Work/src/gstreamer/gst-build-master/build/meson-private/tmp1wwu5_s0/testfile.c:3:20:
> error: invalid application of 'sizeof' to incomplete type 'struct
> sock_txtime'
> sizeof(struct sock_txtime);
> ^~~~~~
>
> Checking for type "struct sock_txtime" : NO
> ```
First of all, my apology.
There was a typo on specifying the CFLAGS when generating the log file I've attached last mail.
It should be '-I/usr/src/linux-headers-4.19.0-hoge1/include'
Here is the log output with correct CFLAGS.
===================================================
Compiler stderr:
In file included from /usr/src/linux-headers-4.19.0-hoge1/include/linux/kernel.h:7:0,
from /usr/src/linux-headers-4.19.0-hoge1/include/linux/uio.h:12,
from /usr/src/linux-headers-4.19.0-hoge1/include/linux/socket.h:8,
from /usr/src/linux-headers-4.19.0-hoge1/include/linux/net_tstamp.h:14,
from /home/makoto/Work/src/gstreamer/gst-build-master/build3/meson-private/tmp3nzndj9f/testfile.c:1:
/usr/src/linux-headers-4.19.0-hoge1/include/linux/linkage.h:8:25: fatal error: asm/linkage.h: No such file or directory
#include <asm/linkage.h>
^
compilation terminated.
===================================================
With this log info, I realized I should not use kernel header to build the user space app, but should use libc header.
So, in summary, I could build avtp plugin with following steps.(I'm using debian stretch)
----------------------------------------------------------------------------------
(Assuming that your kernel source tree has the version of 4.19.)
1. create linux-libc-dev packge
$make deb-pkg LOCALVERSION=-hoge1 -j10
This will generate linux-libc-dev_4.19.0-hoge1-3_amd64.deb as well as other packages including kernel image and kernel header.
2. install linux-libc-dev package
sudo dpkg -x linux-libc-dev_4.19.0-hoge1-3_amd64.deb /usr/src/linux-libc-dev_4.19.0-hoge1-3/
3. linux/net_tstamp.h of kernel 4.19 has bug. Fix it.
https://patchwork.ozlabs.org/project/buildroot/patch/20181129214730.7225-1-fontaine.fabrice@gmail.com/
- clockid_t clockid; /* reference clockid */
+ __kernel_clockid_t clockid;/* reference clockid */
4. run meson
CFLAGS='-I/usr/src/linux-libc-dev_4.19.0-hoge1-3/usr/include/' meson build
----------------------------------------------------------------------------------
Thanks for everyone for the help. I'm glad to close this thread.
John
More information about the gstreamer-devel
mailing list