Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(413)

Issue 2359913002: Mac toolchain: take output_dir into account for .dSYM (Closed)

Created:
4 years, 3 months ago by Corentin Wallez
Modified:
4 years, 2 months ago
CC:
capn, chromium-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Mac toolchain: take output_dir into account for .dSYM This is causing a conflict between Swiftshader's libEGL.dylib.dSYM and ANGLE's libEGL.dylib.dSYM when building with is_asan=true on Mac BUG=630728

Patch Set 1 #

Patch Set 2 : Mac toolchain: take output_dir into account for .dSYM #

Unified diffs Side-by-side diffs Delta from patch set Stats (+4 lines, -3 lines) Patch
M build/toolchain/mac/BUILD.gn View 1 2 chunks +4 lines, -3 lines 0 comments Download

Messages

Total messages: 28 (12 generated)
Corentin Wallez
4 years, 3 months ago (2016-09-21 19:45:57 UTC) #8
sugoi
Note that I had 4 bots demonstrating this issue on my side: - mac_chromium_archive_rel_ng - ...
4 years, 3 months ago (2016-09-21 20:19:04 UTC) #10
Dirk Pranke
lgtm.
4 years, 3 months ago (2016-09-21 21:18:38 UTC) #14
Robert Sesek
Does this actually work locally when doing an official build? mac_app_bundle and mac_framework_bundle specify an ...
4 years, 3 months ago (2016-09-21 21:20:44 UTC) #16
sugoi
On 2016/09/21 21:20:44, Robert Sesek wrote: > Does this actually work locally when doing an ...
4 years, 3 months ago (2016-09-21 21:33:05 UTC) #17
Corentin Wallez
On 2016/09/21 at 21:33:05, sugoi wrote: > On 2016/09/21 21:20:44, Robert Sesek wrote: > > ...
4 years, 3 months ago (2016-09-22 13:56:40 UTC) #18
Robert Sesek
On 2016/09/22 13:56:40, Corentin Wallez wrote: > On 2016/09/21 at 21:33:05, sugoi wrote: > > ...
4 years, 3 months ago (2016-09-22 17:18:11 UTC) #19
sugoi1
On 2016/09/22 17:18:11, Robert Sesek wrote: > On 2016/09/22 13:56:40, Corentin Wallez wrote: > > ...
4 years, 3 months ago (2016-09-22 17:31:35 UTC) #20
sugoi1
On 2016/09/22 17:31:35, sugoi1 wrote: > On 2016/09/22 17:18:11, Robert Sesek wrote: > > On ...
4 years, 3 months ago (2016-09-22 17:32:57 UTC) #21
Corentin Wallez
On 2016/09/22 at 17:18:11, rsesek wrote: > On 2016/09/22 13:56:40, Corentin Wallez wrote: > > ...
4 years, 3 months ago (2016-09-22 17:33:53 UTC) #22
Robert Sesek
On 2016/09/22 17:33:53, Corentin Wallez wrote: > On 2016/09/22 at 17:18:11, rsesek wrote: > > ...
4 years, 3 months ago (2016-09-22 18:12:07 UTC) #23
sugoi1
On 2016/09/22 18:12:07, Robert Sesek wrote: > On 2016/09/22 17:33:53, Corentin Wallez wrote: > > ...
4 years, 3 months ago (2016-09-22 18:30:48 UTC) #24
Corentin Wallez
On 2016/09/22 at 18:30:48, sugoi wrote: > On 2016/09/22 18:12:07, Robert Sesek wrote: > > ...
4 years, 3 months ago (2016-09-22 20:47:57 UTC) #25
sugoi1
On 2016/09/22 20:47:57, Corentin Wallez wrote: > Compilation worked. Robert, do you have a strong ...
4 years, 3 months ago (2016-09-23 15:10:17 UTC) #26
Robert Sesek
On 2016/09/22 20:47:57, Corentin Wallez wrote: > On 2016/09/22 at 18:30:48, sugoi wrote: > > ...
4 years, 3 months ago (2016-09-23 15:35:23 UTC) #27
sugoi1
4 years, 3 months ago (2016-09-23 15:56:28 UTC) #28
On 2016/09/23 15:35:23, Robert Sesek wrote:
> On 2016/09/22 20:47:57, Corentin Wallez wrote:
> > On 2016/09/22 at 18:30:48, sugoi wrote:
> > > On 2016/09/22 18:12:07, Robert Sesek wrote:
> > > > On 2016/09/22 17:33:53, Corentin Wallez wrote:
> > > > > On 2016/09/22 at 17:18:11, rsesek wrote:
> > > > > > On 2016/09/22 13:56:40, Corentin Wallez wrote:
> > > > > > > On 2016/09/21 at 21:33:05, sugoi wrote:
> > > > > > > > On 2016/09/21 21:20:44, Robert Sesek wrote:
> > > > > > > > > Does this actually work locally when doing an official build?
> > > > > mac_app_bundle
> > > > > > > and
> > > > > > > > > mac_framework_bundle specify an output_dir override, but the
> > binary
> > > > ends
> > > > > up
> > > > > > > > > being copied into a bundle. And we want the dSYMs/unstripped's
> to
> > end
> > > > up
> > > > > > > next to
> > > > > > > > > the bundle.
> > > > > > > > 
> > > > > > > > Ok, the situation on Windows and Linux is that we have 2
libraries
> > with
> > > > > the
> > > > > > > same names, in different directories, and we pick the right one at
> > > > runtime.
> > > > > How
> > > > > > > do you suggest we proceed on Mac?
> > > > > > > 
> > > > > > > For now ANGLE and Swiftshader are not used by Chromium on Mac so
the
> > > > problem
> > > > > > > wouldn't appear and we can't really test. Once we start enabling
> them
> > on
> > > > Mac
> > > > > > > we'll have to figure out how to bundle all of this. Right now we
> need
> > this
> > > > > > > change so that both ANGLE and Swiftshader compile on Mac so we can
> do
> > > > > automated
> > > > > > > testing there.
> > > > > > 
> > > > > > What is the difference between the two copies of the library? It
> sounds
> > like
> > > > > one is for ASan and one is normal?
> > > > > 
> > > > > One is Swiftshader's (software rasterizer) implementation of the EGL
> API,
> > the
> > > > > other one is ANGLE's (graphics API translator and validator). The code
> of
> > the
> > > > > two libraries is different.
> > > > 
> > > > Do they need to be named the same thing? Having unique names is probably
> the
> > > > easiest solution.
> > > 
> > > On Windows, I know references to DLL names prevent us from renaming the
> DLLs,
> > so we can't rename them on that platform. Also, for testing purposes, we can
> > easily drop DLLs and replace them with one another, which is really simple
and
> > fast. We'd like to avoid having different library names on different
> platforms,
> > if possible, because that would complicate the code a little. At this point,
> all
> > we really want is to be able to build both on Mac simultaneously, like we do
> on
> > Windows and Linux, and use build bots to verify that our code changes will
not
> > break the Mac platform, and neither of these libraries will ship until we
are
> > done integrating them. Note that, currently, SwiftShader is still a
component,
> > so if it ships on Mac, it will be as a component. SwiftShader is integrated
> into
> > Chromium because it aims at replacing osmesa to run layout tests, which may
> also
> > apply to Mac. I don't want to close the door on any possible solution, I'm
> just
> > pointing out our current use cases and goals in order to choose the best
> > solution.
> > >  
> 
> I'm a little confused. If you just want the code compiled now, then how does
> renaming one of the targets (on Mac-only) complicate the code? I understand
not
> wanting to select an integration method at this point, but that makes it
> difficult to give advice on the right way to package this into the build.

We only need to land compilation, but we're still going to do local development,
which will require platform specific library names if we choose that option.
Currently, every implementation of that API, Angle, SwiftShader, Mesa, etc
 uses the library names "libEGL" and "libGLESv2".

"libEGL" is a standard name mentioned in Khronos API Implementers Guide:
https://www.khronos.org/registry/implementers_guide.html
So renaming it makes us cringe a little.
 
> > > > > > > If you want I can still test doing an official build if you can
> point
> > me
> > > > to
> > > > > > > instructions.
> > > > > > 
> > > > > > I'm pretty sure this won't work as-is, but for testing the official
> > build,
> > > > > just set |is_official_build = true| in your gn args.
> > > > > 
> > > > > Ok.
> > 
> > Compilation worked.
> 
> Do you have a "Chromium Framework.dSYM" and "Chromium.dSYM" in the root of
your
> output directory?

Powered by Google App Engine
This is Rietveld 408576698