New issue
Advanced search Search tips

Issue 761691 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , iOS , Chrome , Mac , Fuchsia
Pri: 3
Type: Bug

Blocking:
issue 738186



Sign in to add a comment

Push ninja 1.8.0 to depot_tools

Project Member Reported by thakis@chromium.org, Sep 4 2017

Issue description

Like  issue 663749  but for 1.8.0
 
Status: Started (was: Untriaged)
Blocking: 738186
Mac binary.
Changed sdk version to macosx10.12 from macosx10.10.

tikuta@tikuta-macbookair:~/git/ninja$ git checkout v1.8.0 
HEAD is now at 0c67152... v1.8.0
tikuta@tikuta-macbookair:~/git/ninja$ CFLAGS="-isysroot$(xcrun --sdk macosx10.12 -show-sdk-path) -mmacosx-version-min=10.6 -stdlib=libstdc++" LDFLAGS="-isysroot$(xcrun --sdk macosx10.12 -show-sdk-path) -mmacosx-version-min=10.6 -stdlib=libstdc++" CXX=$HOME/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang++ ./configure.py
warning: A compatible version of re2c (>= 0.11.3) was not found; changes to src/*.in.cc will not affect your build.
wrote build.ninja.
tikuta@tikuta-macbookair:~/git/ninja$ ninja
[26/26] LINK ninja
tikuta@tikuta-macbookair:~/git/ninja$ ./ninja all
[56/56] LINK ninja_test
tikuta@tikuta-macbookair:~/git/ninja$ ./ninja_test 
[231/231] ElideMiddle.ElideInTheMiddle
passed
tikuta@tikuta-macbookair:~/git/ninja$ otool -l ninja | grep VERSION_MIN -A 4
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.6
      sdk 10.12
Load command 10
tikuta@tikuta-macbookair:~/git/ninja$ strip ninja
tikuta@tikuta-macbookair:~/git/ninja$ otool -L ninja
ninja:
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
tikuta@tikuta-macbookair:~/git/ninja$ ./ninja --version
1.8.0
tikuta@tikuta-macbookair:~/git/ninja$ ls -l ninja
-rwxr-xr-x  1 tikuta  eng  184804 Sep  4 12:03 ninja
tikuta@tikuta-macbookair:~/git/ninja$ mv ninja ninja-mac
ninja-mac
180 KB View Download
I found regression when I used 
* clang-cl 
* cl.exe with configure.py --debug
in windows.


C:\src\git\ninja>ninja_test
[238/241] IncludesNormalize.LongInvalidPath
*** Failure in src\includes_normalize_test.cc:142
forward_slashes == NormalizeAndCheckNoError(kExactlyMaxPath)
to stderr MSVCHelperTest.NoReadOfStderr

failed

This is not caught by release build with cl.exe
Let me fix this.

Cc: thakis@chromium.org
Made pull request to fix the test.
https://github.com/ninja-build/ninja/pull/1318

Let me make windows binary on the release branch pull request is merged.

C:\src\git\ninja>python configure.py
warning: A compatible version of re2c (>= 0.11.3) was not found; changes to src/*.in.cc will not affect your build.
wrote build.ninja.

Modify cxx in build.ninja to use clang-cl (clang version 6.0.0 (trunk 310694)) and remove /GL option from cflags.

C:\src\git\ninja>ninja.bootstrap.exe
[3/3] LINK ninja.exe
LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance

C:\src\git\ninja>ninja --version
1.8.0

C:\src\git\ninja>ninja all
[6/32] LINK canon_perftest.exe
LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance
[13/32] LINK hash_collision_bench.exe
LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance
[18/32] LINK depfile_parser_perftest.exe
LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance
[19/32] LINK clparser_perftest.exe
LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance
[22/32] LINK build_log_perftest.exe
LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance
[27/32] LINK manifest_parser_perftest.exe
LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance
[32/32] LINK ninja_test.exe
LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance

C:\src\git\ninja>ninja_test
to stderr MSVCHelperTest.NoReadOfStderr

passed

C:\src\git\ninja>
ninja.exe
489 KB Download
linux64

tikuta@tikuta:~/git/ninja$ git checkout v1.8.0                                                                                                                                                                     
HEAD is now at 0c67152... v1.8.0
tikuta@tikuta:~/git/ninja$ CXX="$HOME/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang++" CFLAGS="--sysroot=$HOME/chromium/src/build/linux/debian_wheezy_amd64-sysroot" LDFLAGS="--sysroot=$HOME/chromium/src/build/linux/debian_wheezy_amd64-sysroot" ./configure.py                                                                                                                                                    
warning: A compatible version of re2c (>= 0.11.3) was not found; changes to src/*.in.cc will not affect your build.
wrote build.ninja.
tikuta@tikuta:~/git/ninja$ ninja
[26/26] LINK ninja
tikuta@tikuta:~/git/ninja$ ./ninja all
[56/56] LINK ninja_test
tikuta@tikuta:~/git/ninja$ ./ninja_test
[232/232] ElideMiddle.ElideInTheMiddle
passed
tikuta@tikuta:~/git/ninja$ strip ninja
tikuta@tikuta:~/git/ninja$ ./ninja --version
1.8.0
tikuta@tikuta:~/git/ninja$ objdump -x ninja | grep GLIBC
    0x0d696914 0x00 05 GLIBC_2.4
    0x09691a75 0x00 03 GLIBC_2.2.5
    0x08922974 0x00 02 GLIBCXX_3.4
tikuta@tikuta:~/git/ninja$ ls -l ninja
-rwxr-x--- 1 tikuta eng 183344 Sep  4 17:20 ninja

ninja-linux64
179 KB View Download
tikuta@tikuta:~/git/ninja$ git checkout v1.8.0 
HEAD is now at 0c67152... v1.8.0
tikuta@tikuta:~/git/ninja$ CXX="$HOME/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang++" CFLAGS="-m32 -D_FILE_OFFSET_BITS=64 --sysroot=$HOME/chromium/src/build/linux/debian_wheezy_i386-sysroot" LDFLAGS="--sysroot=$HOME/chromium/src/build/linux/debian_wheezy_i386-sysroot -m32 -L$HOME/chromium/src/build/linux/debian_wheezy_i386-sysroot/usr/lib/i386-linux-gnu -Wl,-rpath-link=$HOME/chromium/src/build/linux/debian_wheezy_i386-sysroot/usr/lib/i386-linux-gnu" ./configure.py                                                                                                                                                    
warning: A compatible version of re2c (>= 0.11.3) was not found; changes to src/*.in.cc will not affect your build.
wrote build.ninja.
tikuta@tikuta:~/git/ninja$ ninja
[25/25] LINK ninja
tikuta@tikuta:~/git/ninja$ ./ninja all
[31/55] CXX build/subprocess_test.o
src/subprocess_test.cc:228:23: warning: format specifies type 'unsigned long' but the argument has type 'rlim_t' (aka 'unsigned long long') [-Wformat]
           kNumProcs, rlim.rlim_cur);
                      ^~~~~~~~~~~~~
1 warning generated.
[55/55] LINK ninja_test
tikuta@tikuta:~/git/ninja$ ./ninja_test
[232/232] ElideMiddle.ElideInTheMiddle
passed
tikuta@tikuta:~/git/ninja$ ./ninja --version
1.8.0
tikuta@tikuta:~/git/ninja$ strip ninja
tikuta@tikuta:~/git/ninja$ objdump -x ninja | grep GLIBC
    0x0d696910 0x00 06 GLIBC_2.0
    0x08922974 0x00 03 GLIBCXX_3.4
    0x0d696914 0x00 09 GLIBC_2.4
    0x0d696911 0x00 08 GLIBC_2.1
    0x09691f73 0x00 05 GLIBC_2.1.3
    0x0d696912 0x00 04 GLIBC_2.2
    0x0d696910 0x00 02 GLIBC_2.0
tikuta@tikuta:~/git/ninja$ file ninja
ninja: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, stripped
tikuta@tikuta:~/git/ninja$ cp ninja ~/ninja-linux32

ninja-linux32
157 KB View Download
I made patch.
https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/648372

Nico, the regression on windows test is a kind of bug in test itself and I sent fixing patch.
Is it OK to release 1.8.0 binary after Tuesday evening PDT?
Or we need to do another work to release 1.8.1 or so?

We shouldn't release a binary that has known-failing tests imho. I suggest the following:

1. Since we already have the 1.8.0 binaries, land https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/648372 to make sure everything else works.

2. Get your test fix landed (I had a comment on the CL so I couldn't just merge it)

3. If 1.8.0 works on the bots, tag your test fix as 1.8.1, else fix whatever other issues we run into.

4. Add 1.8.1 binaries to depot_tools and roll that in.

5. Send release announcement for 1.8.1.
I see. It is fine to me.

I sent you review request of 1.8.0 and updated the PR.

Project Member

Comment 14 by bugdroid1@chromium.org, Sep 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/depot_tools/+/372e0fdbfaaf78df357e4d425bf7baa8613dbc9c

commit 372e0fdbfaaf78df357e4d425bf7baa8613dbc9c
Author: Takuto Ikuta <tikuta@google.com>
Date: Tue Sep 05 02:07:13 2017

Update ninja to v1.8.0.

New binaries for Mac, Linux32, Linux64, Windows.  Also update shell script.
See the bug for how these were built.
The main "new" thing is performance improvement when building chrome with goma.

After confirming the the behavior of ninja 1.8.0 on buildbot, I will roll ninja 1.8.1 includes fix for non-deterministic test.

TBR=dpranke@chromium.org
Bug:  761691 ,  738186 
Change-Id: I108996dccfdf5d95d8815d6cece5eba46f3e8178
Reviewed-on: https://chromium-review.googlesource.com/648372
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Reviewed-by: Nico Weber <thakis@chromium.org>

[modify] https://crrev.com/372e0fdbfaaf78df357e4d425bf7baa8613dbc9c/ninja
[modify] https://crrev.com/372e0fdbfaaf78df357e4d425bf7baa8613dbc9c/ninja-mac
[modify] https://crrev.com/372e0fdbfaaf78df357e4d425bf7baa8613dbc9c/ninja.exe
[modify] https://crrev.com/372e0fdbfaaf78df357e4d425bf7baa8613dbc9c/ninja-linux64
[modify] https://crrev.com/372e0fdbfaaf78df357e4d425bf7baa8613dbc9c/ninja-linux32

Status: Fixed (was: Started)
I confirmed ninja 1.8.0 is rolled in buildbot.

Sign in to add a comment