[lkml]   [1999]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Possible ld-so bug.
    In article <>,
    Richard B. Johnson <> wrote:
    >Yes. The install does `mv library library.sav` ; `cp new_library library`.
    >So, In principle, this should work. However it doesn't, apparently
    >because one can only perform one operation at a time so at some instant,
    >there is a new and an old And `mv`, `install`,
    >'cp`, etc. all use these libraries. This would not happen if the library
    >version numbers were different because 'mv'. etc., would always use
    >the it was linked against.

    That _is_ dumb. It should do this (error handling not shown):

    ln library library.sav
    cp new_library
    mv -f library

    That way the existence of 'library' is guaranteed.

    However, this still won't work if you have to update multiple shared
    libraries. If you have libraries A, B, and C, which all depend on
    struct sizes inside each other, and you try to install new A, B, and C
    with different struct sizes, then once you've updated A anything linked
    against B and C will crash. If your installation requires access to A,
    B, and C, then your installation will crash too.

    The answer might be a C program that executes a lot of

    rename("", "library");

    given a master list, after all the '''s have been written.
    That C program would do all the renames itself and therefore keeps the
    old shared library images in RAM while changing the files around on disk.
    The C program would continue until all of the libraries have been replaced,
    and once that is done you can happily run the (statically linked)
    /sbin/ldconfig -v and you're done.
    Zygo Blaxell, Linux Engineer, Corel Corporation, (work), (play). It's my opinion, I tell you! Mine! All MINE!
    Size of 'diff -Nurw [...] winehq corel' as of Wed Feb 17 00:14:01 EST 1999
    Lines/files: In 277 / 3, Out 20653 / 255, Both 20923 / 256

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:50    [W:0.022 / U:3.672 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site