Closed Bug 775539 Opened 8 years ago Closed 8 years ago

Build SeaMonkey using clang

Categories

(SeaMonkey :: Release Engineering, defect)

x86
All
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ewong, Assigned: ewong)

References

Details

Attachments

(1 file, 7 obsolete files)

Mozilla-central has changed their OSX build to use clang, and with
that the mozilla/build/macosx/common was changed which our buildslaves
complained about: 

TEST-UNEXPECTED-FAIL | check-sync-dirs.py | build file copies are not in sync
TEST-INFO | check-sync-dirs.py | file(s) found in:               /builds/slave/comm-cen-trunk-osx-dbg/build/build
TEST-INFO | check-sync-dirs.py | differ from their originals in: /builds/slave/comm-cen-trunk-osx-dbg/build/mozilla/build
TEST-INFO | check-sync-dirs.py | differing file:                 ./macosx/common

while changing the macosx/common file is simple,  clang needs to be installed.
My comments on this patch:
https://wiki.mozilla.org/User:Ewong/osxbustagereport
Attachment #644200 - Flags: review?(bugspam.Callek)
(In reply to Edmund Wong (:ewong) from comment #1)
> Created attachment 644200 [details] [diff] [review]
> Workaround to unbust OSX builds until clang is installed.
> 
> My comments on this patch:
> https://wiki.mozilla.org/User:Ewong/osxbustagereport

Pushed to comm-central:
http://hg.mozilla.org/comm-central/rev/ecf5155354d8
Summary: Install clang on OSX machines and change macosx/common to reflect this. → Build SeaMonkey using clang
Attachment #644200 - Attachment is obsolete: true
Attachment #644200 - Flags: review?(bugspam.Callek)
OS: Mac OS X → All
Attachment #644566 - Flags: feedback?(rail)
Attachment #644568 - Flags: feedback?(rail)
Comment on attachment 644568 [details] [diff] [review]
buildbot-config/ changes to enable builds with clang on macosx and linux. (v1)

In overall it looks good, but missing one mandatory variable: tooltool_url_list. See http://hg.mozilla.org/build/buildbot-configs/file/668ac0e7b1a3/mozilla/production_config.py#l83

BTW, since you're going to use tooltool, you'll need either have access to http://runtime-binaries.pvt.build.mozilla.org or have your own copy of those files. What's your plan here?
Attachment #644568 - Flags: feedback?(rail) → feedback+
Comment on attachment 644566 [details] [diff] [review]
suite/ changes to enable clang on macosx and linux. (v1)

I haven't checked the values, but lgtm.
Attachment #644566 - Flags: feedback?(rail) → feedback+
BTW, Firefox still uses gcc to build linux/linux64. Do you really want to use calng for these platforms?
(In reply to Rail Aliiev [:rail] from comment #8)
> BTW, Firefox still uses gcc to build linux/linux64. Do you really want to
> use calng for these platforms?

Oh.. my over-ambitious c&p..  so I just basically remove the linux/linux64 lines
and it's still good to go?
(In reply to Edmund Wong (:ewong) from comment #9)
> (In reply to Rail Aliiev [:rail] from comment #8)
> > BTW, Firefox still uses gcc to build linux/linux64. Do you really want to
> > use calng for these platforms?
> 
> Oh.. my over-ambitious c&p..  so I just basically remove the linux/linux64
> lines
> and it's still good to go?

Yeah, it should just work.
Assignee: nobody → ewong
Attachment #644568 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #644589 - Flags: feedback+
Attachment #644566 - Flags: review?(bugspam.Callek)
Attachment #644589 - Flags: review?(bugspam.Callek)
Depends on: 776261
Depends on: 776428
Depends on: 776426
Depends on: 776523
Depends on: 768879
Comment on attachment 644566 [details] [diff] [review]
suite/ changes to enable clang on macosx and linux. (v1)

Review of attachment 644566 [details] [diff] [review]:
-----------------------------------------------------------------

r- for two reasons,

#1 we can't do this until we can use a tooltool server that has clang (I'm working on that)
#2 lets make the mac ones like the Firefox setup, and bump the clang version we use to match that of Firefox http://mxr.mozilla.org/comm-central/source/mozilla/browser/config/tooltool-manifests/
Attachment #644566 - Flags: review?(bugspam.Callek)
Attachment #644566 - Flags: review-
Attachment #644566 - Flags: feedback+
Comment on attachment 644589 [details] [diff] [review]
buildbot-config/ changes to enable builds with clang on macosx(v2)

Review of attachment 644589 [details] [diff] [review]:
-----------------------------------------------------------------

We're now using tooltool on linux for Firefox, lets adjust this per my previous comments and do it for Linux as well... see- http://mxr.mozilla.org/build/search?string=tooltool_manifes&find=%2Fconfig.py&findi=&filter=^[^\0]*%24&hitlimit=&tree=build

We'll need a buildbotcustom patch as well, which I'll try to get complete ASAP, but it looks like it will slip past our "support gcc on mac" cutoff. A few days of bustage on trunk should be manageable though.
Attachment #644589 - Flags: review?(bugspam.Callek)
Attachment #644589 - Flags: review-
Attachment #644589 - Flags: feedback+
Attached patch Build SeaMonkey using clang (v2) (obsolete) — Splinter Review
Attachment #644566 - Attachment is obsolete: true
Attachment #655535 - Flags: review?(bugspam.Callek)
Depends on: 785815
Comment on attachment 655535 [details] [diff] [review]
Build SeaMonkey using clang (v2)

This needs to land before the stuff in Bug 785815 and looks good, but you're still behind on the mac clang versions.

I had r161022 up in our temp location, but I'm adding r161152 now, can you update the attachment to do the following:

* All clang versions updated to r161152 per current m-c http://hg.mozilla.org/mozilla-central/rev/a412d39f5526
* Don't add the clang.manifest files in mac*/ folders.
Attachment #655535 - Flags: review?(bugspam.Callek) → review-
Attachment #655535 - Attachment is obsolete: true
Attachment #657675 - Flags: review?(bugspam.Callek)
Attachment #644589 - Attachment is obsolete: true
Attachment #657676 - Flags: review?(bugspam.Callek)
Attachment #657675 - Flags: review?(bugspam.Callek) → review+
Comment on attachment 657676 [details] [diff] [review]
buildbot-config/ changes to enable builds with clang on macosx and linux(v3

Review of attachment 657676 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with nits below.

We'll need to land an *empty* releng.manifest (like the linux releng.manifest files in the other patch here) to *all* trees before this lands, comm-aurora, comm-beta and comm-release. Once we see good results on trunk, we can turn on clang on aurora for mac without any problems.

::: seamonkey/config.py
@@ +157,5 @@
>              'enable_opt_unittests': False,
>              'enable_checktests': True,
>              'talos_masters': GLOBAL_VARS['talos_masters'],
>              'stage_product': 'seamonkey',
> +            'tooltool_manifest_src': 'suite/config/tooltool-manifests/linux32/clang.manifest',

Since m-c doesn't build linux with clang by default yet, we want releng.manifest here

@@ +195,5 @@
>              'enable_opt_unittests': False,
>              'enable_checktests': True,
>              'talos_masters': GLOBAL_VARS['talos_masters'],
>              'stage_product': 'seamonkey',
> +            'tooltool_manifest_src': 'suite/config/tooltool-manifests/linux64/clang.manifest',

here too
Attachment #657676 - Flags: review?(bugspam.Callek) → review+
Comment on attachment 657676 [details] [diff] [review]
buildbot-config/ changes to enable builds with clang on macosx and linux(v3

Review of attachment 657676 [details] [diff] [review]:
-----------------------------------------------------------------

r- with nits below.

We'll need to land an *empty* releng.manifest (like the linux releng.manifest files in the other patch here) to *all* trees before this lands, comm-aurora, comm-beta and comm-release. Once we see good results on trunk, we can turn on clang on aurora for mac without any problems.

I might be confused, but looks like https://bugzilla.mozilla.org/attachment.cgi?id=657672&action=edit is what you meant to attach, so r- here I'll r+ that one.

::: seamonkey/config.py
@@ +157,5 @@
>              'enable_opt_unittests': False,
>              'enable_checktests': True,
>              'talos_masters': GLOBAL_VARS['talos_masters'],
>              'stage_product': 'seamonkey',
> +            'tooltool_manifest_src': 'suite/config/tooltool-manifests/linux32/clang.manifest',

Since m-c doesn't build linux with clang by default yet, we want releng.manifest here

@@ +195,5 @@
>              'enable_opt_unittests': False,
>              'enable_checktests': True,
>              'talos_masters': GLOBAL_VARS['talos_masters'],
>              'stage_product': 'seamonkey',
> +            'tooltool_manifest_src': 'suite/config/tooltool-manifests/linux64/clang.manifest',

here too
Attachment #657676 - Flags: review+ → review-
Attachment #657676 - Attachment is obsolete: true
Attachment #657733 - Flags: review?(bugspam.Callek)
Attachment #657733 - Attachment is obsolete: true
Attachment #657733 - Flags: review?(bugspam.Callek)
So tooltool is installed, and seems to checkout/run clang/etc fine... however something is still not right, we're getting an error in configure,

espindola, any thoughts on what might be wrong on our end?  [I tried a manual run with the older clang as is in use with TB now, and no luck.]


configure:1477: checking whether the host c compiler (/builds/slave/comm-cen-trunk-osx64-ntly/build/mozilla/../cl
ang/bin/clang -gdwarf-2 ) works
configure:1486: /builds/slave/comm-cen-trunk-osx64-ntly/build/mozilla/../clang/bin/clang -c -gdwarf-2  conftest.c
 1>&5
configure:1501: checking whether the host c++ compiler (/builds/slave/comm-cen-trunk-osx64-ntly/build/mozilla/../
clang/bin/clang++ -gdwarf-2 ) works
configure:1510: /builds/slave/comm-cen-trunk-osx64-ntly/build/mozilla/../clang/bin/clang++ -c -gdwarf-2  conftest
.c 1>&5
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
configure:1539: checking for /builds/slave/comm-cen-trunk-osx64-ntly/build/mozilla/../clang/bin/clang
configure:1573: checking for gcc
configure:1686: checking whether the C compiler (/builds/slave/comm-cen-trunk-osx64-ntly/build/mozilla/../clang/b
in/clang -arch i386 -gdwarf-2 ) works
configure:1702: /builds/slave/comm-cen-trunk-osx64-ntly/build/mozilla/../clang/bin/clang -arch i386 -o conftest -
gdwarf-2   conftest.c  1>&5
configure:1699:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
main(){return(0);}
^~~~
1 warning generated.
ld: unknown option: -demangle
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure: failed program was:

#line 1697 "configure"
#include "confdefs.h"

main(){return(0);}
cb-sea-miniosx64-01:i386 seabld$ ls
FYI cb-sea-miniosx64-01:build seabld$ /Developer/usr/bin/xcodebuild -version
Xcode 3.2.1
Component versions: DevToolsCore-1614.0; DevToolsSupport-1591.0
BuildVersion: 10M2003
For comparison:

bld-lion-r5-070:~ cltbld$ ld -v
@(#)PROGRAM:ld  PROJECT:ld64-123.2.1
llvm version 3.0svn, from Apple Clang 2.1 (build 163.7.1)
bld-lion-r5-070:~ cltbld$ /Developer/usr/bin/xcodebuild -version
Xcode 4.1
Build version 4B110
bld-lion-r5-070:~ cltbld$

Would my guess be right that I need to update XCode version?
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.