gst-plugins-bad: avtp: how to notify meson to use custom kernel header

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

gst-plugins-bad: avtp: how to notify meson to use custom kernel header

John Rama
Hello expert                                                                                            
                                                                                                       
I'm now trying to evalute avtp plugin of gst-plugins-bad, however I can not                            
build avtp plugin successfully because meson can not find "strut sock_txtime"                          
in "linux/net_tstamp.h" of my system.                                                                  
                                                                                                       
I'm using the custom build kernel of 4.19.0 and it's headers are installed at                          
/usr/src/linux-headers-4.19.0                                                                          
                                                                                                       
Question is how can I tell meson to look for /usr/src/linux-headers-4.19.0 ??
                                                                                                       
Really appreciated your help !!

============================================================                                                                
                                                                                                       
# What I tried                                                                                          
  I tried followings, but meson can not detect "strut sock_txtime" in "linux/net_tstamp.h".            
  1. export C_INCLUDE_PATH="/usr/src/linux-headers-4.19.0"                                        
     to add /usr/src/linux-headers-4.19.0 for default search path.                                
      $cc -E  -v -                                                                                      
        ...                                                                                            
        #include <...> search starts here:                                                              
       /usr/src/linux-headers-4.19.0                                                              
       /usr/lib/gcc/x86_64-linux-gnu/6/include                                                          
       /usr/local/include                                                                              
       /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed                                                    
       /usr/include/x86_64-linux-gnu                                                                    
       /usr/include                                                                                    
      End of search list.                                                                              
  2.  add following line in gst-plugins-bad/ext/avtp/meson.build                                        
      include_directories('/usr/src/linux-headers-4.19.0/')                                      
                                                                                                       
# environment                                                                                          
  I'm using master of gst-build.
                                               
  the version of meson and ninja is as following.                                                      
  $meson --version                                                                                      
  0.53.1                                                                                                
  $ ninja --version                                                                                    
  17.7.2                                                                                                
                                                                                                       
# how to build                                                                                          
  $meson build                                                                                          
  $ninja -C build                                                                                      
                                                                                                       
# Log of "meson build"                                                                                  
  |Dependency avtp from subproject subprojects/avtp found: YES 0.1.0                                    
  |Checking for type "struct sock_txtime" : NO                                                          
                                                                                                       
# The code of gst-plugins-bad/ext/avtp/meson.build                                                      
    if avtp_dep.found() and cc.has_type('struct sock_txtime', prefix : '#include <linux/net_tstamp.h>')
       gstavtp = library('gstavtp', avtp_sources,                                                      
       .....                                                                                            
    )                                                                                                  

============================================================
John Rama
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

Desouza, Ederson
Hi,

On Mon, 2020-07-13 at 16:45 -0400, John Rama wrote:

> Hello expert                                                                                            
>                                                                                                        
> I'm now trying to evalute avtp plugin of gst-plugins-bad, however I can not                            
> build avtp plugin successfully because meson can not find "strut sock_txtime"                          
> in "linux/net_tstamp.h" of my system.                                                                  
>                                                                                                        
> I'm using the custom build kernel of 4.19.0 and it's headers are installed at                          
> /usr/src/linux-headers-4.19.0                                                                          
>                                                                                                        
> Question is how can I tell meson to look for /usr/src/linux-headers-4.19.0 ??
>                                                                                                        
> Really appreciated your help !!
>
> ============================================================                                                                
>                                                                                                        
> # What I tried                                                                                          
>   I tried followings, but meson can not detect "strut sock_txtime" in "linux/net_tstamp.h".            
>   1. export C_INCLUDE_PATH="/usr/src/linux-headers-4.19.0"                                        
>      to add /usr/src/linux-headers-4.19.0 for default search path.                                
>       $cc -E  -v -                                                                                      
>         ...                                                                                            
>         #include <...> search starts here:                                                              
>        /usr/src/linux-headers-4.19.0                                                              
>        /usr/lib/gcc/x86_64-linux-gnu/6/include                                                          
>        /usr/local/include                                                                              
>        /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed                                                    
>        /usr/include/x86_64-linux-gnu                                                                    
>        /usr/include                                                                                    
>       End of search list.                                                                              
>   2.  add following line in gst-plugins-bad/ext/avtp/meson.build                                        
>       include_directories('/usr/src/linux-headers-4.19.0/')                                      
>                                                                                                        
> # environment                                                                                          
>   I'm using master of gst-build.
>                                                
>   the version of meson and ninja is as following.                                                      
>   $meson --version                                                                                      
>   0.53.1                                                                                                
>   $ ninja --version                                                                                    
>   17.7.2                                                                                                
>                                                                                                        
> # how to build                                                                                          
>   $meson build

Did you try something like `CFLAGS='-I/usr/src/linux-headers-4.19.0' meson build`?

>                                                                                          
>   $ninja -C build                                                                                      
>                                                                                                        
> # Log of "meson build"                                                                                  
>   |Dependency avtp from subproject subprojects/avtp found: YES 0.1.0                                    
>   |Checking for type "struct sock_txtime" : NO                                                          
>                                                                                                        
> # The code of gst-plugins-bad/ext/avtp/meson.build                                                      
>     if avtp_dep.found() and cc.has_type('struct sock_txtime', prefix : '#include <linux/net_tstamp.h>')
>        gstavtp = library('gstavtp', avtp_sources,                                                      
>        .....                                                                                            
>     )                                                                                                  
>
> ============================================================
> John Rama
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

John Rama
Hello,

On 2020/07/13 19:32, Desouza, Ederson wrote:

> Hi,
>
> On Mon, 2020-07-13 at 16:45 -0400, John Rama wrote:
>> Hello expert                                                                                            
>>                                                                                                        
>> I'm now trying to evalute avtp plugin of gst-plugins-bad, however I can not                            
>> build avtp plugin successfully because meson can not find "strut sock_txtime"                          
>> in "linux/net_tstamp.h" of my system.                                                                  
>>                                                                                                        
>> I'm using the custom build kernel of 4.19.0 and it's headers are installed at                          
>> /usr/src/linux-headers-4.19.0                                                                          
>>                                                                                                        
>> Question is how can I tell meson to look for /usr/src/linux-headers-4.19.0 ??
>>                                                                                                        
>> Really appreciated your help !!
>>
>> ============================================================                                                                
>>                                                                                                        
>> # What I tried                                                                                          
>>   I tried followings, but meson can not detect "strut sock_txtime" in "linux/net_tstamp.h".            
>>   1. export C_INCLUDE_PATH="/usr/src/linux-headers-4.19.0"                                        
>>      to add /usr/src/linux-headers-4.19.0 for default search path.                                
>>       $cc -E  -v -                                                                                      
>>         ...                                                                                            
>>         #include <...> search starts here:                                                              
>>        /usr/src/linux-headers-4.19.0                                                              
>>        /usr/lib/gcc/x86_64-linux-gnu/6/include                                                          
>>        /usr/local/include                                                                              
>>        /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed                                                    
>>        /usr/include/x86_64-linux-gnu                                                                    
>>        /usr/include                                                                                    
>>       End of search list.                                                                              
>>   2.  add following line in gst-plugins-bad/ext/avtp/meson.build                                        
>>       include_directories('/usr/src/linux-headers-4.19.0/')                                      
>>                                                                                                        
>> # environment                                                                                          
>>   I'm using master of gst-build.
>>                                                
>>   the version of meson and ninja is as following.                                                      
>>   $meson --version                                                                                      
>>   0.53.1                                                                                                
>>   $ ninja --version                                                                                    
>>   17.7.2                                                                                                
>>                                                                                                        
>> # how to build                                                                                          
>>   $meson build
>
> Did you try something like `CFLAGS='-I/usr/src/linux-headers-4.19.0' meson build`?
>
Yes, I tried but no success..


>>                                                                                          
>>   $ninja -C build                                                                                      
>>                                                                                                        
>> # Log of "meson build"                                                                                  
>>   |Dependency avtp from subproject subprojects/avtp found: YES 0.1.0                                    
>>   |Checking for type "struct sock_txtime" : NO                                                          
>>                                                                                                        
>> # The code of gst-plugins-bad/ext/avtp/meson.build                                                      
>>     if avtp_dep.found() and cc.has_type('struct sock_txtime', prefix : '#include <linux/net_tstamp.h>')
>>        gstavtp = library('gstavtp', avtp_sources,                                                      
>>        .....                                                                                            
>>     )                                                                                                  
>>
>> ============================================================
>> John Rama
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

Desouza, Ederson
On Tue, 2020-07-14 at 15:28 -0400, John Rama wrote:
> Hello,
>
Hi,

> On 2020/07/13 19:32, Desouza, Ederson wrote:
> > Hi,
> >
> > On Mon, 2020-07-13 at 16:45 -0400, John Rama wrote:
> > > Hello expert                                                                                            
> > >                                                                                                        
> > > I'm now trying to evalute avtp plugin of gst-plugins-bad, however I can not                            
> > > build avtp plugin successfully because meson can not find "strut sock_txtime"                          
> > > in "linux/net_tstamp.h" of my system.                                                                  
> > >                                                                                                        
> > > I'm using the custom build kernel of 4.19.0 and it's headers are installed at                          
> > > /usr/src/linux-headers-4.19.0                                                                          
> > >                                                                                                        
> > > Question is how can I tell meson to look for /usr/src/linux-headers-4.19.0 ??
> > >                                                                                                        
> > > Really appreciated your help !!
> > >
> > > ============================================================                                                                
> > >                                                                                                        
> > > # What I tried                                                                                          
> > >   I tried followings, but meson can not detect "strut sock_txtime" in "linux/net_tstamp.h".            
> > >   1. export C_INCLUDE_PATH="/usr/src/linux-headers-4.19.0"                                        
> > >      to add /usr/src/linux-headers-4.19.0 for default search path.                                
> > >       $cc -E  -v -                                                                                      
> > >         ...                                                                                            
> > >         #include <...> search starts here:                                                              
> > >        /usr/src/linux-headers-4.19.0                                                              
> > >        /usr/lib/gcc/x86_64-linux-gnu/6/include                                                          
> > >        /usr/local/include                                                                              
> > >        /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed                                                    
> > >        /usr/include/x86_64-linux-gnu                                                                    
> > >        /usr/include                                                                                    
> > >       End of search list.                                                                              
> > >   2.  add following line in gst-plugins-bad/ext/avtp/meson.build                                        
> > >       include_directories('/usr/src/linux-headers-4.19.0/')                                      
> > >                                                                                                        
> > > # environment                                                                                          
> > >   I'm using master of gst-build.
> > >                                                
> > >   the version of meson and ninja is as following.                                                      
> > >   $meson --version                                                                                      
> > >   0.53.1                                                                                                
> > >   $ ninja --version                                                                                    
> > >   17.7.2                                                                                                
> > >                                                                                                        
> > > # how to build                                                                                          
> > >   $meson build
> >
> > Did you try something like `CFLAGS='-I/usr/src/linux-headers-4.19.0' meson build`?
> >
> Yes, I tried but no success..

Could you please share the meson-log.txt for this case, or at least the
relevant part, where it tries to compile the check for the struct?

>
>
> > >                                                                                          
> > >   $ninja -C build                                                                                      
> > >                                                                                                        
> > > # Log of "meson build"                                                                                  
> > >   |Dependency avtp from subproject subprojects/avtp found: YES 0.1.0                                    
> > >   |Checking for type "struct sock_txtime" : NO                                                          
> > >                                                                                                        
> > > # The code of gst-plugins-bad/ext/avtp/meson.build                                                      
> > >     if avtp_dep.found() and cc.has_type('struct sock_txtime', prefix : '#include <linux/net_tstamp.h>')
> > >        gstavtp = library('gstavtp', avtp_sources,                                                      
> > >        .....                                                                                            
> > >     )                                                                                                  
> > >
> > > ============================================================
> > > John Rama
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > [hidden email]
> > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

