[MacPorts] #31742: librsync doesn't correctly export inlined functions when compiled with clang (was: rdiff-backup doesn't work.)

MacPorts noreply at macports.org
Fri Dec 23 07:32:12 PST 2011


#31742: librsync doesn't correctly export inlined functions when compiled with
clang
---------------------------+------------------------------------------------
  Reporter:  mzch@…        |       Owner:  perry@…           
      Type:  defect        |      Status:  closed            
  Priority:  Normal        |   Milestone:                    
 Component:  ports         |     Version:  2.0.3             
Resolution:  fixed         |    Keywords:                    
      Port:  librsync      |  
---------------------------+------------------------------------------------
Changes (by cal@…):

  * status:  new => closed
  * resolution:  => fixed
  * port:  rdiff-backup => librsync


Comment:

 The problem is related to whether you use gcc or clang:

 GCC by default compiles GNU89, which is C89 with some GNU extensions. C89
 doesn't have inline, but GNU89 adds it. C99, which is what clang compiles
 by default, however, _has_ a specification for the inline keyword. GNU89's
 interpretation of the inline keyword differs from the one specified in
 C99, which is why this problem occurs.

 For more information, read
 http://clang.llvm.org/compatibility.html#inline.

 A working solution is to drop the inline keyword whenever librsync is
 compiled with clang and let the compiler figure out, whether it should
 inline the function or not. This is what I have done in r88255.

-- 
Ticket URL: <https://trac.macports.org/ticket/31742#comment:8>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list