Update of /cvsroot/fink/dists/10.4/stable/main/finkinfo/languages
In directory vz-cvs-3.sog:/tmp/cvs-serv5521

Added Files:
        llvm31.info llvm31.patch 
Log Message:
llvm/clang-3.1, validated on *86*-darwin10


--- NEW FILE: llvm31.info ---
Package: llvm31
Version: 3.1
Revision: 0
Description: Modular and reusable compiler
License: BSD
Maintainer: David Fang <fang...@users.sourceforge.net>

# ccache is only temporary, for accelerating rebuilds
# some cyclic dependency checker script needs python
BuildDepends: cmake (>= 2.8.2-1), python27, fink (>= 0.28), ccache

Source: http://llvm.org/releases/%v/llvm-%v.src.tar.gz
Source-MD5: 16eaa7679f84113f65b12760fdfe4ee1
Source2: http://llvm.org/releases/%v/clang-%v.src.tar.gz
Source2-MD5: 59bf2d3120a3805f27cafda3823caaf8
# libcxxabi is not recommended, lib++ is not ready yet
# SourceN: http://llvm.org/releases/%v/test-suite-%v.src.tar.gz
# SourceN-MD5: 36f72e2a932727fb86338e5939da5eaf

SourceDirectory: llvm-%v.src
BuildDependsOnly: false
UseMaxBuildJobs: true

PatchFile: %n.patch
PatchFile-MD5: 5c8403bbeb71387c6d8624f223d24e82
PatchScript: <<
        #!/bin/sh -ev
        # relocated a few auxiliary directories where they are expected
        pushd tools
        ln -s ../../clang-%v.src ./clang
        popd
#       mv ../test-suite-%v.src projects/test-suite
#       %{default_script}
        sed -e 's|@FINK_PREFIX@|%p|g' %{PatchFile} | patch -p0

        # point hard-coded paths to system g++-4.0.1's C++ includes
        # remove references to g++-4.2.1, never existed in Xcode 2.5
        darwin_vers=`uname -r | cut -d. -f1`
        if test "$darwin_vers" != 10
        then sed -i.orig -e "s|darwin10|darwin$darwin_vers|g" \
                tools/clang/lib/Frontend/InitHeaderSearch.cpp
        fi
        if test ! -d /usr/include/c++/4.0.0
        then sed -i.orig2 -e '/GnuCPlusPlusInclude.*4\.0\.0/,/);/d' \
                tools/clang/lib/Frontend/InitHeaderSearch.cpp
        fi
        if test ! -d /usr/include/c++/4.2.1
        then sed -i.orig2 -e '/GnuCPlusPlusInclude.*4\.2\.1/,/);/d' \
                tools/clang/lib/Frontend/InitHeaderSearch.cpp
        fi

        # darwin8 missing PRIO_DARWIN_BG constant
        test "$darwin_vers" != 8 || \
        sed -i.orig -e '/PRIO_DARWIN_THREAD/s|^|// |' 
tools/clang/tools/libclang/CIndex.cpp

        # explicit template instantiation (needed for 10.7)
        { echo '#include "llvm/Analysis/Dominators.h"' ; \
        echo '#include "llvm/Assembly/Writer.h"' ; \
        grep -e namespace -e EXTERN_TEMPLATE \
                include/llvm/Analysis/Dominators.h | \
        sed -e 's/EXTERN_TEMPLATE_INSTANTIATION(/template /' -e 's/);/;/' ; \
        } > lib/Analysis/Dominators.cpp
        sed -i.orig -e '/EXTERN_TEMPLATE_INSTANTIATION/s|^|// |' 
include/llvm/Analysis/Dominators.h
        sed -i.orig -e '/DomPrinter/a\
  Dominators.cpp\
' lib/Analysis/CMakeLists.txt

        # ld warning about binding of _abort and _raise symbols vs. libSystem's
        # suggests -bind_at_load
#       cp lib/Support/CMakeLists.txt{,.orig}
#       echo "SET_TARGET_PROPERTIES(LLVMSupport PROPERTIES LINK_FLAGS 
-Wl,-bind_at_load)" >> lib/Support/CMakeLists.txt