John Rama
hi

On 2020/07/14 16:44, Desouza, Ederson wrote:

> On Tue, 2020-07-14 at 15:28 -0400, John Rama wrote:
>> Hello,
>>
> Hi,
>
>> On 2020/07/13 19:32, Desouza, Ederson wrote:
>>> Hi,
>>>
>>> On Mon, 2020-07-13 at 16:45 -0400, John Rama wrote:
>>>> Hello expert                                                                                            
>>>>                                                                                                        
>>>> I'm now trying to evalute avtp plugin of gst-plugins-bad, however I can not                            
>>>> build avtp plugin successfully because meson can not find "strut sock_txtime"                          
>>>> in "linux/net_tstamp.h" of my system.                                                                  
>>>>                                                                                                        
>>>> I'm using the custom build kernel of 4.19.0 and it's headers are installed at                          
>>>> /usr/src/linux-headers-4.19.0                                                                          
>>>>                                                                                                        
>>>> Question is how can I tell meson to look for /usr/src/linux-headers-4.19.0 ??
>>>>                                                                                                        
>>>> Really appreciated your help !!
>>>>
>>>> ============================================================                                                                
>>>>                                                                                                        
>>>> # What I tried                                                                                          
>>>>   I tried followings, but meson can not detect "strut sock_txtime" in "linux/net_tstamp.h".            
>>>>   1. export C_INCLUDE_PATH="/usr/src/linux-headers-4.19.0"                                        
>>>>      to add /usr/src/linux-headers-4.19.0 for default search path.                                
>>>>       $cc -E  -v -                                                                                      
>>>>         ...                                                                                            
>>>>         #include <...> search starts here:                                                              
>>>>        /usr/src/linux-headers-4.19.0                                                              
>>>>        /usr/lib/gcc/x86_64-linux-gnu/6/include                                                          
>>>>        /usr/local/include                                                                              
>>>>        /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed                                                    
>>>>        /usr/include/x86_64-linux-gnu                                                                    
>>>>        /usr/include                                                                                    
>>>>       End of search list.                                                                              
>>>>   2.  add following line in gst-plugins-bad/ext/avtp/meson.build                                        
>>>>       include_directories('/usr/src/linux-headers-4.19.0/')                                      
>>>>                                                                                                        
>>>> # environment                                                                                          
>>>>   I'm using master of gst-build.
>>>>                                                
>>>>   the version of meson and ninja is as following.                                                      
>>>>   $meson --version                                                                                      
>>>>   0.53.1                                                                                                
>>>>   $ ninja --version                                                                                    
>>>>   17.7.2                                                                                                
>>>>                                                                                                        
>>>> # how to build                                                                                          
>>>>   $meson build
>>>
>>> Did you try something like `CFLAGS='-I/usr/src/linux-headers-4.19.0' meson build`?
>>>
>> Yes, I tried but no success..
>
> Could you please share the meson-log.txt for this case, or at least the
> relevant part, where it tries to compile the check for the struct?
>
Thanks for your response.

Sure.

This is the result of
$CFLAGS='-I/usr/src/linux-headers-4.19.0-hoge/include' meson build
(Actually linux/net_tstamp.h is located under /usr/src/linux-headers-4.19.0-hoge/include)


Just FYI.
I also asking the same question at meson git issue.
https://github.com/mesonbuild/meson/issues/7456


