lkml.org 
[lkml]   [2004]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] 2.6.4-rc2: scripts/modpost.c

    | (This is is a repost - now with a patch for 2.6.4-rc2).
    |
    | Hi,
    |
    | as I found out, it's impossible to use the build-chain tool scripts/modpost
    | of the 2.6 kernel series to externally build modules from a directory that
    | contains the character sequence '.o'. Weird things happen if you try to do
    | so.
    |
    | With a directory structure like on my system here, building the current DVB
    | driver in '/home/daniel/cvs.linuxtv.org/dvb-kernel/build-2.6i/' generates a
    | file called '/home/daniel/cvs.linuxtv.mod.c' since modpost cuts every
    | filename string at the first occurence of '.o', not only the 'trailing .o',
    | as the comment says.

    The comment and code certainly don't match, and your patch makes sense
    to me. However, I can't reproduce the problem that you describe.

    I built the kernel image and modules in "www.osdl.org/264rc2/build1",
    and all *.mod.c and *.ko ended up there with no problems.
    Then I modified modpost.c (from 2.6.4-rc1, without your patch) to
    print the "stripped" module names (without the trailing ".o")
    and saw a list like this:
    modpost: stripped mod.name=[fs/jfs/jfs]

    so where are the parent directory names that are causing problems
    for you coming from?


    Andrew, I applied the patch and didn't have any problems with
    'make allyesconfig' like you alluded to.


    | Here's the patch for 2.6.4-rc2:
    |
    |
    | --- linux-2.6.4-rc2.orig/scripts/modpost.c 2004-03-04 11:40:21.000000000 +0100
    | +++ linux-2.6.4-rc2/scripts/modpost.c 2004-03-04 11:23:08.000000000 +0100
    | @@ -63,16 +63,16 @@
    | new_module(char *modname)
    | {
    | struct module *mod;
    | - char *p;
    | + int len;
    |
    | mod = NOFAIL(malloc(sizeof(*mod)));
    | memset(mod, 0, sizeof(*mod));
    | mod->name = NOFAIL(strdup(modname));
    |
    | /* strip trailing .o */
    | - p = strstr(mod->name, ".o");
    | - if (p)
    | - *p = 0;
    | + len = strlen(mod->name);
    | + if (len > 2 && mod->name[len-2] == '.' && mod->name[len-1] == 'o')
    | + mod->name[len-2] = 0;
    |
    | /* add to list */
    | mod->next = modules;

    --
    ~Randy
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:01    [W:0.026 / U:58.948 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site