# needed for gcc-4.6 only
#       sed -i.orig2 -e 's|compatibility_version|dylib_&|' 
tools/clang/tools/libclang/CMakeLists.txt

        # test suite requires newer bash than /bin/bash 2.0 for pipefail
        # test the pipefail option of this shell first
        set -o pipefail || {
        sed -i.orig -e "/bashPath = None/s|None|'%p/bin/bash'|" 
utils/lit/lit/LitConfig.py
        test -x %p/bin/bash || { echo "Error: Fink-built bash >= 3.0 required!" 
; exit 1; }
        }
        # force time limit per test (prefix each command-line)
        sed -i.orig -e "/script\.append/s|ln|'gtimeout 5m '+&|" 
utils/lit/lit/TestRunner.py
        # projects/test-suite expects built llvm/clang to have been configured
        # but sadly, we used cmake; don't include $llvmobjdir/Makefile.config
        # TODO: replace cmake build with autoconf'd build
        # sed -i.orig -e 's|HAS_LLVM := 1|HAS_LLVM := 0|' 
projects/test-suite/Makefile.config.in
<<
CompileScript: <<
        #!/bin/sh -ev
        # just always build these archs
        case "%m" in
        powerpc*) CMAKE_OPTIONS="-DLLVM_TARGETS_TO_BUILD=PowerPC" ;;
        ppc*) CMAKE_OPTIONS="-DLLVM_TARGETS_TO_BUILD=PowerPC" ;;
        i386*) CMAKE_OPTIONS="-DLLVM_TARGETS_TO_BUILD=X86" ;;
        x86*) CMAKE_OPTIONS="-DLLVM_TARGETS_TO_BUILD=X86" ;;
        esac
        echo "Target option: $CMAKE_OPTIONS"
        # CMAKE_OPTIONS="-DLLVM_TARGETS_TO_BUILD=X86;PowerPC;ARM"

        # automatically use ccache if detected
        # comment-out if ccache is not desired
        test -x $p/bin/ccache && ccache=ccache || ccache=

        # set up some possible bootstrapping compilers
        # wrap ccache into single cmd b/c cmake can't handle "ccache g++"
        mkdir ../opt-bin
        pushd ../opt-bin
        { echo "#!/bin/sh" ; echo 'exec $ccache gcc "$@"' ; } > ccgcc
        { echo "#!/bin/sh" ; echo 'exec $ccache g++ "$@"' ; } > ccg++
        { echo "#!/bin/sh" ; echo 'exec $ccache gcc-4.2 "$@"' ; } > ccgcc-4.2
        { echo "#!/bin/sh" ; echo 'exec $ccache g++-4.2 "$@"' ; } > ccg++-4.2
#       { echo "#!/bin/sh" ; echo 'exec $ccache gcc-fsf-4.6 "$@"' ; } > 
ccgcc-4.6
#       { echo "#!/bin/sh" ; echo 'exec $ccache g++-fsf-4.6 "$@"' ; } > 
ccg++-4.6
        # also setup bootstrap stage compilers
        # yes, ccache 3.1 supports compiler binary hashing
        { echo "#!/bin/sh" ; echo 'exec $ccache st1-clang "$@"' ; } > 
cc-st1-clang
        { echo "#!/bin/sh" ; echo 'exec $ccache st1-clang++ "$@"' ; } > 
cc-st1-clang++
        { echo "#!/bin/sh" ; echo 'exec $ccache st2-clang "$@"' ; } > 
cc-st2-clang
        { echo "#!/bin/sh" ; echo 'exec $ccache st2-clang++ "$@"' ; } > 
cc-st2-clang++

        chmod +x cc*
        export PATH=`pwd`:$PATH
        popd

        CMAKE_OPTIONS="$CMAKE_OPTIONS -DBUILD_SHARED_LIBS:BOOL=ON 
-DCMAKE_C_FLAGS=-fno-common -DCMAKE_CXX_FLAGS=-fno-common"

        # gcc-4.0.1 FAILS on darwin9
        darwin_vers=`uname -r | cut -d. -f1`
        case "$darwin_vers" in
        8)
          export CC=ccgcc
          export CXX=ccg++
#         export CC=ccgcc-4.6
#         export CXX=ccg++-4.6
          ;;
        9)
          export CC=ccgcc-4.2
          export CXX=ccg++-4.2
          ;;
        10)
          export CC=ccgcc
          export CXX=ccg++
          ;;
        *) : ;;
        esac

        build_type=Release
        CMAKE_OPTIONS="$CMAKE_OPTIONS -DCMAKE_INSTALL_PREFIX=%p/opt/llvm-%v 
