Can/How to check (AIX) OS compatibility for an executable - Aix

This is a discussion on Can/How to check (AIX) OS compatibility for an executable - Aix ; AIX guarantees binary upward compatibility. How can an executable be checked for os-level compatibility? Example: Software is compiled and linked on AIX 5.3.0. This executable will run on 5.3.0 and upwards. Not on lower level AIX releases. Can the os-level ...

+ Reply to Thread
Results 1 to 4 of 4

Thread: Can/How to check (AIX) OS compatibility for an executable

  1. Can/How to check (AIX) OS compatibility for an executable


    AIX guarantees binary upward compatibility. How can an executable be
    checked for os-level compatibility?

    Example: Software is compiled and linked on AIX 5.3.0. This executable
    will run on 5.3.0 and upwards. Not on lower level AIX releases. Can
    the os-level requirement be checked based on the executable itself?


    Bernard Dhooghe

  2. Re: Can/How to check (AIX) OS compatibility for an executable

    Bernard Dhooghe wrote:
    > AIX guarantees binary upward compatibility. How can an executable be
    > checked for os-level compatibility?


    Other than symbol resolution, it can't.

    > Example: Software is compiled and linked on AIX 5.3.0. This executable
    > will run on 5.3.0 and upwards. Not on lower level AIX releases. Can
    > the os-level requirement be checked based on the executable itself?


    No.

    --
    -------------------------------------
    http://www.photo.net/photos/garyrhook
    Vocatus atque non vocatus deus aderit

  3. Re: Can/How to check (AIX) OS compatibility for an executable

    On Thu, 3 Jan 2008, Bernard Dhooghe wrote:

    >
    > AIX guarantees binary upward compatibility. How can an executable be
    > checked for os-level compatibility?
    >
    > Example: Software is compiled and linked on AIX 5.3.0. This executable
    > will run on 5.3.0 and upwards. Not on lower level AIX releases. Can
    > the os-level requirement be checked based on the executable itself?
    >
    >
    > Bernard Dhooghe
    >


    Send me the output from 'dump -TupvX32_64 _executable_file_name'. I can
    determine which level of bos.rte.libc is required to run the program.
    The only symbols I check are from libc, I don't track the symbols in
    other archives. For example

    fgetpwent first appeared in bos.rte.libc.4.3.3.27
    ___memcpy first appeared in bos.rte.libc.5.1.0.25
    getroles first appeared in bos.rte.libc.6.1.0.1

    If your file has no libc symbols from my data file, your program will
    probably run on AIX 4.3.

    On my home system (5200-10-04-0750) I run 'chkprereq -v /usr/bin/ls'

    PREREQ for /usr/bin/ls is ___memset libc [05.01.0000.0025]
    PREREQ for /usr/bin/ls is ___memmove libc [05.01.0000.0025]
    *coreq bos.rte.libc 5.1.0.25

    I can the copy /bin/ls to a 5.1 system and it runs.

    I use this to automatically determine AIX dependents when I build lpp
    packages. If I have the executable it also shows which AIX filesets are
    required to run it.

    chkprereq -v /usr/local/bin/xpdf
    PREREQ for /usr/local/bin/xpdf is ___bzero libc [05.01.0000.0025]
    PREREQ for /usr/local/bin/xpdf is ___memset libc [05.01.0000.0025]
    PREREQ for /usr/local/bin/xpdf is ___memmove libc [05.01.0000.0025]
    PREREQ for /usr/local/bin/xpdf is ___fill libc [05.01.0000.0025]
    PREREQ for /usr/local/bin/xpdf is mkstemp64 libc [04.03.0003.0093]
    PREREQ for /usr/local/bin/xpdf is X11.base.lib [/usr/lib/libXt.a]
    PREREQ for /usr/local/bin/xpdf is X11.motif.lib [/usr/lib/libXm.a]
    PREREQ for /usr/local/bin/xpdf is X11.base.lib [/usr/lib/libX11.a]
    PREREQ for /usr/local/bin/xpdf is uw_freetype.rte [/usr/local/lib/libfreetype.a]
    *coreq X11.base.lib
    *coreq X11.motif.lib
    *coreq bos.rte.libc 5.1.0.25
    *coreq uw_freetype.rte

  4. Re: Can/How to check (AIX) OS compatibility for an executable

    On Jan 8, 5:11 am, Ron Hosler wrote:
    > On Thu, 3 Jan 2008, Bernard Dhooghe wrote:
    >
    > > AIX guarantees binary upward compatibility. How can an executable be
    > > checked for os-level compatibility?

    >
    > > Example: Software is compiled and linked on AIX 5.3.0. This executable
    > > will run on 5.3.0 and upwards. Not on lower level AIX releases. Can
    > > the os-level requirement be checked based on the executable itself?

    >
    > > Bernard Dhooghe

    >
    > Send me the output from 'dump -TupvX32_64 _executable_file_name'. I can
    > determine which level of bos.rte.libc is required to run the program.
    > The only symbols I check are from libc, I don't track the symbols in
    > other archives. For example
    >
    > fgetpwent first appeared in bos.rte.libc.4.3.3.27
    > ___memcpy first appeared in bos.rte.libc.5.1.0.25
    > getroles first appeared in bos.rte.libc.6.1.0.1
    >
    > If your file has no libc symbols from my data file, your program will
    > probably run on AIX 4.3.
    >
    > On my home system (5200-10-04-0750) I run 'chkprereq -v /usr/bin/ls'
    >
    > PREREQ for /usr/bin/ls is ___memset libc [05.01.0000.0025]
    > PREREQ for /usr/bin/ls is ___memmove libc [05.01.0000.0025]
    > *coreq bos.rte.libc 5.1.0.25
    >
    > I can the copy /bin/ls to a 5.1 system and it runs.
    >
    > I use this to automatically determine AIX dependents when I build lpp
    > packages. If I have the executable it also shows which AIX filesets are
    > required to run it.
    >
    > chkprereq -v /usr/local/bin/xpdf
    > PREREQ for /usr/local/bin/xpdf is ___bzero libc [05.01.0000.0025]
    > PREREQ for /usr/local/bin/xpdf is ___memset libc [05.01.0000.0025]
    > PREREQ for /usr/local/bin/xpdf is ___memmove libc [05.01.0000.0025]
    > PREREQ for /usr/local/bin/xpdf is ___fill libc [05.01.0000.0025]
    > PREREQ for /usr/local/bin/xpdf is mkstemp64 libc [04.03.0003.0093]
    > PREREQ for /usr/local/bin/xpdf is X11.base.lib [/usr/lib/libXt.a]
    > PREREQ for /usr/local/bin/xpdf is X11.motif.lib [/usr/lib/libXm.a]
    > PREREQ for /usr/local/bin/xpdf is X11.base.lib [/usr/lib/libX11.a]
    > PREREQ for /usr/local/bin/xpdf is uw_freetype.rte [/usr/local/lib/libfreetype.a]
    > *coreq X11.base.lib
    > *coreq X11.motif.lib
    > *coreq bos.rte.libc 5.1.0.25
    > *coreq uw_freetype.rte


    Thank you for explaining how to tackle this. I'll send an output
    result of the dump.

    If libraries are involved (not executables), is there a similar
    approach possible?

    Bernard Dhooghe



+ Reply to Thread