[LITMUS^RT] LITMUS^RT Compilation

Björn Brandenburg bbb at mpi-sws.org
Mon Jan 25 23:47:38 CET 2016


> On 25 Jan 2016, at 08:50, Pratyush Patel <pratyushpatel.1995 at gmail.com> wrote:
> 
> This may be unrelated to LITMUS^RT and is perhaps due to something I
> am failing to notice, or a very unlikely Linux compilation bug, but I
> decided to post it here as the error only occurs when the LITMUS^RT
> patch is applied to Linux 4.1.3 while keeping the configuration same.
> 
> As for background, I am trying out the latest stable LITMUS^RT patch
> (2015.1), by compiling the kernel on Ubuntu 15.10. I ran into a
> compilation error while running "make modules", as attached in this
> email. After some browsing on the mailing-list archives, I noticed the
> same compilation error was reported here:
> 
> https://lists.litmus-rt.org/pipermail/litmus-dev/2015/001177.html
> 
> However, I am able to successfully compile the base Linux kernel 4.1.3
> using essentially the same config, and I have attached the config
> files diff for reference. Curiously, this config does not result in
> the stdout message,
> 
> CC[M]    drivers/media/usb/as102/as102_usb_drv.o
> 
> during the make process of 4.1.3, but does so after the patch,
> indicating that somehow... the same module is not compiled for the
> base kernel with the same config. I understand that the LITMUS patch
> does not make changes to this specific driver module, but any ideas as
> to what might be causing this strange behaviour?
> 
> I believe it may be of relevance to mention that disabling
> CONFIG_DVB_AS102 and CONFIG_DVB_AS102_FE lets me compile and install
> LITMUS^RT successfully. Any insight would be much appreciated!

Hi Pratyush,

I took a look at the code in question, reproduced below:

>         if (recv_buf != NULL) {                                         
> #ifdef TRACE                                                            
>                 dev_dbg(bus_adap->usb_dev->dev,                         
>                         "want to read: %d bytes\n", recv_buf_len);      
> #endif                                                                  

The problem is that the code is somehow pulling in our TRACE() debugging macro, which then makes the #ifdef evaluate to true. Classic result of C's lack of namespaces…

You could just hack in an "#undef TRACE" at the top of the file.

Or disable the module, given that it’s the driver for "Abilis Systems Single DVB-T Receiver” (unless you wanted to watch TV with LITMUS^RT… ;-).

- Björn





More information about the litmus-dev mailing list