>>
>>
>>>>                                                                                          
>>>>   $ninja -C build                                                                                      
>>>>                                                                                                        
>>>> # Log of "meson build"                                                                                  
>>>>   |Dependency avtp from subproject subprojects/avtp found: YES 0.1.0                                    
>>>>   |Checking for type "struct sock_txtime" : NO                                                          
>>>>                                                                                                        
>>>> # The code of gst-plugins-bad/ext/avtp/meson.build                                                      
>>>>     if avtp_dep.found() and cc.has_type('struct sock_txtime', prefix : '#include <linux/net_tstamp.h>')
>>>>        gstavtp = library('gstavtp', avtp_sources,                                                      
>>>>        .....                                                                                            
>>>>     )                                                                                                  
>>>>
>>>> ============================================================
>>>> John Rama
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> [hidden email]
>>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

meson-log.txt (2M) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

John Rama
In reply to this post by Desouza, Ederson
Hi Desouza

On 2020/07/14 16:44, Desouza, Ederson wrote:

> On Tue, 2020-07-14 at 15:28 -0400, John Rama wrote:
>> Hello,
>>
> Hi,
>
>> On 2020/07/13 19:32, Desouza, Ederson wrote:
>>> Hi,
>>>
>>> On Mon, 2020-07-13 at 16:45 -0400, John Rama wrote:
>>>> Hello expert                                                                                            
>>>>                                                                                                        
>>>> I'm now trying to evalute avtp plugin of gst-plugins-bad, however I can not                            
>>>> build avtp plugin successfully because meson can not find "strut sock_txtime"                          
>>>> in "linux/net_tstamp.h" of my system.                                                                  
>>>>                                                                                                        
>>>> I'm using the custom build kernel of 4.19.0 and it's headers are installed at                          
>>>> /usr/src/linux-headers-4.19.0                                                                          
>>>>                                                                                                        
>>>> Question is how can I tell meson to look for /usr/src/linux-headers-4.19.0 ??
>>>>                                                                                                        
>>>> Really appreciated your help !!
>>>>
>>>> ============================================================                                                                
>>>>                                                                                                        
>>>> # What I tried                                                                                          
>>>>   I tried followings, but meson can not detect "strut sock_txtime" in "linux/net_tstamp.h".            
>>>>   1. export C_INCLUDE_PATH="/usr/src/linux-headers-4.19.0"                                        
>>>>      to add /usr/src/linux-headers-4.19.0 for default search path.                                
>>>>       $cc -E  -v -                                                                                      
>>>>         ...                                                                                            
>>>>         #include <...> search starts here:                                                              
>>>>        /usr/src/linux-headers-4.19.0                                                              
>>>>        /usr/lib/gcc/x86_64-linux-gnu/6/include                                                          
>>>>        /usr/local/include                                                                              
>>>>        /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed                                                    
>>>>        /usr/include/x86_64-linux-gnu                                                                    
>>>>        /usr/include                                                                                    
>>>>       End of search list.                                                                              
>>>>   2.  add following line in gst-plugins-bad/ext/avtp/meson.build                                        
>>>>       include_directories('/usr/src/linux-headers-4.19.0/')                                      
>>>>                                                                                                        
>>>> # environment                                                                                          
>>>>   I'm using master of gst-build.
>>>>                                                
>>>>   the version of meson and ninja is as following.                                                      
>>>>   $meson --version                                                                                      
>>>>   0.53.1                                                                                                
>>>>   $ ninja --version                                                                                    
>>>>   17.7.2                                                                                                
>>>>                                                                                                        
>>>> # how to build                                                                                          
>>>>   $meson build
>>>
>>> Did you try something like `CFLAGS='-I/usr/src/linux-headers-4.19.0' meson build`?
>>>
>> Yes, I tried but no success..
>
> Could you please share the meson-log.txt for this case, or at least the
> relevant part, where it tries to compile the check for the struct?
>
Thanks for your response.

Sure.

I attached it. This is the result of
$CFLAGS='-I/usr/src/linux-headers-4.19.0-hoge/include' meson build
(Actually linux/net_tstamp.h is located under /usr/src/linux-headers-4.19.0-hoge/include)

