Closed Bug 983013 Opened 6 years ago Closed 6 years ago

Flatfish can't be build in OSX 10.9 (Mavericks)

Categories

(Firefox OS Graveyard :: General, defect)

x86_64
macOS
defect
Not set

Tracking

(tracking-b2g:backlog)

RESOLVED FIXED
2.0 S2 (23may)
tracking-b2g backlog

People

(Reporter: xwaynec, Assigned: vicamo)

References

Details

(Whiteboard: [ft:ril][p=1])

Attachments

(2 files, 3 obsolete files)

I did some experiment.

1. Nexus-4 product in b2g master can be build, it's android 4.3_r2.1
2. Flatfish can't be build and it's android 4.2.2_r1
AOSP 4.2.2_r1 doesn't go well with Mavericks.  There is still many compile errors even with BUILD_MAC_SDK_EXPERIMENTAL=1 as suggested.

Actually I need https://github.com/CyanogenMod/android_external_webkit/commit/a815c626d7df7e24ba9e0df27c27735d4e069ffd to compile AOSP 4.3_r2.1 emulator.
Attached file userconfig (obsolete) —
Clang doesn't support inner function:

  external/elfutils/libdw/dwarf_entry_breakpoints.c:68:5: error: function definition is not allowed here
      {
      ^
  6 warnings and 5 errors generated.
  make: *** [out/host/darwin-x86/obj/STATIC_LIBRARIES/libdw_intermediates/dwarf_entry_breakpoints.o] Error 1
  make: *** Waiting for unfinished jobs....

AOSP 4.3 and above use its new bundled toolchain "i686-apple-darwin-4.2.1" to skip this problem.
Gecko compiles.  Maybe fix that inner function problem and we can get flatfish built on Mavericks.
Blocks: 987489
Blocks: flatfish
From bug 935776 comment 50, the only thing we need to build Flatfish on Mavericks is to install Xcode-4.x.  I'm going to clean-up attachment 8391238 [details] [diff] [review] a bit more and request for review.
Comment on attachment 8391237 [details] [diff] [review]
fix-flatfish-frameworks-base-errors.patch

Use Xcode 4.x then we don't have to patch frameworks/base.
Attachment #8391237 - Attachment is obsolete: true
Assignee: nobody → vyang
Hardware: ARM → x86_64
Whiteboard: [ft:ril][p=1]
Target Milestone: --- → 1.4 S6 (25apr)
Attached file userconfig
Remove unrelated lines.
Attachment #8391239 - Attachment is obsolete: true
Add Darwin ARM toolchains for Flatfish.
Attachment #8391238 - Attachment is obsolete: true
Attachment #8405300 - Flags: review?(waychen)
Depends on bug 994601 because Flatfish fails to build without the fix there.
Depends on: 994601
blocking-b2g: --- → backlog
I still have build error.

external/elfutils/libdw/dwarf_entry_breakpoints.c:68:5: error: function definition is not allowed here
    {
    ^
external/elfutils/libdw/dwarf_entry_breakpoints.c:93:27: error: use of undeclared identifier 'cudie'
  if (dwarf_getsrclines (&cudie, &lines, &nlines) < 0)
                          ^
external/elfutils/libdw/dwarf_entry_breakpoints.c:97:9: warning: implicit declaration of function 'entrypc_bkpt' is invalid in C99 [-Wimplicit-function-declaration]
 return entrypc_bkpt ();
        ^
external/elfutils/libdw/dwarf_entry_breakpoints.c:107:5: error: function definition is not allowed here
    {
    ^
external/elfutils/libdw/dwarf_entry_breakpoints.c:146:45: error: use of undeclared identifier 'base'
  ptrdiff_t offset = dwarf_ranges (die, 0, &base, &begin, &end);
                                            ^
external/elfutils/libdw/dwarf_entry_breakpoints.c:168:44: error: use of undeclared identifier 'base'
      offset = dwarf_ranges (die, offset, &base, &begin, &end);
                                           ^
6 warnings and 5 errors generated.
make: *** [out/host/darwin-x86/obj/STATIC_LIBRARIES/libdw_intermediates/dwarf_entry_breakpoints.o] Error 1

real	104m15.560s
user	269m27.376s
sys	34m23.843s

> Build failed! <
(In reply to Wayne Chen [:xwaynec] from comment #12)
> I still have build error.

You're not using GCC, so obviously you need: 1) pull that Pull Request to .repo/manifest, 2) repo sync to fetch additional toolchains for Mac.
(In reply to Vicamo Yang [:vicamo][:vyang] from comment #13)
> (In reply to Wayne Chen [:xwaynec] from comment #12)
> > I still have build error.
> 
> You're not using GCC, so obviously you need: 1) pull that Pull Request to
> .repo/manifest, 2) repo sync to fetch additional toolchains for Mac.

I uninstall Xcode 5 and reinstall Xcode 4.6.3. However there is an error in

../../../gecko/tools/profiler/LulElf.cpp: In function 'int lul::ElfClass(void const*)':
../../../gecko/tools/profiler/LulElf.cpp:793:9: error: 'ElfELFSIZE_Ehdr' does not name a type
../../../gecko/tools/profiler/LulElf.cpp:796:10: error: 'elf_header' was not declared in this scope

In the directory  /Volumes/firefoxos/flatfish/objdir-gecko/tools/profiler
The following command failed to execute properly:
/usr/local/bin/ccache /Volumes/firefoxos/flatfish/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-g++ -o LulElf.o -c -fvisibility=hidden -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -DNO_NSPR_10_SUPPORT -I/Volumes/firefoxos/flatfish/gecko/tools/profiler -I. -I/Volumes/firefoxos/flatfish/gecko/ipc/chromium/src -I/Volumes/firefoxos/flatfish/gecko/mozglue/linker -I/Volumes/firefoxos/flatfish/gecko/toolkit/crashreporter/google-breakpad/src -I/Volumes/firefoxos/flatfish/gecko/toolkit/crashreporter/google-breakpad/src/common/android/include -I../../dist/include -I/Volumes/firefoxos/flatfish/objdir-gecko/dist/include/nspr -I/Volumes/firefoxos/flatfish/objdir-gecko/dist/include/nss -I/Volumes/firefoxos/flatfish/objdir-gecko/dist/include -I/Volumes/firefoxos/flatfish/gecko/modules/zlib/src -fPIC -DANDROID -isystem /Volumes/firefoxos/flatfish/bionic/libc/arch-arm/include -isystem /Volumes/firefoxos/flatfish/bionic/libc/include/ -isystem /Volumes/firefoxos/flatfish/bionic/libc/kernel/common -isystem /Volumes/firefoxos/flatfish/bionic/libc/kernel/arch-arm -isystem /Volumes/firefoxos/flatfish/bionic/libm/include -I/Volumes/firefoxos/flatfish/system -I/Volumes/firefoxos/flatfish/system/core/include -isystem /Volumes/firefoxos/flatfish/bionic -I/Volumes/firefoxos/flatfish/hardware/libhardware/include -I/Volumes/firefoxos/flatfish/external/valgrind/fxos-include -I/Volumes/firefoxos/flatfish/frameworks/native/include -I/Volumes/firefoxos/flatfish/frameworks/av/include -I/Volumes/firefoxos/flatfish/frameworks/av/include/media -I/Volumes/firefoxos/flatfish/frameworks/av/include/camera -I/Volumes/firefoxos/flatfish/frameworks/native/include/media/openmax -I/Volumes/firefoxos/flatfish/frameworks/av/media/libstagefright/include -I/Volumes/firefoxos/flatfish/external/dbus -I/Volumes/firefoxos/flatfish/external/bluetooth/bluez/lib -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/LulElf.o.pp -DANDROID -isystem /Volumes/firefoxos/flatfish/bionic/libc/arch-arm/include -isystem /Volumes/firefoxos/flatfish/bionic/libc/include/ -isystem /Volumes/firefoxos/flatfish/bionic/libc/kernel/common -isystem /Volumes/firefoxos/flatfish/bionic/libc/kernel/arch-arm -isystem /Volumes/firefoxos/flatfish/bionic/libm/include -I/Volumes/firefoxos/flatfish/system -I/Volumes/firefoxos/flatfish/system/core/include -isystem /Volumes/firefoxos/flatfish/bionic -I/Volumes/firefoxos/flatfish/hardware/libhardware/include -I/Volumes/firefoxos/flatfish/external/valgrind/fxos-include -I/Volumes/firefoxos/flatfish/frameworks/native/include -I/Volumes/firefoxos/flatfish/frameworks/av/include -I/Volumes/firefoxos/flatfish/frameworks/av/include/media -I/Volumes/firefoxos/flatfish/frameworks/av/include/camera -I/Volumes/firefoxos/flatfish/frameworks/native/include/media/openmax -I/Volumes/firefoxos/flatfish/frameworks/av/media/libstagefright/include -I/Volumes/firefoxos/flatfish/external/dbus -I/Volumes/firefoxos/flatfish/external/bluetooth/bluez/lib -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Werror=int-to-pointer-cast -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -mandroid -fno-short-enums -fno-exceptions -Wno-psabi -DMOZ_ENABLE_JS_DUMP -include /Volumes/firefoxos/flatfish/gonk-misc/Unicode.h -I/Volumes/firefoxos/flatfish/gecko/build/stlport/stlport -I/Volumes/firefoxos/flatfish/ndk/sources/cxx-stl/system/include -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -g -Os -freorder-blocks -fno-reorder-functions -funwind-tables /Volumes/firefoxos/flatfish/gecko/tools/profiler/LulElf.cpp
make[6]: *** [LulElf.o] Error 1
make[5]: *** [tools/profiler/compile] Error 2
make[5]: *** Waiting for unfinished jobs....
(In reply to Wayne Chen [:xwaynec] from comment #14)
> (In reply to Vicamo Yang [:vicamo][:vyang] from comment #13)
> > (In reply to Wayne Chen [:xwaynec] from comment #12)
> > > I still have build error.
> > 
> > You're not using GCC, so obviously you need: 1) pull that Pull Request to
> > .repo/manifest, 2) repo sync to fetch additional toolchains for Mac.
> 
> I uninstall Xcode 5 and reinstall Xcode 4.6.3. However there is an error in
> 
> ../../../gecko/tools/profiler/LulElf.cpp: In function 'int
> lul::ElfClass(void const*)':
> ../../../gecko/tools/profiler/LulElf.cpp:793:9: error: 'ElfELFSIZE_Ehdr'
> does not name a type
> ../../../gecko/tools/profiler/LulElf.cpp:796:10: error: 'elf_header' was not
> declared in this scope

This is a new feature landed in bug 938157 recently.  Gecko commit http://git.mozilla.org/?p=releases/gecko.git;a=commit;h=0633559 should be working.
(In reply to Wayne Chen [:xwaynec] from comment #14)
> I uninstall Xcode 5 and reinstall Xcode 4.6.3. However there is an error in

BTW, you don't have to uninstall any Xcode version.  Install Xcode to different places and use `sudo xcode-select -s <path_to_Contents_Developer_folder>` to change runtime Xcode version.
Depends on: 999348
Yet another build failure due to newly landed patches.
Depends on: 999902
FWIW, I got the same error on C#14 on Ubuntu 14.04 64bit, with SDK 22.6.2
(In reply to Vicamo Yang [:vicamo][:vyang] from comment #15)
> (In reply to Wayne Chen [:xwaynec] from comment #14)
> > I uninstall Xcode 5 and reinstall Xcode 4.6.3. However there is an error in
> 
> This is a new feature landed in bug 938157 recently.  Gecko commit
> http://git.mozilla.org/?p=releases/gecko.git;a=commit;h=0633559 should be
> working.

Wayne, these FTBFS are not only replicatable on Mavericks and I've pointed out a revision that works.  Can you restart verification and land this easy patch first?
(In reply to Théo Chevalier [:tchevalier] from comment #18)
> FWIW, I got the same error on C#14 on Ubuntu 14.04 64bit, with SDK 22.6.2

I was able to build on 14.04 successfully (after getting the same error you mention) by making the moz.build alteration described here: 

https://bugzilla.mozilla.org/show_bug.cgi?id=999348#c6
Comment on attachment 8405300 [details] [review]
Github PR for b2g-manifest

Hi Michael,

Could you help for this modification.
Thanks

Sincerely,
Wayne
Attachment #8405300 - Flags: review?(waychen) → review?(mwu)
Flags: needinfo?(mwu)
Attachment #8405300 - Flags: review?(mwu) → review+
Flags: needinfo?(mwu)
https://github.com/mozilla-b2g/b2g-manifest/commit/711e96fe9477d07dde03682b931fd20a82be4d1e
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: 1.4 S6 (25apr) → 2.0 S2 (23may)
blocking-b2g: backlog → ---
You need to log in before you can comment on or make changes to this bug.