Re: cron job: media_tree daily build: ERRORS: help needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed June 20 2012 08:19:40 Hans Verkuil wrote:
> On 19/06/12 21:41, Peter Senna Tschudin wrote:
> > Full diff:
> > http://pastebin.com/BJS2EXcH
> >
> > On Tue, Jun 19, 2012 at 4:39 PM, Peter Senna Tschudin
> > <peter.senna@xxxxxxxxx>  wrote:
> >> Hans,
> >>
> >> I've:
> >> [peter@ace tmp]$ diff linux-2.6.35.13/scripts/mod/file2alias.c
> >> linux-3.4.3/scripts/mod/file2alias.c
> >>
> >> And found:
> >> 727a840
> >>> ADD_TO_DEVTABLE("i2c", struct i2c_device_id, do_i2c_entry);
> >>
> >> This line only exists on 3.4.3 version of file2alias.c. Isn't this why
> >> it successfully compile with newer Kernel?
> 
> That looks very promising! I never thought to look for differences in file2alias.c.
> I'll try this later this week.

That was a great clue: the fix was commit e88aa7bbbe3046a125ea1936b16bb921cc9c6349:

commit e88aa7bbbe3046a125ea1936b16bb921cc9c6349
Author: David Miller <davem@xxxxxxxxxxxxx>
Date:   Thu Apr 12 14:37:30 2012 -0400

    Fix modpost failures in fedora 17
    
    The symbol table on x86-64 starts to have entries that have names
    like:
    
    _GLOBAL__sub_I_65535_0___mod_x86cpu_device_table
    
    They are of type STT_FUNCTION and this one had a length of 18.  This
    matched the device ID validation logic and it barfed because the
    length did not meet the device type's criteria.
    
    --------------------
    FATAL: arch/x86/crypto/aesni-intel: sizeof(struct x86cpu_device_id)=16 is not a modulo of the size of section __mod_x86cpu_device_table=18.
    Fix definition of struct x86cpu_device_id in mod_devicetable.h
    --------------------
    
    These are some kind of compiler tool internal stuff being emitted and
    not something we want to inspect in modpost's device ID table
    validation code.
    
    So skip the symbol if it is not of type STT_OBJECT.
    
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
    Signed-off-by: Michal Marek <mmarek@xxxxxxx>

diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 8e730cc..44ddaa5 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -1100,6 +1100,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
        if (!sym->st_shndx || get_secindex(info, sym) >= info->num_sections)
                return;
 
+       /* We're looking for an object */
+       if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT)
+               return;
+
        /* All our symbols are of form <prefix>__mod_XXX_device_table. */
        name = strstr(symname, "__mod_");
        if (!name)

So probably because of the new compiler file2alias was misidentifying symbol table
entries.

I've applied this fix to all the affected kernels and hopefully today's daily build
will work again.

Regards,

	Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux