Last Comment Bug 899722 - Bug 853301 broke non-tier1 platforms | enable ECMAScript intl API on BSDs too
: Bug 853301 broke non-tier1 platforms | enable ECMAScript intl API on BSDs too
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: JavaScript: Internationalization API (show other bugs)
: Trunk
: x86_64 OpenBSD
-- normal (vote)
: mozilla26
Assigned To: Landry Breuil (:gaston)
:
: Jeff Walden [:Waldo] (remove +bmo to email)
Mentors:
Depends on: 853301
Blocks:
  Show dependency treegraph
 
Reported: 2013-07-30 12:30 PDT by Landry Breuil (:gaston)
Modified: 2014-02-09 06:10 PST (History)
4 users (show)
ryanvm: in‑testsuite-
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Enable ecmascript intl api on BSDs (1.50 KB, patch)
2013-07-30 13:29 PDT, Landry Breuil (:gaston)
no flags Details | Diff | Splinter Review
Enable ecmascript intl api on BSDs (6.39 KB, patch)
2013-08-01 01:04 PDT, Landry Breuil (:gaston)
mozillabugs: feedback+
Details | Diff | Splinter Review
Part 1 : mh-bsd-gcc fixes to strip extra 's' in lib name (2.20 KB, patch)
2013-08-03 03:20 PDT, Landry Breuil (:gaston)
mh+mozilla: review-
Details | Diff | Splinter Review
Part 2 : backport upstream r32937 (5.57 KB, patch)
2013-08-03 03:21 PDT, Landry Breuil (:gaston)
mozillabugs: review+
Details | Diff | Splinter Review
Part 3 : build system goo to properly enable ecmascript intl api on *bsd (1.52 KB, patch)
2013-08-03 03:22 PDT, Landry Breuil (:gaston)
mh+mozilla: review+
Details | Diff | Splinter Review
Part 0 : seperate patches for bugs 724533 & 853701 into separate patches and make update-icu.sh apply them (19.94 KB, patch)
2013-08-11 10:41 PDT, Landry Breuil (:gaston)
mh+mozilla: review-
Details | Diff | Splinter Review
Part 1 : mh-bsd-gcc fixes to strip extra 's' in lib name (2.40 KB, patch)
2013-08-11 10:43 PDT, Landry Breuil (:gaston)
mh+mozilla: review+
Details | Diff | Splinter Review
Part 2 : backport upstream r32937 (9.43 KB, patch)
2013-08-11 10:46 PDT, Landry Breuil (:gaston)
jwalden+bmo: review+
Details | Diff | Splinter Review
Part 0 : seperate patches for bugs 724533 & 853701 into separate patches and make update-icu.sh apply them (19.95 KB, patch)
2013-08-14 02:58 PDT, Landry Breuil (:gaston)
mh+mozilla: review+
Details | Diff | Splinter Review
Part 4 : inherit CC/CXX like on Linux (2.40 KB, patch)
2013-08-14 13:31 PDT, Jan Beich
mh+mozilla: review+
Details | Diff | Splinter Review
Part 5 : clobber workaround (Try run required) (1.03 KB, patch)
2013-08-14 17:09 PDT, Jan Beich
no flags Details | Diff | Splinter Review
make icu (after clobber) (33.04 KB, text/plain)
2013-08-14 17:11 PDT, Jan Beich
no flags Details
make icu (normal) (49.50 KB, text/plain)
2013-08-14 17:12 PDT, Jan Beich
no flags Details

Description User image Landry Breuil (:gaston) 2013-07-30 12:30:15 PDT
As of now configure fails with:

configure: error: ECMAScript Internationalization API is not yet supported on this platform

cf http://buildbot.rhaalovely.net/builders/mozilla-central-i386/builds/377/steps/configure/logs/stdio

I know it can be disabled via a configure arg probably, but can we have sane defaults for everyone instead of an error message on poor third-world oses ?
Comment 1 User image Landry Breuil (:gaston) 2013-07-30 12:33:49 PDT
The fix is probably easy, enabling it on *BSD should just be a matter of adding OS names to js/src/configure.in line 4281.
Comment 2 User image Landry Breuil (:gaston) 2013-07-30 12:48:24 PDT
Ok, not so straightforward, since it also needs support to run icu's configure which sets ICU_TARGET depending on the os, which also bails out on *BSD.

So, either make --disable-intl-api default for non-tier1 platforms in configure.in :

ie change
if test "$MOZ_BUILD_APP" != "browser"; then
for
if test "$MOZ_BUILD_APP" != "browser" || OS_TARGET not in WINNT Linux Darwin; then

or fiddle with icu build options in js/src/configure.in.

Nice timing for landing this & breaking us just a few days before an uplift :(
Comment 3 User image Landry Breuil (:gaston) 2013-07-30 12:54:01 PDT
intl/icu/source/runConfigureICU claims support for FreeBSD but does nothing for it (no case in the switch) and probably bails out early, and has no support for the other BSDs.

Guess it'll have to go the --disable-intl-api route. Of course ICU works fine on all BSDs, we have ports for it but bug 851992 wasnt commited yet... and the build/configure system looks not-so-standard.
Comment 4 User image Landry Breuil (:gaston) 2013-07-30 13:29:30 PDT
Created attachment 783331 [details] [diff] [review]
Enable ecmascript intl api on BSDs

Missed the *BSD case in runconfigureICU.. with that patch, configure passes on OpenBSD. I have to resort to the "SomeBSD" hack for dragonfly, otherwise i'd just pass OS_TARGET.

Will do a build (to ensure the bundled icu actually builds) before asking for review, if this is the way to go ?
Comment 5 User image Jeff Walden [:Waldo] (remove +bmo to email) 2013-07-30 16:32:32 PDT
If that patch works, that's totally cool -- just as long as we're not breaking the tier1 platforms, and ideally not unduly disturbing how they do stuff (and this clearly doesn't).

We'll need to futz with this to support bug 864843 and bug 866301, which will break this, but I'll poke you when I start working on that so we can roughly coordinate or so.  I'm focusing on desktop for now; those others are much secondary.
Comment 6 User image Landry Breuil (:gaston) 2013-07-30 22:39:47 PDT
Made some progress but it doesnt work yet :

- intl/icu/source/tools/genrb/derb.c has a conflicting 'truncate' declaration which tries to override the one from unistd.h : int        truncate(const char *, off_t);
I've renamed the boolean to 'dotruncate', dunno if that's acceptable.
- for some reason icu builds ./intl/icu/lib/libsicui18n.a instead of libicui18n.a (note the extra s) and linking libjs_static.a fails, it cant find the 3 icu libs. I'll have to look deeper into it.
Comment 7 User image Norbert Lindenberg 2013-07-30 22:57:44 PDT
(In reply to Landry Breuil (:gaston) from comment #6)

> - for some reason icu builds ./intl/icu/lib/libsicui18n.a instead of
> libicui18n.a (note the extra s) and linking libjs_static.a fails, it cant
> find the 3 icu libs. I'll have to look deeper into it.

I had a similar problem on Windows; fixed by ICU_LIB_RENAME in js/src/Makefile.in.
Comment 8 User image Landry Breuil (:gaston) 2013-07-31 02:03:37 PDT
Are you sure it's the same ? I dont see anything that could cause that added 's' between the prefix and the actual lib name. The ICU_LIB_RENAME thing seems to be here to remove an extra 'd' after the lib name..

/usr/obj/m-c/js/src/config.status:    (''' LIB_PREFIX ''', r''' lib '''),
/usr/obj/m-c/js/src/config.status:    (''' ICU_LIB_NAMES ''', r''' icui18n icuuc icudata '''),
/usr/obj/m-c/js/src/config.status:    (''' ICU_LIBS ''', r''' $(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib) '''),

i doubt it'd be EXPAND_LIBNAME_PATH, since it's used everywhere....
Comment 9 User image Norbert Lindenberg 2013-07-31 13:16:16 PDT
I said "similar", not "same": The ICU build system is creating files with extra characters that the Mozilla build system doesn't expect. ICU_LIB_RENAME is my hack to get rid of such characters. The ICU_LIB_RENAME for BSD apparently would have to look different from the one for Windows, but the idea may work.
Comment 10 User image Jan Beich 2013-07-31 23:16:41 PDT
Why not borrow from mh-linux ?

  # Remove shared library 's'
  STATIC_PREFIX_WHEN_USED =
  STATIC_PREFIX =
Comment 11 User image Landry Breuil (:gaston) 2013-08-01 00:12:09 PDT
oh, good catch. Will try that.
Comment 12 User image Landry Breuil (:gaston) 2013-08-01 00:17:04 PDT
looking at config/mh-bsd-gcc, this file looks unmaintained upstream, not updated since 2009. Should we copy mh-linux over it, cherrypick lines from it (ie i'd comment the -soname line like in mh-linux), or use directly mh-linux ?
Comment 13 User image Landry Breuil (:gaston) 2013-08-01 01:04:19 PDT
Created attachment 784265 [details] [diff] [review]
Enable ecmascript intl api on BSDs

That version builds the correct libicu* libs, and js shell links against it. Now, to debate :
- is s/truncate/dotruncate/ acceptable ?
- how are patches against icu handled ? directly in the tree, or saved as separate patches to be reapplied after each update from upstream (like skia, harfbuzz, cairo, etc..)
- does the mh-bsd-gcc change looks sane enough, or should i copy over mh-linux ?
Comment 14 User image Norbert Lindenberg 2013-08-01 09:40:35 PDT
Comment on attachment 784265 [details] [diff] [review]
Enable ecmascript intl api on BSDs

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

I'm afraid we need separate patches per file, because each one will go a separate path.

For the build system changes, you'll want a reviewer who actually understands build systems - Gregory Szorc and Mike Hommey have reviewed similar changes for me.

For the changes in mh-bsd-gcc, once reviewed, you should file a ticket against ICU:
http://bugs.icu-project.org/trac/newticket
Include the patch in the bug report - this should let the ICU team accept it without legal paperwork. Make sure you CC yourself (ICU trac strangely doesn't do that automatically), and please CC "norbert" as well.

To track our patches to ICU, I've been adding warnings to the update script, intl/update-icu.sh. Your warning for mh-bsd-gcc will be similar to the first one, the warning for derb.c similar to the second one. Yes, that's patch #4...

To what extent have you tested on the four platforms you're adding? A minimal test is to run the conformance test suite for the internationalization API:
http://test262.ecmascript.org/testcases_intl402.html
There are two known test failures - see bug 853704.

::: intl/icu/source/config/mh-bsd-gcc
@@ +62,5 @@
>  	$(RM) $@ && ln -s ${<F} $@
>  %.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
>  	$(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
>  
> +## End BSD-specific setup

Should be at the end of the file.

@@ +74,5 @@
> +## Remove shared library 's'
> +STATIC_PREFIX_WHEN_USED = 
> +STATIC_PREFIX = 
> +
> +## End Linux-specific setup

Remove the Linux comment - BSD isn't part of the Linux family.

::: intl/icu/source/tools/genrb/derb.c
@@ +53,5 @@
>  static UConverter *defaultConverter = 0;
>  
>  static const int32_t indentsize = 4;
>  static int32_t truncsize = DERB_DEFAULT_TRUNC;
> +static UBool dotruncate = FALSE;

I found this bug is already fixed in the ICU repository; they used opt_truncate for the variable name, so we should do the same.
http://bugs.icu-project.org/trac/changeset?reponame=&new=32937%40icu%2Ftrunk%2Fsource%2Ftools%2Fgenrb%2Fderb.c&old=32179%40icu%2Ftrunk%2Fsource%2Ftools%2Fgenrb%2Fderb.c
http://bugs.icu-project.org/trac/ticket/9786
Comment 15 User image Jeff Walden [:Waldo] (remove +bmo to email) 2013-08-01 13:35:27 PDT
If you're just directly importing fixes from ICU upstream, I think we can live with a warning.  If you're doing an entirely distinct patch that's not upstream yet, I think we need to make our ICU update script apply a patch, as a post-step, that makes the changes being made.  (Although, the latter is definitely best avoided, and maybe we can even get away without it entirely, but I don't think we know that yet.)
Comment 16 User image Landry Breuil (:gaston) 2013-08-03 03:19:28 PDT
(In reply to Norbert Lindenberg from comment #14)

> To what extent have you tested on the four platforms you're adding? A
> minimal test is to run the conformance test suite for the
> internationalization API:
> http://test262.ecmascript.org/testcases_intl402.html
> There are two known test failures - see bug 853704.

Same failures on OpenBSD/amd64, all tests passing but 10.1.1_13 & 10.1.1_19_c.

I cant test for the others, but as the build is broken there too, and i've been usually 'in charge of fixing all the BSDs altogether', i'm pretty sure the results will be the same. Jan, care to test FreeBSD ?
Comment 17 User image Landry Breuil (:gaston) 2013-08-03 03:20:39 PDT
Created attachment 785366 [details] [diff] [review]
Part 1 : mh-bsd-gcc fixes to strip extra 's' in lib name
Comment 18 User image Landry Breuil (:gaston) 2013-08-03 03:21:28 PDT
Created attachment 785367 [details] [diff] [review]
Part 2 : backport upstream r32937
Comment 19 User image Landry Breuil (:gaston) 2013-08-03 03:22:55 PDT
Created attachment 785368 [details] [diff] [review]
Part 3 : build system goo to properly enable ecmascript intl api on *bsd

Just for the record: part 1 reported upstream as http://bugs.icu-project.org/trac/ticket/10290
Comment 20 User image Norbert Lindenberg 2013-08-03 11:06:09 PDT
Comment on attachment 785367 [details] [diff] [review]
Part 2 : backport upstream r32937

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

The changes look good. It would be better, however, to have them in two separate patches in case the fix to derb.c actually needs to be reapplied - the change to update-icu.sh would fail in that case. Also, mention ICU bug 9786 in the patch description to make it easy to figure out which patch to reapply.
Comment 21 User image Norbert Lindenberg 2013-08-03 11:09:56 PDT
Comment on attachment 785366 [details] [diff] [review]
Part 1 : mh-bsd-gcc fixes to strip extra 's' in lib name

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

The change to the ICU build system should be reviewed by Mike; for update-icu.sh, Waldo had higher expectations.
Comment 22 User image Landry Breuil (:gaston) 2013-08-04 00:04:17 PDT
Meanwhile, the build is still broken on all BSDs, and the next uplift is coming..
Comment 23 User image Jan Beich 2013-08-04 07:33:13 PDT
(In reply to Landry Breuil (:gaston) from comment #16)
> I cant test for the others, but as the build is broken there too, and i've
> been usually 'in charge of fixing all the BSDs altogether', i'm pretty sure
> the results will be the same. Jan, care to test FreeBSD ?

I have two issues:

CC/CXX are ignored by runConfigureICU. The build would fail if gcc binary
either doesn't exist or not recent enough to build ICU. A few platforms
are exempted from such bitrot, e.g. Linux and OS X. Bug 869659 may or may
not be related. To avoid patching yet another file we can jump on
ICU_TARGET=Linux bandwagon.

And there's a STATIC_O issue

js/src/builtin/Intl.cpp:(.text._ZN2js19intl_CompareStringsEP9JSContextjPN2JS5ValueE+0x200): undefined reference to `ucol_strcoll_50'
...
/usr/local/bin/ld: js: hidden symbol `ucol_strcoll_50' isn't defined
/usr/local/bin/ld: final link failed: Bad value
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [js] Error 1
gmake[1]: Leaving directory `js/src/shell'

where the build succeeds on the 2nd gmake run. A quick search reveals:

  # 1st run
  intl/icu/lib/libicui18n.a:ucol.ao

  # 2nd run
  intl/icu/lib/libicui18n.a:ucol.ao
  intl/icu/lib/libicui18n.a:ucol.o
  libjs_static.a:ucol.o
Comment 24 User image Mike Hommey [:glandium] 2013-08-04 21:56:01 PDT
Comment on attachment 785366 [details] [diff] [review]
Part 1 : mh-bsd-gcc fixes to strip extra 's' in lib name

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

::: intl/update-icu.sh
@@ +29,5 @@
> +# build on BSD. Check http://bugs.icu-project.org/trac/ticket/10290
> +# whether this has been addressed in the version you're updating to.
> +# If not, obtain the patch from https://bugzilla.mozilla.org/show_bug.cgi?id=899722
> +# and reapply it after running update-icu.sh (additional updates may be needed).
> +# If the bug has been addressed, please delete this warning.

It would just be better to do like with other third party code we have in the tree, and put the patch in the tree, and make update-icu apply all patches in a given directory.
Comment 25 User image Landry Breuil (:gaston) 2013-08-05 00:45:04 PDT
(In reply to Jan Beich from comment #23)
> (In reply to Landry Breuil (:gaston) from comment #16)
> > I cant test for the others, but as the build is broken there too, and i've
> > been usually 'in charge of fixing all the BSDs altogether', i'm pretty sure
> > the results will be the same. Jan, care to test FreeBSD ?
> 
> I have two issues:
> 
> CC/CXX are ignored by runConfigureICU. The build would fail if gcc binary
> either doesn't exist or not recent enough to build ICU. A few platforms
> are exempted from such bitrot, e.g. Linux and OS X. Bug 869659 may or may
> not be related. To avoid patching yet another file we can jump on
> ICU_TARGET=Linux bandwagon.

Yuck. Oh well, since mh-bsd-gcc isnt really maintained.. does using ICU_TARGET=Linux fixes it ? And if on the long term runConfigureICU will be dropped in favor of directly running configure (yay, wrappers on top of wrappers!)

> And there's a STATIC_O issue

Can you fix that ? I dont understand the issue you're seeing.

(In reply to Mike Hommey [:glandium] from comment #24)

> It would just be better to do like with other third party code we have in
> the tree, and put the patch in the tree, and make update-icu apply all
> patches in a given directory.

*cries* NOOOES. Oh well. modeled after which update-foo.sh script ? gfx/skia has nothing to apply patches for example (and the README in patches/ is outdated) js/src/ctypes/libffi has nothing either it seems. Like gfx/ycbcr ? Make a new intl/icu/patches dir, and run patch -p1 from hg patches in there ?

And why am i always the one doing that fscking tedious work ? :p
Comment 26 User image Landry Breuil (:gaston) 2013-08-11 10:41:47 PDT
Created attachment 788704 [details] [diff] [review]
Part 0 : seperate patches for bugs 724533 & 853701 into separate patches and make update-icu.sh apply them

So lets do it this way, extracting the first already applied patches, and removing the blurbs from update-icu.sh. patch -d -p1 < foo will stash them all!
Comment 27 User image Landry Breuil (:gaston) 2013-08-11 10:43:25 PDT
Created attachment 788705 [details] [diff] [review]
Part 1 : mh-bsd-gcc fixes to strip extra 's' in lib name

Add it as a separate patch too, and make update-icu.sh reapply it.
Comment 28 User image Landry Breuil (:gaston) 2013-08-11 10:46:10 PDT
Created attachment 788706 [details] [diff] [review]
Part 2 : backport upstream r32937

Same patch as att 785367, but add it as a separate patch too, and make update-icu.sh apply it. Carrying forward norbert's r+, but reasking waldo for confirmation.

Tested locally without issues on OpenBSD with intl api enabled in configure.in, js shell builds & all tests pass.
Comment 29 User image Jeff Walden [:Waldo] (remove +bmo to email) 2013-08-12 17:16:05 PDT
Comment on attachment 788706 [details] [diff] [review]
Part 2 : backport upstream r32937

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

::: intl/icu/patches/bug-899722-2
@@ +1,1 @@
> +Bug 899722 Part 2 - Backport upstream r32937 to fix symbol collision w/ truncate on BSD r=norbert

Might be worth a link to the ticket to save someone the time of tracking it down if they wanted it, but it's not end-of-the-world important.
Comment 30 User image Mike Hommey [:glandium] 2013-08-12 17:26:12 PDT
Comment on attachment 788704 [details] [diff] [review]
Part 0 : seperate patches for bugs 724533 & 853701 into separate patches and make update-icu.sh apply them

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

::: intl/update-icu.sh
@@ +40,5 @@
>  
>  hg addremove ${icu_dir}
> +
> +patch -d ${icu_dir}/source -p1 < ${icu_dir}/patches/bug-724533
> +patch -d ${icu_dir}/source -p1 < ${icu_dir}/patches/bug-853706

Considering the script starts by removing intl/icu, the patches are gone when you get here, and this doesn't work. You may want to put them under intl/icu-patches.

Also, the patches are relative to topsrcdir, so -p1 doesn't work.

Finally, hg addremove needs to happen after the patching.
Comment 31 User image Landry Breuil (:gaston) 2013-08-14 02:58:12 PDT
Created attachment 790118 [details] [diff] [review]
Part 0 : seperate patches for bugs 724533 & 853701 into separate patches and make update-icu.sh apply them

okay, lets retry.. put the patches in intl/icu-patches, and apply them before running hg addremove. I didnt use patch -d since i assumed intl/update-icu.sh would be run from topsrcdir (but it could be -d ${icu_dir}/../..) , and -p1 is needed since the patches contain the a/ b/ dirs from hg git.

The two other patches on top of this one adding the two other patches will of course be changed accordingly.
Comment 32 User image Mike Hommey [:glandium] 2013-08-14 03:10:08 PDT
Comment on attachment 790118 [details] [diff] [review]
Part 0 : seperate patches for bugs 724533 & 853701 into separate patches and make update-icu.sh apply them

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

::: intl/update-icu.sh
@@ +37,5 @@
>  
>  # Record `svn info`
>  svn info $1 > ${icu_dir}/SVN-INFO
>  
> +patch -p1 < ${icu_dir}/../icu-patches/bug-724533

It would be better to use -d.
Comment 34 User image Landry Breuil (:gaston) 2013-08-14 04:10:22 PDT
Just for the record : used -d ${icu_dir}/../../ as per comment 32, and added a link to the upstream icu bz as per comment 29
Comment 35 User image Jan Beich 2013-08-14 13:31:51 PDT
Created attachment 790417 [details] [diff] [review]
Part 4 : inherit CC/CXX like on Linux
Comment 36 User image Jan Beich 2013-08-14 17:09:58 PDT
Created attachment 790538 [details] [diff] [review]
Part 5 : clobber workaround (Try run required)
Comment 37 User image Jan Beich 2013-08-14 17:11:41 PDT
Created attachment 790539 [details]
make icu (after clobber)
Comment 38 User image Jan Beich 2013-08-14 17:12:15 PDT
Created attachment 790540 [details]
make icu (normal)
Comment 39 User image Mike Hommey [:glandium] 2013-08-14 17:37:14 PDT
Comment on attachment 790538 [details] [diff] [review]
Part 5 : clobber workaround (Try run required)

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

::: js/src/Makefile.in
@@ +257,5 @@
>  #   will discard all files with a non-standard suffix (bug 857450).
>  # - Options for genrb: -k strict parsing; -R omit collation tailoring rules.
>  export::
> +	echo "STATIC_O=$(OBJ_SUFFIX)" > intl/icu/icudefs.local
> +	$(GMAKE) $(ICU_GMAKE_OPTIONS) -C intl/icu GENRBOPTS='-k -R'

What is this trying to solve?
Comment 40 User image Jan Beich 2013-08-14 17:47:57 PDT
(In reply to Mike Hommey [:glandium] from comment #39)
> What is this trying to solve?

#2 issue in comment 23. I've provided the logs in hope
you can reproduce or give advice to a different fix.

  $ diff icu_clobber.log icu_normal.log
Comment 41 User image Mike Hommey [:glandium] 2013-08-14 18:24:27 PDT
(In reply to Jan Beich from comment #40)
> (In reply to Mike Hommey [:glandium] from comment #39)
> > What is this trying to solve?
> 
> #2 issue in comment 23. I've provided the logs in hope
> you can reproduce or give advice to a different fix.
> 
>   $ diff icu_clobber.log icu_normal.log

Starting from a fresh m-c clone, and with an inexistent objdir, how do you reproduce?
Comment 42 User image Jan Beich 2013-08-14 18:41:24 PDT
(In reply to Mike Hommey [:glandium] from comment #41)
> Starting from a fresh m-c clone, and with an inexistent objdir, how do you
> reproduce?

The logs were captured after interrupting the build and doing

  $ cd $objdir/js/src; gmake clean -C intl/icu
  $ gmake -C intl/icu STATIC_O=o GENRBOPTS='-k -R' # icu_clobber.log
  ^C
  $ ls -1 intl/icu/**/*.o
  zsh: no matches found: intl/icu/**/*.o
  $ ls -1 intl/icu/**/*.ao
  ...
  intl/icu/stubdata/stubdata.ao
  $ gmake -C intl/icu STATIC_O=o GENRBOPTS='-k -R' # icu_normal.log
  ^C
  $ ls -1 intl/icu/**/*.o
  ...
  intl/icu/stubdata/stubdata.o
Comment 43 User image Mike Hommey [:glandium] 2013-08-14 19:20:51 PDT
I can't reproduce, and i see no reason for this behaviour.
Comment 46 User image Jan Beich 2013-08-20 13:34:59 PDT
part 4 is yet to land
Comment 47 User image Ryan VanderMeulen [:RyanVM] 2013-08-20 13:47:50 PDT
https://hg.mozilla.org/integration/mozilla-inbound/rev/16eed749e8ab
Comment 48 User image Ed Morley [:emorley] 2013-08-21 05:16:45 PDT
https://hg.mozilla.org/mozilla-central/rev/16eed749e8ab
Comment 49 User image Landry Breuil (:gaston) 2013-08-21 07:37:06 PDT
Interestingly now my builds fail with :

clang++ -fPIC -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11   -o ../../bin/makeconv makeconv.o ucnvstat.o ge
nmbcs.o gencnvex.o -L../../lib -licutu -L../../lib -licui18n -L../../lib -licuuc -L../../stubdata -licudata -lpthread -lm  
local symbol 0: discarded in section `.text._ZNKSt9type_infoeqERKS_' from ../../lib/libicui18n.a(calendar.o)
local symbol 1: discarded in section `.text._ZNK6icu_508Calendar7getTimeER10UErrorCode' from ../../lib/libicui18n.a(calendar.o)
local symbol 2: discarded in section `.text._ZN6icu_508Calendar7setTimeEdR10UErrorCode' from ../../lib/libicui18n.a(calendar.o)
.....
local symbol 1598: discarded in section `.text._ZNK6icu_507UVector4sizeEv' from ../../lib/libicuuc.a(usetiter.o)
local symbol 1599: discarded in section `.text._ZN6icu_5013UnicodeString5setToEi' from ../../lib/libicuuc.a(usetiter.o)
local symbol 1600: discarded in section `.text._ZNK6icu_5013UnicodeString6lengthEv' from ../../lib/libicuuc.a(usetiter.o)
clang-3.3: error: linker command failed with exit code 1 (use -v to see invocation)

Puzzling..
Comment 50 User image Landry Breuil (:gaston) 2013-09-19 07:15:28 PDT
Just FTR, part1/attachment 788705 [details] [diff] [review] has been merged upstream in http://bugs.icu-project.org/trac/changeset/34247/icu/trunk/source/config/mh-bsd-gcc
Comment 51 User image Gordon P. Hemsley [:GPHemsley] 2014-02-09 06:10:42 PST
Mass-moving existing Intl-related bugs to the new Core :: JavaScript: Internationalization API component.

If you think this bug has been moved in error, feel free to move it back to Core :: JavaScript Engine.

[Mass change filter: core-js-intl-api-move]

Note You need to log in before you can comment on or make changes to this bug.