[lldb-dev] [llvm-dev] [3.7 Release] RC3 has been tagged, let's wrap this up

Dimitry Andric via lldb-dev lldb-dev at lists.llvm.org
Sun Aug 23 03:15:32 PDT 2015


Finally, all building and testing succeeded, even with clang-tools-extra now (the tarballs became ~15% bigger). :)

Uploaded:

SHA256 (clang+llvm-3.7.0-rc3-i386-unknown-freebsd10.tar.xz) = 319a7d6758bad7976dab2774309504432a69705c5662b38e05062018b71f655f
SHA256 (clang+llvm-3.7.0-rc3-amd64-unknown-freebsd10.tar.xz) = 91997accc86379f7b2334ca9444a1fe017210871774153b87f4b1723125807fc

-Dimitry

> On 23 Aug 2015, at 01:33, Dimitry Andric via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Right, I found out the problem.  It's because clang-tools-extra's test Makefile uses the temporary filename "lit.tmp" for both its main lit.site.cfg, and for Unit/lit.site.cfg.  If these make jobs get run simultaneously, one or the other temp file can unexpectedly disappear.
> 
> The following fixes it, similar to what is done in clang's own test Makefile.  Hans, are you OK with me checking this in to clang-tools-extra trunk (not sure who owns that), then merging it to the release_37 branch?  Then it is at least fixed for the final build.
> 
> Index: tools/clang/tools/extra/test/Makefile
> ===================================================================
> --- tools/clang/tools/extra/test/Makefile       (revision 245796)
> +++ tools/clang/tools/extra/test/Makefile       (working copy)
> @@ -60,12 +60,12 @@
> Unit/lit.site.cfg: FORCE
>        @echo "Making Unit/lit.site.cfg for Clang extra tools..."
>        @$(MKDIR) $(dir $@)
> -       @$(ECHOPATH) s=@LLVM_LIBS_DIR@=$(LibDir)=g >> lit.tmp
> -       @$(ECHOPATH) s=@CLANG_TOOLS_BINARY_DIR@=$(PROJ_OBJ_DIR)/..=g >> lit.tmp
> -       @$(ECHOPATH) s=@TARGET_TRIPLE@=$(TARGET_TRIPLE)=g >> lit.tmp
> -       @$(ECHOPATH) s=@CLANG_TOOLS_SOURCE_DIR@=$(PROJ_SRC_DIR)/..=g >> lit.tmp
> -       @sed -f lit.tmp $(PROJ_SRC_DIR)/Unit/lit.site.cfg.in > $@
> -       @-rm -f lit.tmp
> +       @$(ECHOPATH) s=@LLVM_LIBS_DIR@=$(LibDir)=g >> unit.tmp
> +       @$(ECHOPATH) s=@CLANG_TOOLS_BINARY_DIR@=$(PROJ_OBJ_DIR)/..=g >> unit.tmp
> +       @$(ECHOPATH) s=@TARGET_TRIPLE@=$(TARGET_TRIPLE)=g >> unit.tmp
> +       @$(ECHOPATH) s=@CLANG_TOOLS_SOURCE_DIR@=$(PROJ_SRC_DIR)/..=g >> unit.tmp
> +       @sed -f unit.tmp $(PROJ_SRC_DIR)/Unit/lit.site.cfg.in > $@
> +       @-rm -f unit.tmp
> 
> clean::
>        @ find . -name Output | xargs rm -fr
> 
> -Dimitry
> 
>> On 23 Aug 2015, at 01:13, Dimitry Andric <dimitry at andric.com> wrote:
>> 
>> Still no complete go, doing the tests on i386 failed with some weird sed error:
>> 
>> [...]
>> Making Unit/lit.site.cfg for Clang extra tools...
>> sed: lit.tmp: No such file or directory
>> Makefile:61: recipe for target 'Unit/lit.site.cfg' failed
>> gmake[2]: *** [Unit/lit.site.cfg] Error 1
>> 
>> Strangely enough, this does not happen on amd64.  Maybe it is some sort of race condition?  Did anybody see this too?
>> 
>> Back to the investigation again... :(
>> 
>> -Dimitry
>> 
>>> On 22 Aug 2015, at 21:23, Dimitry Andric via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>> 
>>> It's building with this patch now, already at Phase3, so it seems to work:
>>> 
>>> Index: trunk/utils/release/test-release.sh
>>> ===================================================================
>>> --- trunk/utils/release/test-release.sh (revision 245679)
>>> +++ trunk/utils/release/test-release.sh (working copy)
>>> @@ -266,43 +268,36 @@
>>>   check_valid_urls
>>> 
>>>   for proj in $projects ; do
>>> -        if [ -d $proj.src ]; then
>>> -          echo "# Reusing $proj $Release-$RC sources"
>>> +        case $proj in
>>> +        llvm|openmp)
>>> +            projsrc=$proj.src
>>> +            ;;
>>> +        cfe)
>>> +            projsrc=llvm.src/tools/clang
>>> +            ;;
>>> +        clang-tools-extra)
>>> +            projsrc=llvm.src/tools/clang/tools/extra
>>> +            ;;
>>> +        compiler-rt|libcxx|libcxxabi|libunwind|test-suite)
>>> +            projsrc=llvm.src/projects/$proj
>>> +            ;;
>>> +        *)
>>> +            echo "error: unknown project $proj"
>>> +            exit 1
>>> +            ;;
>>> +        esac
>>> +
>>> +        if [ -d $projsrc ]; then
>>> +          echo "# Reusing $proj $Release-$RC sources in $projsrc"
>>>         continue
>>>       fi
>>> -        echo "# Exporting $proj $Release-$RC sources"
>>> -        if ! svn export -q $Base_url/$proj/$ExportBranch $proj.src ; then
>>> +        echo "# Exporting $proj $Release-$RC sources to $projsrc"
>>> +        if ! svn export -q $Base_url/$proj/$ExportBranch $projsrc ; then
>>>           echo "error: failed to export $proj project"
>>>           exit 1
>>>       fi
>>>   done
>>> 
>>> -    echo "# Creating symlinks"
>>> -    cd $BuildDir/llvm.src/tools
>>> -    if [ ! -h clang ]; then
>>> -        ln -s ../../cfe.src clang
>>> -    fi
>>> -    cd $BuildDir/cfe.src/tools
>>> -    if [ ! -h extra ]; then
>>> -        ln -s ../../clang-tools-extra.src extra
>>> -    fi
>>> -    cd $BuildDir/llvm.src/projects
>>> -    if [ -d $BuildDir/test-suite.src ] && [ ! -h test-suite ]; then
>>> -        ln -s ../../test-suite.src test-suite
>>> -    fi
>>> -    if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then
>>> -        ln -s ../../compiler-rt.src compiler-rt
>>> -    fi
>>> -    if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then
>>> -        ln -s ../../libcxx.src libcxx
>>> -    fi
>>> -    if [ -d $BuildDir/libcxxabi.src ] && [ ! -h libcxxabi ]; then
>>> -        ln -s ../../libcxxabi.src libcxxabi
>>> -    fi
>>> -    if [ -d $BuildDir/libunwind.src ] && [ ! -h libunwind ]; then
>>> -        ln -s ../../libunwind.src libunwind
>>> -    fi
>>> -
>>>   cd $BuildDir
>>> }
>>> 
>>> -Dimitry
>>> 
>>>> On 22 Aug 2015, at 18:54, Dimitry Andric via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>>> 
>>>> The problem seems to be caused by the way the symlinks are setup in test-release.sh, e.g. like so:
>>>> 
>>>> llvm.src/tools/clang -> ../../cfe.src
>>>> cfe.src/tools/extra -> ../../clang-tools-extra.src
>>>> 
>>>> When it then tries to access the path llvm.src/tools/clang/tools/extra/clang-apply-replacements/lib/Tooling/../../../../../include, it fails.  I tried this on both FreeBSD, OSX and Linux, but it fails everywhere.
>>>> 
>>>> For example, on Linux:
>>>> 
>>>> $ ls -l ~/foo/llvm.src/tools/clang
>>>> lrwxrwxrwx 1 dim dim 13 2015-08-22 18:40:16 /home/dim/foo/llvm.src/tools/clang -> ../../cfe.src/
>>>> $ ls -l ~/foo/cfe.src/tools/extra
>>>> lrwxrwxrwx 1 dim dim 27 2015-08-22 18:53:04 /home/dim/foo/cfe.src/tools/extra -> ../../clang-tools-extra.src/
>>>> $ ls -l ~/foo/llvm.src/tools/clang/tools/extra/clang-apply-replacements/lib/Tooling
>>>> total 16
>>>> -rw-r--r-- 1 dim dim 8983 2015-08-22 18:17:18 ApplyReplacements.cpp
>>>> -rw-r--r-- 1 dim dim  526 2015-08-22 18:17:18 Makefile
>>>> $ ls -l ~/foo/llvm.src/tools/clang/tools/extra/clang-apply-replacements/lib/Tooling/../../../../../include
>>>> ls: cannot access /home/dim/foo/llvm.src/tools/clang/tools/extra/clang-apply-replacements/lib/Tooling/../../../../../include: No such file or directory
>>>> 
>>>> Note that llvm.src/tools/clang/tools/extra/clang-apply-replacements/lib/Tooling/../../../.. goes back to the top level, where *.src is checked out:
>>>> 
>>>> $ ls -l ~/foo/llvm.src/tools/clang/tools/extra/clang-apply-replacements/lib/Tooling/../../../..
>>>> total 12
>>>> drwxr-xr-x 16 dim dim 4096 2015-08-22 18:17:16 cfe.src/
>>>> drwxr-xr-x 14 dim dim 4096 2015-08-22 18:40:32 clang-tools-extra.src/
>>>> drwxr-xr-x 16 dim dim 4096 2015-08-22 18:13:58 llvm.src/
>>>> 
>>>> Of course at a level even below that, there is little chance of an include directory existing.  How does anybody else manage to build using the test-release.sh script, and having clang-tools-extra?
>>>> 
>>>> -Dimitry
>>>> 
>>>>> On 21 Aug 2015, at 14:09, Dimitry Andric via lldb-dev <lldb-dev at lists.llvm.org> wrote:
>>>>> 
>>>>> Strangely, the clang-tools-extra stuff does build if I manually check it out like so (without any symlinks):
>>>>> 
>>>>> .                        <-- https://llvm.org/svn/llvm-project/llvm/branches/release_37
>>>>> tools/clang              <-- https://llvm.org/svn/llvm-project/cfe/branches/release_37
>>>>> tools/clang/tools/extra  <-- https://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_37
>>>>> 
>>>>> I'll investigate, because it would be nice to have those tools.
>>>>> 
>>>>> -Dimitry
>>>>> 
>>>>>> On 21 Aug 2015, at 13:42, Nikola Smiljanic <popizdeh at gmail.com> wrote:
>>>>>> 
>>>>>> Hi Dmitry, if I understood Hans clang-extra wasn't part of the build prior to rc3. Just delete it and run script with --no-checkout.
>>>>>> 
>>>>>> On Fri, Aug 21, 2015 at 7:15 PM, Dimitry Andric <dimitry at andric.com> wrote:
>>>>>> Hm, it does not seem to compile at all here?  The build ends with:
>>>>>> 
>>>>>> In file included from /home/dim/llvm-3.7.0/rc3/llvm.src/tools/clang/tools/extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp:17:
>>>>>> /home/dim/llvm-3.7.0/rc3/llvm.src/tools/clang/tools/extra/clang-apply-replacements/lib/Tooling/../../include/clang-apply-replacements/Tooling/ApplyReplacements.h:19:10: fatal error: 'clang/Tooling/Refactoring.h' file not found
>>>>>> #include "clang/Tooling/Refactoring.h"
>>>>>>     ^
>>>>>> 1 error generated.
>>>>>> 
>>>>>> Any idea?  I had no problems at all with -rc2.
>>>>>> 
>>>>>> -Dimitry
>>>>>> 
>>>>>>> On 21 Aug 2015, at 02:51, Hans Wennborg <hans at chromium.org> wrote:
>>>>>>> 
>>>>>>> Hello everyone,
>>>>>>> 
>>>>>>> 3.7-rc3 has just been tagged. Testers, please test, build binaries,
>>>>>>> upload to the sftp and report results to this thread.
>>>>>>> 
>>>>>>> Again, a lot of patches got merged between rc2 and rc3, but hopefully
>>>>>>> nothing that should upset things.
>>>>>>> 
>>>>>>> One thing that did change is that the release script now correctly
>>>>>>> symlinks clang-tools-extra into the build. If this causes problems on
>>>>>>> your platform, please just remove it.
>>>>>>> 
>>>>>>> This is a release candidate in the real sense: at this point I have
>>>>>>> zero release blockers on my radar. I will now only accept fixes for
>>>>>>> critical regressions, and if nothing comes up, rc3 will be promoted to
>>>>>>> 3.7.0-final.
>>>>>>> 
>>>>>>> Documentation and release note patches are still welcome all the way
>>>>>>> up until the final tag goes in.
>>>>>>> 
>>>>>>> Issues that were on my radar, but I don't consider blocking:
>>>>>>> 
>>>>>>> - Sanitizer test failures on various platforms, e.g. PR24222. We never
>>>>>>> ran these tests in previous releases, so it's not a regression. It
>>>>>>> would be great if the sanitizer folks could look into the test
>>>>>>> failures, but it's not blocking 3.7.
>>>>>>> 
>>>>>>> - PR24273: "[ARM] Libc++abi built in-tree with libunwind fails in
>>>>>>> __cxa_allocate_exception", Renato will exclude libc++ from his build
>>>>>>> for now.
>>>>>>> 
>>>>>>> - Lack of key functions in some Instruction classes causing build
>>>>>>> failures without -fno-rtti
>>>>>>> (http://lists.llvm.org/pipermail/llvm-dev/2015-August/089010.html). No
>>>>>>> patches have been forthcoming, so this will not get fixed for 3.7. At
>>>>>>> least we correctly report -fno-rtti in llvm-config built with CMake
>>>>>>> now.
>>>>>>> 
>>>>>>> - r244221: "[SPARC] Don't compare arch name as a string, use the enum
>>>>>>> instead", owner is unresponsive.
>>>>>>> 
>>>>>>> - "[lldb] r245020 - [MIPS]Handle floating point and aggregate return
>>>>>>> types in SysV-mips [32 bit] ABI", owner is unresponsive.
>>>>>>> 
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> Hans
>>>>>> 
>>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> lldb-dev mailing list
>>>>> lldb-dev at lists.llvm.org
>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>>> 
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> llvm-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>> 
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150823/df154943/attachment-0001.sig>


More information about the lldb-dev mailing list