|
|
Created:
6 years, 9 months ago by Nico Modified:
6 years, 9 months ago Reviewers:
scottmg CC:
gyp-developer_googlegroups.com Base URL:
http://gyp.googlecode.com/svn/trunk/ Visibility:
Public. |
Descriptionninja: Use rsp files for SOLINK and SOLINK(module) on linux and mac.
To support link lines longer than 128 kiB == 131072 bytes, like it's
needed for chromium's content library.
R=scottmg@chromium.org
Committed: https://code.google.com/p/gyp/source/detail?r=1871
Patch Set 1 #Patch Set 2 : #Patch Set 3 : #Patch Set 4 : #Patch Set 5 : #Patch Set 6 : #
Total comments: 3
Patch Set 7 : #
Total comments: 4
Patch Set 8 : #Messages
Total messages: 18 (0 generated)
ninja: error: WriteFile(lib/libfoolib1.so lib/libfoolib1.so.TOC.rsp): Unable to create file. No such file or directory Bleh, this doesn't work with multiple outputs, does it
Now with @lib.rsp instead of @out.rsp
…better, but os x complains with ninja: error: WriteFile("Dependency Framework.framework/Versions/A/Dependency Framework".rsp): Unable to create file. No such file or directory I remember seeing a ninja issue about this… Options: a) Don't do this for OS X for now. Have the same fire on OS X tomorrow. b) Only use the rsp file conditionally, which will need some fancy variable setting. c) (a) today, and then do (b) before the OS X fire happens.
d) Don't use $lib.rsp, but $linker_file_list and set that explicitly
Haha, with this ninja creates the rsp file "Dependency Framework.framework.rsp" (with quotes in the filename) :-/
(I have to say we have a pretty good test suite though, which found lots and lots of bugs here.)
https://codereview.chromium.org/197823008/diff/80001/pylib/gyp/generator/ninj... File pylib/gyp/generator/ninja.py (right): https://codereview.chromium.org/197823008/diff/80001/pylib/gyp/generator/ninj... pylib/gyp/generator/ninja.py:1918: '$ar /nologo /ignore:4221 /OUT:$out @$lib.rsp' % looks like this has an extra EncodePOSIX, but should (?) be ok https://codereview.chromium.org/197823008/diff/80001/pylib/gyp/generator/ninj... pylib/gyp/generator/ninja.py:1999: rspfile_content='$in $solibs $libs', does this need $postbuilds? https://codereview.chromium.org/197823008/diff/80001/pylib/gyp/generator/ninj... pylib/gyp/generator/ninja.py:2007: rspfile_content='$in $solibs $libs', and here
fwiw, I couldn't reproduce on my linux box so I guess it might not be hard to set some configuration option on bots. Kind of nicer to fix for random devs who don't have "that thing" changed though. https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... File pylib/gyp/generator/ninja.py (left): https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... pylib/gyp/generator/ninja.py:1986: solink_module_suffix = '$in $solibs $libs$postbuilds' oh, never mind, i see this now.
lgtm when our test gauntlet is happy. https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... File pylib/gyp/generator/ninja.py (right): https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... pylib/gyp/generator/ninja.py:1106: link_file_list = link_file_list.replace(' ', '_') Seems like we should just fix that in ninja? But fine to workaround of course.
Patch set 8 will work for sure!
https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... File pylib/gyp/generator/ninja.py (right): https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... pylib/gyp/generator/ninja.py:1106: link_file_list = link_file_list.replace(' ', '_') On 2014/03/13 03:38:51, scottmg wrote: > Seems like we should just fix that in ninja? But fine to workaround of course. yeah, I guess :-/ But "don't use spaces in filenames except maybe in your final products" didn't sound so unreasonable to me until just now.
On 2014/03/13 03:44:28, Nico wrote: > https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... > File pylib/gyp/generator/ninja.py (right): > > https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... > pylib/gyp/generator/ninja.py:1106: link_file_list = link_file_list.replace(' ', > '_') > On 2014/03/13 03:38:51, scottmg wrote: > > Seems like we should just fix that in ninja? But fine to workaround of course. > > yeah, I guess :-/ > > But "don't use spaces in filenames except maybe in your final products" didn't > sound so unreasonable to me until just now. That seems like a reasonable position to me, also.
Message was sent while issue was closed.
Committed patchset #8 manually as r1871 (presubmit successful).
Message was sent while issue was closed.
ah shiiii accidentally changed windows too
Message was sent while issue was closed.
On 2014/03/13 03:49:07, Nico wrote: > ah shiiii accidentally changed windows too Oh, I thought you meant to per my comment. I think it should be ok, though some slashes might get doubled.
Message was sent while issue was closed.
Hrm, evidently I'm wrong. Feh.
Message was sent while issue was closed.
https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... File pylib/gyp/generator/ninja.py (right): https://codereview.chromium.org/197823008/diff/100001/pylib/gyp/generator/nin... pylib/gyp/generator/ninja.py:1106: link_file_list = link_file_list.replace(' ', '_') On 2014/03/13 03:44:29, Nico wrote: > On 2014/03/13 03:38:51, scottmg wrote: > > Seems like we should just fix that in ninja? But fine to workaround of course. > > yeah, I guess :-/ > > But "don't use spaces in filenames except maybe in your final products" didn't > sound so unreasonable to me until just now. The upstream bug for this is https://github.com/martine/ninja/issues/344 (I thought there was more recent discussion of this somewhere too, but couldn't find it.) |