Ticket #6684: clang-libtool.patch

File clang-libtool.patch, 1.8 KB (added by Bruno Santos <bsantos@…>, 11 years ago)
  • tools/build/v2/tools/clang-darwin.jam

    diff --git a/tools/build/v2/tools/clang-darwin.jam b/tools/build/v2/tools/clang-darwin.jam
    index e43d933..b44fbca 100644
    a b actions compile.c++  
    118118
    119119flags clang-darwin ARFLAGS <archiveflags> ;
    120120
    121 # Default value. Mostly for the sake of clang-linux
    122 # that inherits from gcc, but does not has the same
    123 # logic to set the .AR variable. We can put the same
    124 # logic in clang-linux, but that's hardly worth the trouble
    125 # as on Linux, 'ar' is always available.
    126 .AR = ar ;
    127 
    128 rule archive ( targets * : sources * : properties * )
    129 {
    130   # Always remove archive and start again. Here's rationale from
    131   # Andre Hentz:
    132   #
    133   # I had a file, say a1.c, that was included into liba.a.
    134   # I moved a1.c to a2.c, updated my Jamfiles and rebuilt.
    135   # My program was crashing with absurd errors.
    136   # After some debugging I traced it back to the fact that a1.o was *still*
    137   # in liba.a
    138   #
    139   # Rene Rivera:
    140   #
    141   # Originally removing the archive was done by splicing an RM
    142   # onto the archive action. That makes archives fail to build on NT
    143   # when they have many files because it will no longer execute the
    144   # action directly and blow the line length limit. Instead we
    145   # remove the file in a different action, just before the building
    146   # of the archive.
    147   #
    148   local clean.a = $(targets[1])(clean) ;
    149   TEMPORARY $(clean.a) ;
    150   NOCARE $(clean.a) ;
    151   LOCATE on $(clean.a) = [ on $(targets[1]) return $(LOCATE) ] ;
    152   DEPENDS $(clean.a) : $(sources) ;
    153   DEPENDS $(targets) : $(clean.a) ;
    154   common.RmTemps $(clean.a) : $(targets) ;
    155 }
     121.LIBTOOL = libtool ;
    156122
    157123actions piecemeal archive
    158124{
    159   "$(.AR)" $(AROPTIONS) rc "$(<)" "$(>)"
    160   "ranlib" -cs "$(<)"
     125  "$(.LIBTOOL)" -static -o "$(<:T)"  $(ARFLAGS)  "$(>:T)"
    161126}
    162127
    163128flags clang-darwin.link USER_OPTIONS <linkflags> ;