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
> 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 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
>>> 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.sr