New issue
Advanced search Search tips

Issue 604281 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 0
Type: Bug



Sign in to add a comment

Build errors on 10.11 SDK after clang roll in r387792

Project Member Reported by tapted@chromium.org, Apr 18 2016

Issue description

Version: r387792 (Fri Apr 15 19:22:00 2016 -0700)
OS: Mac OSX 10.11 (Xcode 7)

What steps will reproduce the problem?
(1) Build @ ToT

What is the expected output? What do you see instead?

Building `chrome` there is:

../../chrome/browser/chrome_browser_main_mac.mm:207:34: error: incompatible pointer types initializing 'AppController *' with an expression of type 'id<NSApplicationDelegate> _Nullable' [-Werror,-Wincompatible-pointer-types]
  AppController* appController = [NSApp delegate];
                                 ^~~~~~~~~~~~~~~~

../../ui/views/cocoa/native_widget_mac_nswindow.mm:204:36: error: instance method '-validateUserInterfaceItem:' not found (return type defaults to 'id') [-Werror,-Wobjc-method-access]
               : [[NSApp delegate] validateUserInterfaceItem:item];
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
../../ui/views/cocoa/native_widget_mac_nswindow.mm:203:16: error: incompatible operand types ('BOOL' (aka 'signed char') and 'id')
               ? [commandHandler_ validateUserInterfaceItem:item window:self]
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


There might be more errors in a `build all`.


Ran a bisect script, to get
bb76f310ee74474738306d867dad168c48668c24 is the first bad commit
commit bb76f310ee74474738306d867dad168c48668c24
Author: thakis <thakis@chromium.org>
Date:   Fri Apr 15 19:22:00 2016 -0700

    Roll clang 264915:266460.

    Ran `tools/clang/scripts/upload_revision.py 266460`.

    We disabled the experimental wasm backend for a while again in this
    build. (It wasn't used for anything yet, and it's a bit unstable.)

    BUG= 601774 

    Review URL: https://codereview.chromium.org/1893673002

    Cr-Commit-Position: refs/heads/master@{#387792}

:040000 040000 dbc5315580e91e69faef6297d4729720af42c7fe eb35f269fcf2a726cedbe45bd9b8c8ac3d790eb9 M	tools
bisect run success


At a quick glance, I think the compile errors are legitimate errors, and can be fixed - I'm investigating that now. I'll see how that goes - maybe the roll should be reverted for now.

(I timed out looking for a clang SCM history http://clang.llvm.org/ links to http://llvm.org/viewvc/ but that 404s)
 

Comment 1 by tapted@chromium.org, Apr 18 2016

Status: Started (was: Untriaged)
There were a lot more errors once ninja got past chrome_browser_main_mac.mm. Attaching an incomplete list.

Compile fixes are in https://codereview.chromium.org/1894903003 (still a WIP as I post this)

Most fixes were along the lines of
 - base::mac::ObjCCastStrict<AppControllerMac> or similar
 - Exposing a method defined only in the .mm to its corresponding .h

then a weird one in tab_window_controller.mm - code there was calling methods on NSWindowController that only exist as a category on NSWindow. So it's either dead code, or NSWindowController has some kind of catchall that redirects method invocations to the window.

The CL isn't trivial.
clang_roll_errors.txt
7.8 KB View Download

Comment 2 by tapted@chromium.org, Apr 18 2016

Owner: tapted@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/676995d68e8a0164d44ea50ea7185f8a05f4d88e

commit 676995d68e8a0164d44ea50ea7185f8a05f4d88e
Author: tapted <tapted@chromium.org>
Date: Mon Apr 18 11:32:29 2016

Mac: Fix SDK 10.11 Compile errors after clang roll in r387792

Looks like the compiler is more strict about method invokations on "`id`-
looking" things. E.g., it now enforces method calls on objects of type
id<Protocol> to exist on Protocol.

BUG= 604281 

Review URL: https://codereview.chromium.org/1894903003

Cr-Commit-Position: refs/heads/master@{#387892}

[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/app_controller_mac.h
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/app_controller_mac.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/app_controller_mac_browsertest.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/chrome_browser_main_mac.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/app_list/app_list_service_mac.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/applescript/bookmark_node_applescript.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/applescript/window_applescript.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/applescript/window_applescript_test.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/base_bubble_controller.h
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/chrome_event_processing_window.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/history_menu_cocoa_controller.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/info_bubble_window.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/info_bubble_window_unittest.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/panels/panel_window_controller_cocoa.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/chrome/browser/ui/cocoa/tabs/tab_window_controller.mm
[modify] https://crrev.com/676995d68e8a0164d44ea50ea7185f8a05f4d88e/ui/views/cocoa/native_widget_mac_nswindow.mm

Comment 4 Deleted

Comment 5 by thakis@chromium.org, Apr 18 2016

Not related, see chromium-dev thread
Accidently deleted Comment 4. Restoring here just in case since thakis replied in Comment5

FAILED: /Users/henrika/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang -framework Cocoa -framework Foundation -framework IOKit -framework Security -framework SystemConfiguration -framework Cocoa -framework Foundation -framework IOKit -framework Security -framework SystemConfiguration -Wl,-search_paths_first -Wl,-pie -mmacosx-version-min=10.7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -arch x86_64 -L. -Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/../../.. -stdlib=libc++ -o chrome_dll_dependency_shim obj/chrome/obj/chrome/chrome_dll_dependency_shim.gen/chrome_dll_dependency_shim.dummy_main.o 'Chromium Framework.framework/Versions/A/Chromium Framework'  -framework AppKit -framework CoreFoundation

ld: file not found: @rpath/libchrome_main_dll.dylib for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

[6392/6457] CC obj/chrome/app/helper_app.chrome_exe_main_mac.o

ninja: build stopped: subcommand failed.


Comment 7 by tapted@chromium.org, Apr 19 2016

Status: Fixed (was: Started)

Sign in to add a comment