-DCMAKE_BUILD_TYPE=$build_type -DLLVM_LIT_ARGS:STRING=-v 
-DLLVM_ENABLE_ASSERTIONS=ON"

#       the --max-time option applies to aggregate test time, not individual :(
#       CMAKE_OPTIONS="$CMAKE_OPTIONS -DLLVM_LIT_ARGS="-s -v --max-time=14400"

        # trying to disable optimization flags on non-trustworthy compilers
        ccvers=`$CXX -v 2>&1 | tail -n 1 | cut -d\  -f3`
        if test $ccvers = 4.0.1
        then STAGE1_CMAKE_OPTIONS='-DCMAKE_C_FLAGS_RELEASE:STRING=-O0 
-DCMAKE_CXX_FLAGS_RELEASE:STRING=-O0'
        fi

        echo "######## START of BOOTSTRAP STAGE 1: building llvm/clang with the 
system compiler"
        # wd: %b
        mkdir -p ../build/stage1
        pushd ../build/stage1
        echo "CMAKE_OPTIONS=$CMAKE_OPTIONS $STAGE1_CMAKE_OPTIONS"
        # Technically, we only need the native back-end in stage 1...
        cmake $CMAKE_OPTIONS $STAGE1_CMAKE_OPTIONS ../../llvm-%v.src
        # first make fails, but we have to run it first and then fix some deps
        make -k || make VERBOSE=1
        cd ..
        ln -s stage1 last
        popd
        # wd: %b
        # link stage1 compilers into opt-bin for next stage
        pushd ../opt-bin
        ln -s ../build/stage1/bin/clang st1-clang
        ln -s ../build/stage1/bin/clang++ st1-clang++
        popd
        # wd: %b
        echo "######## END of BOOTSTRAP STAGE 1: built llvm/clang with the 
system compiler"

        # don't bootstrap on powerpc-darwinX, codegen issues
        if test "%m" = "powerpc"
        then exit
        fi
        if test "$darwin_vers" = 8
        then exit
        fi

        echo "######## START of BOOTSTRAP STAGE 2: building llvm/clang with 
stage 1 clang"
        export CCACHE_COMPILERCHECK=content
        export CC=cc-st1-clang
        export CXX=cc-st1-clang++
        mkdir -p ../build/stage2
        pushd ../build/stage2
        cmake $CMAKE_OPTIONS ../../llvm-%v.src
        make -k || make VERBOSE=1
        cd ..
        rm -f last
        ln -s stage2 last
        popd
        # wd: %b
        pushd ../opt-bin
        ln -s ../build/stage2/bin/clang st2-clang
        ln -s ../build/stage2/bin/clang++ st2-clang++
        popd
        # wd: %b
        echo "######## END of BOOTSTRAP STAGE 2: built llvm/clang with stage 1 
clang"
        echo "######## START of BOOTSTRAP STAGE 3: building llvm/clang with 
stage 2 clang"
        export CC=cc-st2-clang
        export CXX=cc-st2-clang++
        export CCACHE_DISABLE=1
        mkdir -p ../build/stage3
        pushd ../build/stage3
        cmake $CMAKE_OPTIONS ../../llvm-%v.src
        make -k || make VERBOSE=1
        cd ..
        rm -f last
        ln -s stage3 last
        popd
        # wd: %b
        echo "######## END of BOOTSTRAP STAGE 3: built llvm/clang with stage 2 
clang"
        # comparison!
        # diff-ing binaries directly doesn't quite work because paths to build
        # locations differ 'stage2' vs. 'stage3'.
        pushd ../build
        # compare pre-linked object files directly
        # diff -r stage{2,3}/lib
        # diff -r stage{2,3}/bin

        diffs=
        diff_obj_dir () {
        # $1 is reference dir
        # $2 is target dir
        for f in $2/*
        do
        if test -d $f
        then
          diff_obj_dir $1/`basename $f` $f
        else
        case $f in
        *.s.tmp.o) ;;
        *.o)
          if test -f $1/`basename $f`
          then
          diff $1/`basename $f` $f && echo "matches: $f" || diffs="$diffs $f"
          fi
          ;;
        esac
        fi
        done
        }

        diff_obj_dir stage2 stage3 | grep -v basename
        err=
        echo "Objects that differ:"
        for f in $diffs
        do
        case $f in
        stage3/lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o)
          echo "  $f -- OK, due to __DATE__, __TIME__ cpp macros" ;;
        *) echo "  $f -- not OK" ; err=1 ;;
        esac
        done
        test -z "$err"
        echo "######## 3-STAGE BOOTSTRAP of llvm/clang PASSED!"
        popd

<<
InfoTest: <<
# need bash because /bin/sh 2.0 on darwin8 is missing support for pipefail
# coreutils for gtimeout for tests
        TestDepends: bash, coreutils
        TestScript: <<
        #!/bin/sh -ev
        # need path to bootstrapping compiler
        pushd ../opt-bin
        export PATH=`pwd`:$PATH
        popd
        cd ../build/last
#       echo "******** Running included LLVM and clang tests ... ********"
        make -k TESTARGS=-v check-all || :
        <<
        TestSuiteSize: medium
<<
InstallScript: <<
        #!/bin/sh -ev
        iprefix=%i/opt/llvm-%v
        prefix=%p/opt/llvm-%v
        pushd ../build/last
                make -j1 install/fast DESTDIR="%d"
        popd

        pushd $iprefix/lib
        for f in *.dylib
        do
                if test ! -L $f
                then
                install_name_tool -id "$prefix/lib/$f" "$f"
                deplibs=`otool -L $f | sed 1,2d | awk '{print $1;}' | tr '\n' ' 
'`
                for d in $deplibs
                do
                # prefix absolute paths to llvm/clang's lib installation
                case $d in
                /*) ;;
                *) install_name_tool -change "$d" "$prefix/lib/$d" $f ;;
                esac
                done
                fi
        done
        popd
        pushd $iprefix/bin
        for f in *
        do
                if test ! -L $f
                then
                deplibs=`otool -L $f | sed 1d | awk '{print $1;}' | tr '\n' ' '`
                for d in $deplibs
                do
                # consider substituting with relative @executable_path/../lib ?
                case $d in
                /*) ;;
                @*) ;;
                *) install_name_tool -change "$d" "$prefix/lib/$d" $f ;;
                esac
                done
                fi
        done
        popd

        # documentation
        docdir=$prefix/share/doc
        idocdir=$iprefix/share/doc
        mkdir -p $idocdir
        cp -R docs $idocdir/llvm
        cp -R tools/clang/docs $idocdir/clang
        mkdir -p $idocdir/%n
        pushd $idocdir/%n
        ln -s $docdir/llvm .
        ln -s $docdir/clang .
        popd
<<
DocFiles: *.TXT README.txt
Shlibs: <<
                %p/opt/llvm-%v/lib/liblibclang.3.1.dylib 1.0.0 %n (>= 3.1-0)
                !%p/opt/llvm-%v/lib/liblibclang.dylib
                !%p/opt/llvm-%v/lib/libLTO.dylib
                %p/opt/llvm-%v/lib/profile_rt.dylib 0.0.0  %n (>= 3.1-0)
                %p/opt/llvm-%v/lib/BugpointPasses.dylib 0.0.0 %n (>= 3.1-0)
                %p/opt/llvm-%v/lib/LLVMHello.dylib 0.0.0 %n (>= 3.1-0)
                !%p/opt/llvm-%v/lib/libLLVMAnalysis.dylib
                !%p/opt/llvm-%v/lib/libLLVMArchive.dylib
                !%p/opt/llvm-%v/lib/libLLVMAsmParser.dylib
                !%p/opt/llvm-%v/lib/libLLVMAsmPrinter.dylib
                !%p/opt/llvm-%v/lib/libLLVMBitReader.dylib
                !%p/opt/llvm-%v/lib/libLLVMBitWriter.dylib
                !%p/opt/llvm-%v/lib/libLLVMCodeGen.dylib
                !%p/opt/llvm-%v/lib/libLLVMCore.dylib
                !%p/opt/llvm-%v/lib/libLLVMDebugInfo.dylib
                !%p/opt/llvm-%v/lib/libLLVMExecutionEngine.dylib
                !%p/opt/llvm-%v/lib/libLLVMInstCombine.dylib
                !%p/opt/llvm-%v/lib/libLLVMInstrumentation.dylib
                !%p/opt/llvm-%v/lib/libLLVMInterpreter.dylib
                !%p/opt/llvm-%v/lib/libLLVMJIT.dylib
                !%p/opt/llvm-%v/lib/libLLVMLinker.dylib
                !%p/opt/llvm-%v/lib/libLLVMMC.dylib
                !%p/opt/llvm-%v/lib/libLLVMMCDisassembler.dylib
                !%p/opt/llvm-%v/lib/libLLVMMCJIT.dylib
                !%p/opt/llvm-%v/lib/libLLVMMCParser.dylib
                !%p/opt/llvm-%v/lib/libLLVMObject.dylib
                (%m = powerpc) 
!%p/opt/llvm-%v/lib/libLLVMPowerPCAsmPrinter.dylib
                (%m = powerpc) !%p/opt/llvm-%v/lib/libLLVMPowerPCCodeGen.dylib
                (%m = powerpc) !%p/opt/llvm-%v/lib/libLLVMPowerPCDesc.dylib
                (%m = powerpc) !%p/opt/llvm-%v/lib/libLLVMPowerPCInfo.dylib
                !%p/opt/llvm-%v/lib/libLLVMRuntimeDyld.dylib
                !%p/opt/llvm-%v/lib/libLLVMScalarOpts.dylib
                !%p/opt/llvm-%v/lib/libLLVMSelectionDAG.dylib
                !%p/opt/llvm-%v/lib/libLLVMSupport.dylib
                !%p/opt/llvm-%v/lib/libLLVMTableGen.dylib
                !%p/opt/llvm-%v/lib/libLLVMTarget.dylib
                !%p/opt/llvm-%v/lib/libLLVMTransformUtils.dylib
                !%p/opt/llvm-%v/lib/libLLVMVectorize.dylib
                !%p/opt/llvm-%v/lib/libLLVMipa.dylib
                !%p/opt/llvm-%v/lib/libLLVMipo.dylib
                (%m != powerpc) !%p/opt/llvm-%v/lib/libLLVMX86AsmParser.dylib
                (%m != powerpc) !%p/opt/llvm-%v/lib/libLLVMX86AsmPrinter.dylib
                (%m != powerpc) !%p/opt/llvm-%v/lib/libLLVMX86CodeGen.dylib
                (%m != powerpc) !%p/opt/llvm-%v/lib/libLLVMX86Desc.dylib
                (%m != powerpc) !%p/opt/llvm-%v/lib/libLLVMX86Disassembler.dylib
                (%m != powerpc) !%p/opt/llvm-%v/lib/libLLVMX86Info.dylib
                (%m != powerpc) !%p/opt/llvm-%v/lib/libLLVMX86Utils.dylib
                !%p/opt/llvm-%v/lib/libclangAnalysis.dylib
                !%p/opt/llvm-%v/lib/libclangARCMigrate.dylib
                !%p/opt/llvm-%v/lib/libclangAST.dylib
                !%p/opt/llvm-%v/lib/libclangBasic.dylib
                !%p/opt/llvm-%v/lib/libclangCodeGen.dylib
                !%p/opt/llvm-%v/lib/libclangDriver.dylib
                !%p/opt/llvm-%v/lib/libclangEdit.dylib
                !%p/opt/llvm-%v/lib/libclangFrontend.dylib
                !%p/opt/llvm-%v/lib/libclangFrontendTool.dylib
                !%p/opt/llvm-%v/lib/libclangLex.dylib
                !%p/opt/llvm-%v/lib/libclangParse.dylib
                !%p/opt/llvm-%v/lib/libclangRewrite.dylib
                !%p/opt/llvm-%v/lib/libclangSema.dylib
                !%p/opt/llvm-%v/lib/libclangSerialization.dylib
                !%p/opt/llvm-%v/lib/libclangStaticAnalyzerCheckers.dylib
                !%p/opt/llvm-%v/lib/libclangStaticAnalyzerCore.dylib
                !%p/opt/llvm-%v/lib/libclangStaticAnalyzerFrontend.dylib
                !%p/opt/llvm-%v/lib/libclangTooling.dylib
                !%p/opt/llvm-%v/lib/libgtest.dylib
                !%p/opt/llvm-%v/lib/libgtest_main.dylib
                !%p/opt/llvm-%v/lib/libprofile_rt.dylib
<<
Homepage: http://llvm.org/
DescDetail: <<
The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies.  Despite its name, LLVM has little to do with
traditional virtual machines, though it does provide helpful libraries
that can be used to build them.

The goal of the Clang project is to create a new C, C++, Objective C 
and Objective C++ front-end for the LLVM compiler.
<<
DescPackaging: <<
Built with shared-libraries to reduce the binary size.
Enabled only native targets X86, PowerPC.
Nag me if you want other cross-targets enabled.
I suspect the following shlibs are actually plug-ins, and should
(conventionally) be suffixed .so:
        profile_rt.dylib
        BugpointPasses.dylib
        LLVMHello.dylib
<<
DescPort: <<
fangism contributed this port for PowerPC-Darwin8.
        *** LLVM/Clang-3.1 still has serious codegen issues for PowerPC
        *** It is NOT considered production quality for PowerPC
        *** HELP WANTED: in stabilizing and fixing PowerPC CodeGen
        *** on llvm/clang svn trunk.
Original package maintained by 
        Benjamin Reed <l...@fink.raccoonfink.com>
with contributions from
        Jack Howarth <howa...@bromo.med.uc.edu>
PatchFile contains:
*       CMakeFile fixes, mostly missing dependencies
*       workarounds for C++ accessibility bugs in g++-4.0.x
*       added inline virtual dtor to clang header to fix stage3 undefined ref.
<<

--- NEW FILE: llvm31.patch ---
Index: utils/lit/lit/LitConfig.py
===================================================================
--- utils/lit/lit/LitConfig.py  (revision 156555)
+++ utils/lit/lit/LitConfig.py  (working copy)
@@ -36,7 +36,7 @@
         self.debug = debug
         self.isWindows = bool(isWindows)
         self.params = dict(params)
-        self.bashPath = None
+        self.bashPath = '@FINK_PREFIX@/bin/bash'
 
         self.numErrors = 0
         self.numWarnings = 0
Index: lib/ExecutionEngine/MCJIT/CMakeLists.txt
===================================================================
--- lib/ExecutionEngine/MCJIT/CMakeLists.txt    (revision 156555)
+++ lib/ExecutionEngine/MCJIT/CMakeLists.txt    (working copy)
@@ -2,3 +2,4 @@
   MCJIT.cpp
   MCJITMemoryManager.cpp
   )
+target_link_libraries( LLVMMCJIT LLVMJIT )
Index: lib/MC/MCDisassembler/CMakeLists.txt
===================================================================
--- lib/MC/MCDisassembler/CMakeLists.txt        (revision 156555)
+++ lib/MC/MCDisassembler/CMakeLists.txt        (working copy)
@@ -6,3 +6,27 @@
   EDOperand.cpp
   EDToken.cpp
   )
+
+target_link_libraries(LLVMMCDisassembler
+  LLVMMC
+  LLVMMCParser
+  LLVMSupport
+  LLVMTarget
+  )
+
+foreach(t ${LLVM_TARGETS_TO_BUILD})
+  set(td ${LLVM_MAIN_SRC_DIR}/lib/Target/${t})
+  if(EXISTS ${td}/TargetInfo/CMakeLists.txt)
+    target_link_libraries(LLVMMCDisassembler "LLVM${t}Info")
+  endif()
+  if(EXISTS ${td}/MCTargetDesc/CMakeLists.txt)
+    target_link_libraries(LLVMMCDisassembler "LLVM${t}Desc")
+  endif()
+  if(EXISTS ${td}/AsmParser/CMakeLists.txt)
+    target_link_libraries(LLVMMCDisassembler "LLVM${t}AsmParser")
+  endif()
+  if(EXISTS ${td}/Disassembler/CMakeLists.txt)
+    target_link_libraries(LLVMMCDisassembler "LLVM${t}Disassembler")
+  endif()
+endforeach(t)
+
Index: lib/Support/APFloat.cpp
===================================================================
--- lib/Support/APFloat.cpp     (revision 156555)
+++ lib/Support/APFloat.cpp     (working copy)
@@ -61,7 +61,8 @@
   // The PowerPC format consists of two doubles.  It does not map cleanly
   // onto the usual format above.  For now only storage of constants of
   // this type is supported, no arithmetic.
-  const fltSemantics APFloat::PPCDoubleDouble = { 1023, -1022, 106, false };
+  const fltSemantics APFloat::PPCDoubleDouble = { 1023, -1022, 106, true };
+  // temporary patch from Hal Finkel to not-crash, but will be wrong, bug 
#11933
 
   /* A tight upper bound on number of parts required to hold the value
      pow(5, power) is
Index: lib/Support/Unix/Signals.inc
===================================================================
--- lib/Support/Unix/Signals.inc        (revision 156555)
+++ lib/Support/Unix/Signals.inc        (working copy)
@@ -266,6 +266,6 @@
 void llvm::sys::PrintStackTraceOnErrorSignal() {
   AddSignalHandler(PrintStackTrace, 0);
 
-#if defined(__APPLE__)
+#if defined(__APPLE__) && defined(MACH_EXCEPTION_CODES) && 
defined(EXC_MASK_CRASH)
   // Environment variable to disable any kind of crash dialog.
   if (getenv("LLVM_DISABLE_CRASH_REPORT")) 
Index: tools/clang/lib/AST/ExprConstant.cpp
===================================================================
--- tools/clang/lib/AST/ExprConstant.cpp        (revision 156555)
+++ tools/clang/lib/AST/ExprConstant.cpp        (working copy)
@@ -2775,7 +2775,8 @@
     if (E->isArrow()) {
       if (!EvaluatePointer(E->getBase(), Result, this->Info))
         return false;
-      BaseTy = E->getBase()->getType()->getAs<PointerType>()->getPointeeType();
+      BaseTy = E->getBase()->getType()->template getAs<PointerType>()
+               ->getPointeeType();
     } else if (E->getBase()->isRValue()) {
       assert(E->getBase()->getType()->isRecordType());
       if (!EvaluateTemporary(E->getBase(), Result, this->Info))
Index: tools/clang/lib/Serialization/CMakeLists.txt
===================================================================
--- tools/clang/lib/Serialization/CMakeLists.txt        (revision 156555)
+++ tools/clang/lib/Serialization/CMakeLists.txt        (working copy)
@@ -25,3 +25,10 @@
   ClangDiagnosticSerialization
   ClangDeclNodes
   ClangStmtNodes)
+
+target_link_libraries(clangSerialization
+  clangAST
+  clangBasic
+  clangSema
+  LLVMSupport
+)
Index: tools/clang/include/clang/Serialization/ASTReader.h
===================================================================
--- tools/clang/include/clang/Serialization/ASTReader.h (revision 156555)
+++ tools/clang/include/clang/Serialization/ASTReader.h (working copy)
@@ -230,10 +230,12 @@
   FileManager &FileMgr;
   DiagnosticsEngine &Diags;
 
+public:        // workaround to grant access to classes nested within 
ASTDeclReader
   /// \brief The semantic analysis object that will be processing the
   /// AST files and the translation unit that uses it.
   Sema *SemaObj;
 
+private:
   /// \brief The preprocessor that will be loading the source file.
   Preprocessor &PP;
 
@@ -689,6 +691,7 @@
   /// since the last time the declaration chains were linked.
   llvm::SmallPtrSet<Decl *, 16> RedeclsDeserialized;
   
+public:        // workaround to grant access to classes nested within 
ASTDeclReader
   /// \brief The list of redeclaration chains that still need to be 
   /// reconstructed.
   ///
@@ -700,6 +703,7 @@
   /// \brief Keeps track of the elements added to PendingDeclChains.
   llvm::SmallSet<serialization::DeclID, 16> PendingDeclChainsKnown;
 
+private:
   /// \brief The set of Objective-C categories that have been deserialized
   /// since the last time the declaration chains were linked.
   llvm::SmallPtrSet<ObjCCategoryDecl *, 16> CategoriesDeserialized;
--- tools/clang/include/clang/Frontend/FrontendActions.h        2012-05-24 
14:48:30.000000000 -0700
+++ tools/clang/include/clang/Frontend/FrontendActions.h        2012-05-24 
14:47:37.000000000 -0700
@@ -123,6 +123,9 @@
   virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
                                          StringRef InFile);
 public:
+  // fang: stage3 bootstrap unittest build wants inline virtual dtor
+  // (else undefined reference at link time)
+  virtual ~SyntaxOnlyAction() { }
   virtual bool hasCodeCompletionSupport() const { return true; }
 };
 


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.cvs

Reply via email to