Just FYI.
I also asking the same question at meson git issue.
https://github.com/mesonbuild/meson/issues/7456


>>
>>
>>>>                                                                                          
>>>>   $ninja -C build                                                                                      
>>>>                                                                                                        
>>>> # Log of "meson build"                                                                                  
>>>>   |Dependency avtp from subproject subprojects/avtp found: YES 0.1.0                                    
>>>>   |Checking for type "struct sock_txtime" : NO                                                          
>>>>                                                                                                        
>>>> # The code of gst-plugins-bad/ext/avtp/meson.build                                                      
>>>>     if avtp_dep.found() and cc.has_type('struct sock_txtime', prefix : '#include <linux/net_tstamp.h>')
>>>>        gstavtp = library('gstavtp', avtp_sources,                                                      
>>>>        .....                                                                                            
>>>>     )                                                                                                  
>>>>
>>>> ============================================================
>>>> John Rama
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> [hidden email]
>>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

meson-log.txt.gz (271K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

Nirbheek Chauhan
On Wed, Jul 15, 2020 at 4:00 AM John Rama <[hidden email]> wrote:

> >>> Did you try something like `CFLAGS='-I/usr/src/linux-headers-4.19.0' meson build`?
> >>>
> >> Yes, I tried but no success..
> >
> > Could you please share the meson-log.txt for this case, or at least the
> > relevant part, where it tries to compile the check for the struct?
> >
> Sure.
>
> I attached it. This is the result of
> $CFLAGS='-I/usr/src/linux-headers-4.19.0-hoge/include' meson build
> (Actually linux/net_tstamp.h is located under /usr/src/linux-headers-4.19.0-hoge/include)
>

This is the relevant part:

```
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
```

That command line looks correct. The code is also correct since it
detects the struct correctly on my system. So this is not a meson
issue, really. Need to figure out what gcc is doing. Try saving that
code into a file called testfile.c and run the compiler check by hand:

cc -I/usr/src/linux-headers-4.19.0-hoge/include testfile.c -o
output.obj -pipe -c -D_FILE_OFFSET_BITS=64 -O0

It should fail in the same way. Then you need to figure out whether
gcc is including the right file or not. One way is by debugging the
include order by adding -v:

cc -v -I/usr/src/linux-headers-4.19.0-hoge/include testfile.c -o
output.obj -pipe -c -D_FILE_OFFSET_BITS=64 -O0

Maybe try using -isystem instead of -I, etc. If that doesn't help, you
can edit the include files and add #message directives to figure out
what's happening.

I will close that meson issue since it's not a meson bug.

Cheers,
Nirbheek
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

John Rama
In reply to this post by Desouza, Ederson
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@.../
   - 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


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

Desouza, Ederson
Hi,

On Wed, 2020-07-15 at 14:50 -0400, John Rama wrote:

> 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@.../
>    - 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
> ----------------------------------------------------------------------------------
>

Glad that you managed to solve the issue - but this hint may be useful
for the next time:  

`make INSTALL_HDR_PATH=<path_where_to_install_headers> headers_install`

On the Linux source. It should install the appropriate kernel headers
for the kernel source you have.
Then, with CFLAGS='-I<path_where_to_install_headers>/include',
everything should be fine.

> Thanks for everyone for the help. I'm glad to close this thread.
>
> John
>
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: how to notify meson to use custom kernel header

John Rama
Hi Desouza,

>
> Glad that you managed to solve the issue - but this hint may be useful
> for the next time:  
>
> `make INSTALL_HDR_PATH=<path_where_to_install_headers> headers_install`
>
> On the Linux source. It should install the appropriate kernel headers
> for the kernel source you have.
> Then, with CFLAGS='-I<path_where_to_install_headers>/include',
> everything should be fine.
>

Great thanks for your feedback.
I did not know that !!
I've tried and it's really quick. You do not have to compile kernel.

Thanks again.

John
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel