Opened 5 years ago

Closed 5 years ago

#12812 closed defect (fixed)

Compiling ESR 31 is broken with our Mac OS X cross-compiler

Reported by: gk Owned by: gk
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Keywords: tbb-gitian
Cc: mingwandroid Actual Points:
Parent ID: #12460 Points:
Reviewer: Sponsor:

Description

We get:

/home/ubuntu/build/x-tools/x86_64-apple-darwin10/bin/x86_64-apple-darwin10-clang++ -arch i386 -isysroot /usr/lib/apple/SDKs/MacOSX10.6.sdk -fPIC -Qunused-arguments -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Werror=int-to-pointer-cast -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-mismatched-tags -fno-exceptions -fno-strict-aliasing -frtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -DNO_X11 -pipe -UDEBUG -DNDEBUG -O3 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long   -framework ExceptionHandling   -framework Cocoa -lobjc  -o ../../bin/makeconv makeconv.o ucnvstat.o genmbcs.o gencnvex.o -L../../lib -licutu -L../../lib -licui18n -L../../lib -licuuc -L../../stubdata -licudata -lpthread -lm  
ld: in ../../lib/libicutu.a, archive has no table of contents for architecture i386
x86_64-apple-darwin10-clang: error: linker command failed with exit code 1 (use -v to see invocation)

Child Tickets

Attachments (3)

build.log.bz2 (129.1 KB) - added by gk 5 years ago.
ICU error build log
host_config_log (94.2 KB) - added by gk 5 years ago.
ICU host config log
target_config_log (123.8 KB) - added by gk 5 years ago.
ICU target config log

Download all attachments as: .zip

Change History (13)

comment:1 Changed 5 years ago by gk

Ray: This sounds like a toolchain issue to me or am I wrong here?

comment:2 Changed 5 years ago by gk

Maybe adding two further log lines might prove helpful:

make[8]: *** [../../bin/makeconv] Error 1
make[8]: Leaving directory `/home/ubuntu/build/tor-browser/obj-macos/intl/icu/target/tools/makeconv'

comment:3 Changed 5 years ago by mingwandroid

I would guess that something has changed in ICU build so that it isn't checking the right thing when determining the host architecture. Likely candidates, without looking at the code, are calls to arch or uname -a. Post full log if you can and config artefacts from ICU.

comment:4 Changed 5 years ago by gk

ICU was not available in ESR 24, so this is something new. That said we might have issues with cross-compiling that part anyway (see: jacek's comment https://bugzilla.mozilla.org/show_bug.cgi?id=1019744#c19). So I'll try

ac_add_options --without-intl-api

and see what happens. Meanwhile I've attached the full build log and the config logs. If you need something else let me know.

Changed 5 years ago by gk

Attachment: build.log.bz2 added

ICU error build log

Changed 5 years ago by gk

Attachment: host_config_log added

ICU host config log

Changed 5 years ago by gk

Attachment: target_config_log added

ICU target config log

comment:5 Changed 5 years ago by gk

Disabling it seems to work. But on second thought it should be no problem cross-compiling ICU on Linux for OS X given:

https://bugzilla.mozilla.org/show_bug.cgi?id=937901
https://bugzilla.mozilla.org/show_bug.cgi?id=912371

got fixed quite some while ago.

Last edited 5 years ago by gk (previous) (diff)

comment:6 Changed 5 years ago by gk

We are close but still failing:

make[5]: Warning: File `/home/ubuntu/build/tor-browser/toolkit/devtools/gcli/source/lib/gcli/commands' has modification time 0.11 s in the future
../../../dist/bin/nsinstall -L /home/ubuntu/build/tor-browser/obj-macos/toolkit/devtools/gcli -m 644 '/home/ubuntu/build/tor-browser/toolkit/devtools/gcli/source/lib/gcli/commands' '../../../dist/bin/modules/devtools/gcli'
../../../dist/bin/nsinstall -L /home/ubuntu/build/tor-browser/obj-macos/toolkit/devtools/gcli -m 644 '/home/ubuntu/build/tor-browser/toolkit/devtools/gcli/source/lib/gcli/connectors' '../../../dist/bin/modules/devtools/gcli'
../../../dist/bin/nsinstall -L /home/ubuntu/build/tor-browser/obj-macos/toolkit/devtools/gcli -m 644 '/home/ubuntu/build/tor-browser/toolkit/devtools/gcli/source/lib/gcli/converters' '../../../dist/bin/modules/devtools/gcli'
../../../dist/bin/nsinstall: cannot make symbolic link /home/ubuntu/build/tor-browser/obj-macos/dist/bin/modules/devtools/gcli/commands: File exists
make[5]: *** [../../../dist/bin/modules/devtools/gcli/commands] Error 1
make[5]: *** Waiting for unfinished jobs....
../../../dist/bin/nsinstall: cannot make symbolic link /home/ubuntu/build/tor-browser/obj-macos/dist/bin/modules/devtools/gcli/connectors: File exists
make[5]: ../../../dist/bin/nsinstall: *** [../../../dist/bin/modules/devtools/gcli/connectors] Error 1cannot make symbolic link /home/ubuntu/build/tor-browser/obj-macos/dist/bin/modules/devtools/gcli/converters: File exists

make[5]: *** [../../../dist/bin/modules/devtools/gcli/converters] Error 1

comment:7 Changed 5 years ago by mikeperry

Keywords: ff31-esr TorBrowserTeam201408 removed

comment:8 Changed 5 years ago by gk

A newer libfaketime solves this for OS X, too but the collateral damage is reliably hitting #10153. But we can fix that if we exclude |rsync| via FAKETIME_SKIP_CMDS as well. Now, for some unknown reason the rsync command needs to be first as only the first command is still assigned to FAKETIME_SKIP_CMDS when it comes to the rsync related part of the build process...

comment:9 in reply to:  5 Changed 5 years ago by gk

Replying to gk:

Disabling it seems to work. But on second thought it should be no problem cross-compiling ICU on Linux for OS X given:

https://bugzilla.mozilla.org/show_bug.cgi?id=937901
https://bugzilla.mozilla.org/show_bug.cgi?id=912371

got fixed quite some while ago.

Cross-compiling a 64 bit Tor Browser with ICU support works. Given that we want to phase out 32 bit OS X builds pretty soon disabling ICU for the while is a good enough solution.

comment:10 Changed 5 years ago by gk

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.