Packing pragmas in MIT's gssapi.h header file break ABI compatibility
    Simon Wilkinson 
    simon at sxw.org.uk
       
    Thu Dec  9 15:21:38 EST 2010
    
    
  
MIT's gssapi.h header file contains the following
#  if TARGET_OS_MAC
#    pragma pack(2, push)
#  endif
This breaks ABI compatibility for callers into the GSSAPI library on  
Mac OS X - it means that programs which attempt to dynamically locate  
a suitable GSSAPI library must know how the library they're linking  
against has been built.
It causes problems with swapping between MIT and Heimdal libraries at  
link time, and also breaks applications such as OpenSSH which allow  
the use of many alternate GSSAPI libraries depending on linker  
parameters.
This problem came to light because it broke both Firefox and  
Thunderbird on 64bit Mac OS X platforms, which include their own  
gssapi.h so they can build on build hosts that don't have any GSSAPI  
providers installed. David Bienvenu from Mozilla Messaging did the leg  
work in tracking it down.
Cheers,
Simon.
    
    
More information about the krbdev
mailing list