Closed Bug 1222305 Opened 9 years ago Closed 6 years ago

Make B2G build on Mac OS 10.11/XCode 7.1

Categories

(Firefox OS Graveyard :: GonkIntegration, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: zbraniecki, Unassigned, NeedInfo)

References

Details

Attachments

(2 files)

It's currently impossible to build B2G on Mac OS 10.11 El Capitan (XCode 7.1)

Since it's the current version of Mac OS and XCode we should add support for it.
To fix the first error I encountered I had to edit ./build/core/combo/HOST_darwin-x86.mk line 39:

`mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 10.10 10.11`

This got the build going.

Next it fails somewhere in ACP:

host C: acp <= build/tools/acp/acp.c
<built-in>:0: error: Unknown value ‘10.11’ of -mmacosx-version-min
In file included from build/tools/acp/acp.c:24:
build/libs/host/include/host/CopyFile.h:4:21: error: stdbool.h: No such file or directory
build/tools/acp/acp.c: In function ‘process’:
build/tools/acp/acp.c:48: error: ‘bool’ undeclared (first use in this function)
build/tools/acp/acp.c:48: error: (Each undeclared identifier is reported only once
build/tools/acp/acp.c:48: error: for each function it appears in.)
build/tools/acp/acp.c:48: error: expected ‘;’ before ‘destMustBeDir’
build/tools/acp/acp.c:66: error: ‘destMustBeDir’ undeclared (first use in this function)
build/tools/acp/acp.c:66: error: ‘true’ undeclared (first use in this function)
build/tools/acp/acp.c: In function ‘main’:
build/tools/acp/acp.c:174: error: ‘bool’ undeclared (first use in this function)
build/tools/acp/acp.c:174: error: expected ‘;’ before ‘wantUsage’
build/tools/acp/acp.c:181: error: ‘wantUsage’ undeclared (first use in this function)
build/tools/acp/acp.c:181: error: ‘false’ undeclared (first use in this function)
build/tools/acp/acp.c:215: error: ‘true’ undeclared (first use in this function)
make: *** [out/host/darwin-x86/obj/EXECUTABLES/acp_intermediates/acp.o] Error 1
It's still looking for include files in 10.9 SDK. The build worked for me after I copied the 10.11 SDK folder (/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk) and named it 10.9
Did you edit ./build/core/combo/HOST_darwin-x86.mk? I copied the directory MacOS10.11.sdk to MacOS10.9.sdk and I still see 

(b2g2)zbraniecki@velen:~/projects/mozilla/B2G (master *%=)$ ./build.sh -j1
including device/generic/armv7-a-neon/vendorsetup.sh
including device/qcom/common/vendorsetup.sh
build/core/combo/HOST_darwin-x86.mk:65: *****************************************************
build/core/combo/HOST_darwin-x86.mk:66: * Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk
build/core/combo/HOST_darwin-x86.mk:67: *****************************************************
build/core/combo/HOST_darwin-x86.mk:68: *** Stop..  Stop.

** Don't have a product spec for: 'flame'
** Do you have the right repo manifest?


> Build failed! <

Build with |./build.sh -j1| for better messages
If all else fails, use |rm -rf objdir-gecko| to clobber gecko and |rm -rf out| to clobber everything else.
(In reply to Zibi Braniecki [:gandalf][:zibi] from comment #3)
> Did you edit ./build/core/combo/HOST_darwin-x86.mk? I copied the directory
> MacOS10.11.sdk to MacOS10.9.sdk and I still see 
> 
> (b2g2)zbraniecki@velen:~/projects/mozilla/B2G (master *%=)$ ./build.sh -j1
> including device/generic/armv7-a-neon/vendorsetup.sh
> including device/qcom/common/vendorsetup.sh
> build/core/combo/HOST_darwin-x86.mk:65:
> *****************************************************
> build/core/combo/HOST_darwin-x86.mk:66: * Can not find SDK 10.6 at
> /Developer/SDKs/MacOSX10.6.sdk
> build/core/combo/HOST_darwin-x86.mk:67:
> *****************************************************
> build/core/combo/HOST_darwin-x86.mk:68: *** Stop..  Stop.
> 
> ** Don't have a product spec for: 'flame'
> ** Do you have the right repo manifest?
> 
> 
> > Build failed! <
> 
> Build with |./build.sh -j1| for better messages
> If all else fails, use |rm -rf objdir-gecko| to clobber gecko and |rm -rf
> out| to clobber everything else.

Yeah I have no idea why its looking for 10.6.
I modified the line to: mac_sdk_versions_supported :=  10.9
Got it working. Editing the file to only list 10.9 and copying the folder does work, but it feels very much like a dirty-hack. We should support it OOTB
Michael, can you help out here? Or any suggestions who could?
Flags: needinfo?(mwu)
So, I'm still trying to follow Gregor's advice - I copied SDK and I changed the entry to only have '10.9'.

The build goes on for a while until it stops at this error: https://pastebin.mozilla.org/8851643

Gregor, did you encounter this?
Flags: needinfo?(anygregor)
Summary: Make B2G build on Mac OS 10.11 → Make B2G build on Mac OS 10.11/XCode 7.1
(In reply to Zibi Braniecki [:gandalf][:zibi] from comment #7)
> So, I'm still trying to follow Gregor's advice - I copied SDK and I changed
> the entry to only have '10.9'.

I guess symlink would also have worked. Was already pretty late when I worked on this :)

> 
> The build goes on for a while until it stops at this error:
> https://pastebin.mozilla.org/8851643
> 
> Gregor, did you encounter this?

Hm are you doing a full build? I mostly use './build.sh gecko'. A full build never worked for me. I got it to compile some time ago but after flashing the phone was bricked.
So to answer your questions, no I haven't seen this error.
Flags: needinfo?(anygregor)
Blocks: 1228868
Attached patch xcode.patchSplinter Review
Here is my mk file to make the build for nexus5-l. I don't have the copy of MacOSX10.9.sdk. Just build with 10.11 sdk.
Attached patch flame-kk.patchSplinter Review
I was able to use this patch to build flame-kk gecko on MacOS 10.11 without any alternations to the system.

The only part that looks funky is that I had to manually set the mmacosx-version-min to make it stop complaining about not knowing `10.11`
Ken, do you have anyone that can help out here?
Flags: needinfo?(kchang)
Farmer, can you please help this bug? Thanks.
Flags: needinfo?(kchang) → needinfo?(fatseng)
My environment is MacOS 10.10.5 and Xcode 5.1.1.
I am not familiar with MacOS but I will spend time to check it.
Flags: needinfo?(fatseng)
Any update here?
Severity: normal → blocker
I am busy on another project porting, don't have time to check it yet.
I start to look at it today.
This is i686-apple-darwin11-gcc problem.
It doesn't recognize SDK above 10.9.
Try following command under prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1/bin/
$ ./i686-apple-darwin11-gcc -mmacosx-version-min=10.10 -dM -E -o - - < /dev/null | grep MAC_OS_X
You could see the similar error log.
<built-in>:0: error: Unknown value ‘10.10’ of -mmacosx-version-min
The toolchain is provided from google.
The detail information is in https://trac.macports.org/ticket/43978
Severity: blocker → normal
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: