Skip to content
  • Andrew Deason's avatar
    8900c204
    util/osdep: Avoid madvise proto on modern Solaris · 8900c204
    Andrew Deason authored
    
    
    On older Solaris releases (before Solaris 11), we didn't get a
    prototype for madvise, and so util/osdep.c provides its own prototype.
    Some time between the public Solaris 11.4 release and Solaris 11.4.42
    CBE, we started getting an madvise prototype that looks like this:
    
        extern int madvise(void *, size_t, int);
    
    which conflicts with the prototype in util/osdeps.c. Instead of always
    declaring this prototype, check if we're missing the madvise()
    prototype, and only declare it ourselves if the prototype is missing.
    Move the prototype to include/qemu/osdep.h, the normal place to handle
    platform-specific header quirks.
    
    The 'missing_madvise_proto' meson check contains an obviously wrong
    prototype for madvise. So if that code compiles and links, we must be
    missing the actual prototype for madvise.
    
    Signed-off-by: default avatarAndrew Deason <adeason@sinenomine.net>
    Message-id: 20220316035227.3702-2-adeason@sinenomine.net
    Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    8900c204
    util/osdep: Avoid madvise proto on modern Solaris
    Andrew Deason authored
    
    
    On older Solaris releases (before Solaris 11), we didn't get a
    prototype for madvise, and so util/osdep.c provides its own prototype.
    Some time between the public Solaris 11.4 release and Solaris 11.4.42
    CBE, we started getting an madvise prototype that looks like this:
    
        extern int madvise(void *, size_t, int);
    
    which conflicts with the prototype in util/osdeps.c. Instead of always
    declaring this prototype, check if we're missing the madvise()
    prototype, and only declare it ourselves if the prototype is missing.
    Move the prototype to include/qemu/osdep.h, the normal place to handle
    platform-specific header quirks.
    
    The 'missing_madvise_proto' meson check contains an obviously wrong
    prototype for madvise. So if that code compiles and links, we must be
    missing the actual prototype for madvise.
    
    Signed-off-by: default avatarAndrew Deason <adeason@sinenomine.net>
    Message-id: 20220316035227.3702-2-adeason@sinenomine.net
    Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Loading