We're making progress switching from GYP to GN

143 views
Skip to first unread message

Dirk Pranke

unread,
Nov 17, 2014, 9:57:01 PM11/17/14
to chromium-dev
Hi all,

We're long overdue for an update on the switch from GYP to GN.

Short story: it's still a thing :). 

We lost a bunch of time to the Code Yellow (and a few other things), but we're making steady progress. 

We hope to be mostly done on Linux by the end of December, and mostly done, period, by the end of March. 

*Help is definitely wanted and appreciated!*

Longer story:

I've updated the roadmap wiki page here: https://code.google.com/p/chromium/wiki/gn

We can currently link Chrome (without NaCl) and many of the test binaries on Linux and ChromeOS, and are one big (in-flight) CL away from the same on Android.

We're starting to bring up the Windows, Mac, and iOS ports as well.

We have tryserver builder coverage for every platform (except iOS, which will come soon) and are starting to add the remaining platforms to the CQ as well (Linux and Android are already part of the CQ).

*This means you will soon be expected to keep the GN builds working on every platform!*

We also think we have a plan for what we need to do to actually flip official builds over (see the wiki page for details).

I'm working on replacing the spreadsheet we were using initially to coordinate people working on converting targets with something more up-to-date. I should have something in a day or two. 

I think we're almost at a point where the much of the remaining work is both easily parallelizable and easily done in chunks. You can do useful things in an hour here and there, in your dead time while you're waiting for GYP to run :).

I can (and will be happy to) go into more details if you have questions, but I thought I'd try to keep this note short for a start.

Feedback encouraged! Let me know if I've missed things,

-- Dirk

zhongxiao.yzx

unread,
May 25, 2015, 6:14:51 AM5/25/15
to chromi...@chromium.org

when I exec bootstrap.py in src/tools/gn/bootstrap to build gn, it fails with the following logs:

ninja: Entering directory `/tmp/tmpN93v6a'
[246/246] LINK gn
FAILED: c++ -pthread -o gn -Wl,--start-group gn.a libevent.a base.a xdg_user_dirs.a dynamic_annotations.a  -Wl,--end-group -lrt
base/files/file_posix.o: In function `base::File::Duplicate()':
file_posix.cc:(.text+0x804): undefined reference to `base::FileTracing::ScopedTrace::ScopedTrace()'
file_posix.cc:(.text+0x80c): undefined reference to `base::FileTracing::ScopedTrace::ShouldInitialize() const'
file_posix.cc:(.text+0x891): undefined reference to `base::FileTracing::ScopedTrace::~ScopedTrace()'
file_posix.cc:(.text+0x8b6): undefined reference to `base::FileTracing::ScopedTrace::Initialize(char const*, base::File*, long)'
file_posix.cc:(.text+0x958): undefined reference to `base::FileTracing::ScopedTrace::~ScopedTrace()'



My Setting is as follows:
codebase:  Tag- 45.0.2407.0 
   MAJOR=45                                      
   MINOR=0
   BUILD=2407
   PATCH=0

Machine:
         Ubuntu 12.04.4 LTS \n \l
         Linux localhost 3.2.0-60-generic #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

It fails when linking, that seems missing some implementations.If i add base/files/file_tracing.cc in bootstrap.py, it works.
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py                                                                                           
index b417dee..b7230bb 100755
--- a/tools/gn/bootstrap/bootstrap.py
+++ b/tools/gn/bootstrap/bootstrap.py
@@ -243,6 +243,7 @@ def write_ninja(path, options):
         'base/debug/stack_trace_posix.cc',
         'base/files/file_enumerator_posix.cc',
         'base/files/file_posix.cc',
+        'base/files/file_tracing.cc',
         'base/files/file_util_posix.cc',
         'base/message_loop/message_pump_libevent.cc',
         'base/posix/file_descriptor_shuffle.cc',





在 2014年11月18日星期二 UTC+8上午10:57:01,Dirk Pranke写道:

Brett Wilson

unread,
May 25, 2015, 7:15:38 PM5/25/15
to zhongx...@gmail.com, Chromium-dev
The bootstrap scrip isn't "officially" supported since we all use the pushed binaries and sometimes it gets out-of-date. If you do notice these types of problems, please submit a patch and I'm happy to do the code review.

Brett

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev

Thiago Farina

unread,
May 25, 2015, 9:49:07 PM5/25/15
to bre...@chromium.org, zhongx...@gmail.com, Chromium-dev
We already have a fix for this under review. https://codereview.chromium.org/1144003003/

Kind regards,


--
Thiago Farina

zhongxiao.yzx

unread,
May 25, 2015, 10:31:41 PM5/25/15
to chromi...@chromium.org, zhongx...@gmail.com
where the pushed binaries  come from ?

在 2015年5月26日星期二 UTC+8上午7:15:38,Brett Wilson写道:

Thiago Farina

unread,
May 25, 2015, 11:17:22 PM5/25/15
to zhongx...@gmail.com, chromi...@chromium.org


On Monday, May 25, 2015, zhongxiao.yzx <zhongx...@gmail.com> wrote:
where the pushed binaries  come from ?

From chromium-gn googlestorage bucket. See  https://chromium.googlesource.com/chromium/src/+/master/DEPS#589
 


--
Thiago Farina

Paweł Hajdan, Jr.

unread,
May 26, 2015, 2:51:44 AM5/26/15
to Thiago Farina, infr...@chromium.org, zhongx...@gmail.com, chromi...@chromium.org
+infra-dev

What do you think about testing bootstrap.py continuously? I think I could do the work to make that happen, and I'm just making sure there are no important reasons not to do that.

Paweł

Dirk Pranke

unread,
May 26, 2015, 4:30:19 PM5/26/15
to Thiago Farina, zhongx...@gmail.com, chromi...@chromium.org
The pushed binaries are built with a normal gn+ninja build, using the previously built and pushed binaries.

-- Dirk

Dirk Pranke

unread,
May 26, 2015, 4:31:52 PM5/26/15
to Paweł Hajdan, Jr., Thiago Farina, infr...@chromium.org, zhongx...@gmail.com, chromi...@chromium.org
I would have no real objection to having an FYI bot run the bootstrap build. If we were to do it on a main waterfall bot,
we'd also want it on the tryservers, etc., in which case it would basically be officially supported :).

Which might be fine, I don't have a strong leaning on this one way or another, but we certainly have more important 
things to worry about.

-- Dirk


--
You received this message because you are subscribed to the Google Groups "infra-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to infra-dev+...@chromium.org.
To post to this group, send email to infr...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/infra-dev/CAATLsPZLitAAGiV-YWz%3DFRkuyFabOut_tYEFtv2dzXF3WUyqFg%40mail.gmail.com.

Nico Weber

unread,
May 26, 2015, 4:32:42 PM5/26/15
to Dirk Pranke, Paweł Hajdan, Jr., Thiago Farina, infr...@chromium.org, zhongx...@gmail.com, chromi...@chromium.org
On Tue, May 26, 2015 at 1:30 PM, Dirk Pranke <dpr...@chromium.org> wrote:
I would have no real objection to having an FYI bot run the bootstrap build. If we were to do it on a main waterfall bot,
we'd also want it on the tryservers, etc., in which case it would basically be officially supported :).

Which might be fine, I don't have a strong leaning on this one way or another, but we certainly have more important 
things to worry about.

+1, this doesn't seem very important.
Reply all
Reply to author
Forward
0 new messages