|
|
Created:
7 years, 2 months ago by scottmg Modified:
6 years, 8 months ago CC:
chromium-reviews Base URL:
svn://svn.chromium.org/chrome/trunk/src Visibility:
Public. |
DescriptionTurn on UseLibraryDependencyInputs for browser_tests
Incremental linking (UseLibraryDependencyInputs) was never enabled for
browser_tests. I seem to remember the toolchain falling over when I
tried to enable it before, but I just tried it now, and it seems to work
locally (and link quickly). So, I guess we can try it and see if
anything breaks.
R=tommycli@chromium.org
BUG=276953
Patch Set 1 #
Messages
Total messages: 10 (0 generated)
On 2013/09/30 22:47:55, scottmg wrote: This actually does not work for me. I get messages like: [16339/16339] LINK browser_tests.exe FAILED: cmd /c D:\cygwin\home\tommycli\chromium\depot_tools\python_bin\python.exe gyp-win-tool link-wrapper environment.x86 link.exe /nologo /OUT:browser_tests.exe /PDB:browser_tests.exe.pdb @browser_tests.exe.rsp && D:\cygwin\home\tommycli\chromium\depot_tools\python_bin\python.exe gyp-win-tool manifest-wrapper environment.x86 cmd /c if exist browser_tests.exe.manifest del browser_tests.exe.manifest && D:\cygwin\home\tommycli\chromium\depot_tools\python_bin\python.exe gyp-win-tool manifest-wrapper environment.x86 mt.exe -nologo -manifest ..\..\build\win\compatibility.manifest obj\chrome\browser_tests.browser_tests.exe.intermediate.manifest -out:browser_tests.exe.manifest test_support_common.fake_drive_service.obj : error LNK2005: "bool __cdecl drive::`anonymous namespace'::EntryMatchWithQuery(class google_apis::ResourceEntry const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?EntryMatchWithQuery@?A0xbb869cf8@drive@@YA_NABVResourceEntry@google_apis@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "class GURL __cdecl drive::`anonymous namespace'::RemoveQueryParameter(class GURL const &)" (?RemoveQueryParameter@?A0xbb869cf8@drive@@YA?AVGURL@@ABV3@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "void __cdecl drive::`anonymous namespace'::ScheduleUploadRangeCallback(class base::Callback<void __cdecl(struct google_apis::UploadRangeResponse const &,class scoped_ptr<class google_apis::ResourceEntry,struct base::DefaultDeleter<class google_apis::ResourceEntry> >)> const &,__int64,__int64,enum google_apis::GDataErrorCode,class scoped_ptr<class google_apis::ResourceEntry,struct base::DefaultDeleter<class google_apis::ResourceEntry> >)" (?ScheduleUploadRangeCallback@?A0xbb869cf8@drive@@YAXABV?$Callback@$$A6AXABUUploadRangeResponse@google_apis@@V?$scoped_ptr@VResourceEntry@google_apis@@U?$DefaultDeleter@VResourceEntry@google_apis@@@base@@@@@Z@base@@_J1W4GDataErrorCode@google_apis@@V?$scoped_ptr@VResourceEntry@google_apis@@U?$DefaultDeleter@VResourceEntry@google_apis@@@base@@@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "void __cdecl drive::`anonymous namespace'::EntryActionCallbackAdapter(class base::Callback<void __cdecl(enum google_apis::GDataErrorCode)> const &,enum google_apis::GDataErrorCode,class scoped_ptr<class google_apis::ResourceEntry,struct base::DefaultDeleter<class google_apis::ResourceEntry> >)" (?EntryActionCallbackAdapter@?A0xbb869cf8@drive@@YAXABV?$Callback@$$A6AXW4GDataErrorCode@google_apis@@@Z@base@@W4GDataErrorCode@google_apis@@V?$scoped_ptr@VResourceEntry@google_apis@@U?$DefaultDeleter@VResourceEntry@google_apis@@@base@@@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl drive::`anonymous namespace'::Identity(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Identity@?A0xbb869cf8@drive@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV34@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: __thiscall drive::FakeDriveService::FakeDriveService(void)" (??0FakeDriveService@drive@@QAE@XZ) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual __thiscall drive::FakeDriveService::~FakeDriveService(void)" (??1FakeDriveService@drive@@UAE@XZ) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: bool __thiscall drive::FakeDriveService::LoadResourceListForWapi(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?LoadResourceListForWapi@FakeDriveService@drive@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: bool __thiscall drive::FakeDriveService::LoadAccountMetadataForWapi(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?LoadAccountMetadataForWapi@FakeDriveService@drive@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: bool __thiscall drive::FakeDriveService::LoadAppListForDriveApi(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?LoadAppListForDriveApi@FakeDriveService@drive@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: void __thiscall drive::FakeDriveService::SetQuotaValue(__int64,__int64)" (?SetQuotaValue@FakeDriveService@drive@@QAEX_J0@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: static class GURL __cdecl drive::FakeDriveService::GetFakeLinkUrl(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?GetFakeLinkUrl@FakeDriveService@drive@@SA?AVGURL@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual void __thiscall drive::FakeDriveService::Initialize(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Initialize@FakeDriveService@drive@@UAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual void __thiscall drive::FakeDriveService::AddObserver(class drive::DriveServiceObserver *)" (?AddObserver@FakeDriveService@drive@@UAEXPAVDriveServiceObserver@2@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual void __thiscall drive::FakeDriveService::RemoveObserver(class drive::DriveServiceObserver *)" (?RemoveObserver@FakeDriveService@drive@@UAEXPAVDriveServiceObserver@2@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual bool __thiscall drive::FakeDriveService::CanSendRequest(void)const " (?CanSendRequest@FakeDriveService@drive@@UBE_NXZ) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual class base::Callback<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)> __thiscall drive::FakeDriveService::GetResourceIdCanonicalizer(void)const " (?GetResourceIdCanonicalizer@FakeDriveService@drive@@UBE?AV?$Callback@$$A6A?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV12@@Z@base@@XZ) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual bool __thiscall drive::FakeDriveService::HasAccessToken(void)const " (?HasAccessToken@FakeDriveService@drive@@UBE_NXZ) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual void __thiscall drive::FakeDriveService::RequestAccessToken(class base::Callback<void __cdecl(enum google_apis::GDataErrorCode,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)> const &)" (?RequestAccessToken@FakeDriveService@drive@@UAEXABV?$Callback@$$A6AXW4GDataErrorCode@google_apis@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z@base@@@Z) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual bool __thiscall drive::FakeDriveService::HasRefreshToken(void)const " (?HasRefreshToken@FakeDriveService@drive@@UBE_NXZ) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual void __thiscall drive::FakeDriveService::ClearAccessToken(void)" (?ClearAccessToken@FakeDriveService@drive@@UAEXXZ) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual void __thiscall drive::FakeDriveService::ClearRefreshToken(void)" (?ClearRefreshToken@FakeDriveService@drive@@UAEXXZ) already defined in browser_tests.fake_drive_service.obj test_support_common.fake_drive_service.obj : error LNK2005: "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall drive::FakeDriveService::GetRootResourceId(void)const " (?GetRootResourceId@FakeDriveService@drive@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) already defined in browser_tests.fake_drive_service.obj ...
OK. Those are probably fixable, but yeah, there was a lot of similar errors in getting the other targets to turn on ULDI (not sure why I didn't get those when I just tried locally). I won't have a chance to work through them soon, but I'm happy to review if you want to start from these gyp changes as a base.
On 2013/10/01 00:00:28, scottmg wrote: > OK. Those are probably fixable, but yeah, there was a lot of similar errors in > getting the other targets to turn on ULDI (not sure why I didn't get those when > I just tried locally). > > I won't have a chance to work through them soon, but I'm happy to review if you > want to start from these gyp changes as a base. Sounds good. I probably won't get a chance soon either, but we'll fix it at some point.
I just tried with a clean build, and this worked. How can I reproduce the errors? It's very painful to work on browser_tests without this, so I'd like to help turn this on.
On 2013/11/18 06:08:32, jam wrote: > I just tried with a clean build, and this worked. > > How can I reproduce the errors? It's very painful to work on browser_tests > without this, so I'd like to help turn this on. Yeah, browser_tests really sucks. I'll try and build locally today and see if anything complains. The first is non-incremental, so touch a bunch of random files and build again and see if it doesn't work. If we don't have any problems then might as well land it and see if anything has trouble I think. Generally, it's that an obj is getting included two ways, so it should be reproducible failures.
On 2013/11/18 15:51:56, scottmg wrote: > On 2013/11/18 06:08:32, jam wrote: > > I just tried with a clean build, and this worked. > > > > How can I reproduce the errors? It's very painful to work on browser_tests > > without this, so I'd like to help turn this on. > > Yeah, browser_tests really sucks. > > I'll try and build locally today and see if anything complains. The first is > non-incremental, so touch a bunch of random files and build again and see if it > doesn't work. Just tried this a bunch of times and I didn't get any errors. Linking was super fast instead of a minute! > If we don't have any problems then might as well land it and see > if anything has trouble I think. sgtm, do you want to sync this cl and commit it? lgtm > > Generally, it's that an obj is getting included two ways, so it should be > reproducible failures.
On 2013/11/18 16:43:41, jam wrote: > On 2013/11/18 15:51:56, scottmg wrote: > > On 2013/11/18 06:08:32, jam wrote: > > > I just tried with a clean build, and this worked. > > > > > > How can I reproduce the errors? It's very painful to work on browser_tests > > > without this, so I'd like to help turn this on. > > > > Yeah, browser_tests really sucks. > > > > I'll try and build locally today and see if anything complains. The first is > > non-incremental, so touch a bunch of random files and build again and see if > it > > doesn't work. > > Just tried this a bunch of times and I didn't get any errors. Linking was super > fast instead of a minute! > > > If we don't have any problems then might as well land it and see > > if anything has trouble I think. > > sgtm, do you want to sync this cl and commit it? Hm, apparently the bot can repro those failures. http://build.chromium.org/p/tryserver.chromium/builders/win/builds/126801/ste... It looks like fake_drive_service.obj gets linked into both browser_tests and test_support_common, and similar for the others lower down. If you want to chase those up, feel free otherwise I'll try to get it sorted in the next day or two. I'm not sure why it doesn't happen locally, the GYP_DEFINES and what it's building seem the same as what I would be building, but there must be something that's slightly different http://build.chromium.org/p/tryserver.chromium/builders/win/builds/126801/ste... .
On 2013/11/18 16:57:36, scottmg wrote: > On 2013/11/18 16:43:41, jam wrote: > > On 2013/11/18 15:51:56, scottmg wrote: > > > On 2013/11/18 06:08:32, jam wrote: > > > > I just tried with a clean build, and this worked. > > > > > > > > How can I reproduce the errors? It's very painful to work on browser_tests > > > > without this, so I'd like to help turn this on. > > > > > > Yeah, browser_tests really sucks. > > > > > > I'll try and build locally today and see if anything complains. The first is > > > non-incremental, so touch a bunch of random files and build again and see if > > it > > > doesn't work. > > > > Just tried this a bunch of times and I didn't get any errors. Linking was > super > > fast instead of a minute! > > > > > If we don't have any problems then might as well land it and see > > > if anything has trouble I think. > > > > sgtm, do you want to sync this cl and commit it? > > Hm, apparently the bot can repro those failures. > http://build.chromium.org/p/tryserver.chromium/builders/win/builds/126801/ste... > > It looks like fake_drive_service.obj gets linked into both browser_tests and > test_support_common, and similar for the others lower down. If you want to chase > those up, feel free otherwise I'll try to get it sorted in the next day or two. > > I'm not sure why it doesn't happen locally, the GYP_DEFINES and what it's > building seem the same as what I would be building, but there must be something > that's slightly different > http://build.chromium.org/p/tryserver.chromium/builders/win/builds/126801/ste... > . sure I can take a look
Message was sent while issue was closed.
Closing, as a version of this patch was committed successfully months ago. See: https://codereview.chromium.org/82713004 |