Closed
Bug 732340
Opened 12 years ago
Closed 12 years ago
libxul.so: hidden symbol `int SortedArrayOf<Record<LangSys> >::search<unsigned int>(unsigned int const&) const' isn't defined
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 771222
People
(Reporter: ewong, Assigned: kdevel)
References
Details
Attachments
(1 file, 2 obsolete files)
595 bytes,
patch
|
mozilla
:
review-
|
Details | Diff | Splinter Review |
While linking, the linker chokes stating : /usr/lib/gcc/i486-slackware-linux/4.3.3/../../../../i486-slackware-linux/bin/ld: libxul.so: hidden symbol `int SortedArrayOf<Record<LangSys> >::search<unsigned int>(unsigned int const&) const' isn't defined /usr/lib/gcc/i486-slackware-linux/4.3.3/../../../../i486-slackware-linux/bin/ld: final link failed: Nonrepresentable section on output collect2: ld returned 1 exit status make[5]: *** [libxul.so] Error 1
Reporter | ||
Comment 1•12 years ago
|
||
.mozconfig: ac_add_options --enable-application=calendar ac_add_options --enable-chrome-format=jar mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-sb-release mk_add_options MOZ_MAKE_FLAGS="-j8" mk_add_options AUTOCONF=autoconf2.13
Reporter | ||
Comment 2•12 years ago
|
||
This also happens when building SeaMonkey (trunk) w/ Lightning.
Comment 3•12 years ago
|
||
I have no problems building Sunbird on win32. Linux builds look OK on <http://tinderbox.mozilla.org/showbuilds.cgi?tree=CalendarTrunk>. Maybe something special to your system or build chain?
Reporter | ||
Comment 4•12 years ago
|
||
(In reply to Stefan Sitter from comment #3) > I have no problems building Sunbird on win32. > > Linux builds look OK on > <http://tinderbox.mozilla.org/showbuilds.cgi?tree=CalendarTrunk>. > Maybe something special to your system or build chain? I think I found the problem. When I add |ac_add_options --disable-optimization| to my .mozconfig, both Sunbird and SeaMonkey w/Lightning builds properly. But looking at CalendarTrunk, it's the builds are optimized. I'm wondering if I've hit some sort of memory limit here. I have 1GB ram for this linux box.
Reporter | ||
Comment 5•12 years ago
|
||
Resolving this to WFM as this is a machine issue.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → WORKSFORME
I am hitting exact same issue as reported by Edmund, with a separately built 4.3.3 based toolchain for ARM, in a crosscompiling setup using latest nightly (12 Mar 12). Will try with the --disable-optimization step and report.
Comment 8•12 years ago
|
||
Bug 736131 reports the same problem with Firefox and therefore this doesn't look like a Sunbird or Lightning problem.
To update from my side - I moved to gcc4.5, and no longer see this issue. Suspecting the size of libjs_static, that has grown to 137+ MB.
Assignee | ||
Comment 10•12 years ago
|
||
nm gfx/harfbuzz/src/hb-ot-layout.o | grep Sorted GCC 4.3.2 0000000000000000 W _ZNK13SortedArrayOfI11RangeRecordE6searchIjEEiRKT_ U _ZNK13SortedArrayOfI6RecordI6ScriptEE6searchIjEEiRKT_ 0000000000000000 W _ZNK13SortedArrayOfI6RecordI7LangSysEE6searchIjEEiRKT_ U _ZNK13SortedArrayOfI7IntTypeItEE6searchIjEEiRKT_ 0000000000000000 W _ZZNK13SortedArrayOfI11RangeRecordE6searchIjEEiRKT_EN3Cmp3cmp GCC 4.7.0 0000000000000000 W _ZNK13SortedArrayOfI6RecordI7LangSysEE6searchIjEEiRKT_ 0000000000000000 W _ZNK13SortedArrayOfI7IntTypeItEE6searchIjEEiRKT_ 0000000000000000 W _ZZNK13SortedArrayOfI11RangeRecordE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS0_ 0000000000000000 W _ZZNK13SortedArrayOfI6RecordI6ScriptEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS2_ 0000000000000000 W _ZZNK13SortedArrayOfI6RecordI7LangSysEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS2_ 0000000000000000 W _ZZNK13SortedArrayOfI7IntTypeItEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS1_
Assignee | ||
Comment 11•12 years ago
|
||
Assignee | ||
Comment 12•12 years ago
|
||
Assignee | ||
Comment 13•12 years ago
|
||
Attachment #606524 -
Attachment is obsolete: true
Attachment #606527 -
Attachment is obsolete: true
Updated•12 years ago
|
Assignee: nobody → kdevel
Component: Sunbird Only → Graphics
Product: Calendar → Core
QA Contact: sunbird → thebes
Updated•12 years ago
|
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Updated•12 years ago
|
Status: REOPENED → ASSIGNED
Comment 14•12 years ago
|
||
Comment on attachment 606528 [details] [diff] [review] patch: instanciate templates explictly v2 (moved to .cc) Hello Graphics Folks. Joe, could you delegate to an appropriate reviewer or review this yourself?
Attachment #606528 -
Flags: review?(joe)
Comment 15•12 years ago
|
||
Is this an actual code bug, or is it (as it looks at first glance) really a workaround for a toolchain or build environment bug? Should we be asking Behdad to take this upstream in harfbuzz? I'd prefer to avoid local patches that we then have to maintain indefinitely across future updates....
Comment 16•12 years ago
|
||
Comment on attachment 606528 [details] [diff] [review] patch: instanciate templates explictly v2 (moved to .cc) Review of attachment 606528 [details] [diff] [review]: ----------------------------------------------------------------- Jonathan, feel free to delegate to Behdad.
Attachment #606528 -
Flags: review?(joe) → review?(jfkthame)
Comment 17•12 years ago
|
||
Comment on attachment 606528 [details] [diff] [review] patch: instanciate templates explictly v2 (moved to .cc) Behdad, this appears to be needed to work around build problems with some toolchains (see above). Do you see any problem with adding the explicit instantiations as in this patch? Would you be willing to take this upstream? It presumably may help other users to build successfully, too, depending on their toolchain and environment.
Attachment #606528 -
Flags: review?(jfkthame) → review?(mozilla)
Comment 18•12 years ago
|
||
(In reply to Jonathan Kew (:jfkthame) from comment #17) > Comment on attachment 606528 [details] [diff] [review] > patch: instanciate templates explictly v2 (moved to .cc) > > Behdad, this appears to be needed to work around build problems with some > toolchains (see above). Do you see any problem with adding the explicit > instantiations as in this patch? > > Would you be willing to take this upstream? It presumably may help other > users to build successfully, too, depending on their toolchain and > environment. Well, normally I wouldn't have anything against these kinds of things, however, only if it's testable so it doesn't get outdated. For example, there's many many more template instantiations happening in HarfBuzz. Why these three? It's quite arbitrary. Maybe there's something we are doing differently about these three that is causing it? I don't know. And I think we should try to understand that first. The more I look at it the more arbitrary it looks. I think this needs more investigation.
Comment 19•12 years ago
|
||
This bug has popped up for me in V13 release compile. Trying ac_add_options --disable-optimization gcc is 4.3 from debian lenny stable 64 bit environment Will report back when fresh compile succeeds or fails
Comment 20•12 years ago
|
||
No joy with config file changes, libxul.so: hidden symbol `int SortedArrayOf<Record<LangSys> >::search<unsigned int>(unsigned int const&) const' isn't defined aborts the make pending resolution I'll stay with version 12...
Comment 21•12 years ago
|
||
Jonathan, any hints as to how to repro this?
Comment 22•12 years ago
|
||
Not really; seems to be dependent on the compiler version, as well as (sometimes) optimization options. The obvious thing to try would be gcc 4.3 on Lenny 64bit, as per comment 19, but I don't have such a machine on hand, I'd have to set up something from scratch in order to try it.
Comment 23•12 years ago
|
||
I am happy to test compile any suggestions or try to help in any way...but this level of code hacking is a bit outside my pay grade. I don't even understand the error message.:-) It is perhaps possible that I could open up telnet/ssh access to that machine from one fixed IP address... Th issue seems to be somewhere deep within the graphics and fonts stuff.
Comment 24•12 years ago
|
||
You can test by trying to get harfbuzz itself to compile. That's much easier. Here's a tarball for you: http://www.freedesktop.org/software/harfbuzz/snapshot/harfbuzz-20120607.tar.bz2 Try with various optimization levels (-O2 -O3 -Os).
Comment 25•12 years ago
|
||
Ok that doesnt compile either I did ./configure make and got hb-ft.cc:34:10: error: #include expects "FILENAME" or <FILENAME> hb-ft.cc: In function ‘hb_position_t hb_ft_get_glyph_h_advance(hb_font_t*, void*, hb_codepoint_t, void*)’: hb-ft.cc:102: error: ‘FT_Get_Advance’ was not declared in this scope hb-ft.cc: In function ‘hb_position_t hb_ft_get_glyph_v_advance(hb_font_t*, void*, hb_codepoint_t, void*)’: hb-ft.cc:118: error: ‘FT_Get_Advance’ was not declared in this scope Hmm. FT_ADVANCES_H is nowhere defined it seems. how do I try with optimisations?
Comment 26•12 years ago
|
||
Something broken with your FreeType installation.
Comment 27•12 years ago
|
||
dunno how. that constant is nowhere defined in any harfbuzz files.. Neither does it seem to exist anywhere in /usr/include/freetype2/freetype/*.h Its a perfectly standard freetype installation from the lenny repository. Where is it SUPPOSED to be defined?
Comment 28•12 years ago
|
||
It was added in FreeType 2.3.8 (released in January 2009). I suspect Lenny only provides 2.3.7.
Comment 29•12 years ago
|
||
yeah. Ive been trawling through that header tree and it simply doesn't exist anywhere. Shhesh..
Comment 30•12 years ago
|
||
In /usr/include/ft2build.h. Donno. Not going to worry on 4yr old systems for now. Feel free to hack it out for testing.
Comment 31•12 years ago
|
||
spose there's no precompiled 64 bit firefox V13 is there? Lenny may be 4 years old, but its 64 bit! No dice Behdad - that include file merely loads the default tree config file which doesn't call for ftadvanc.h because it doesn't exist on my system! I'll see if there's a better backport of the freetype available..but its getting messy. Odd that I didn't get that error in the mozilla build tho.
Comment 32•12 years ago
|
||
Jonathan: yes. lenny freetype is 2.3.7.
Comment 33•12 years ago
|
||
(In reply to tnp from comment #31) > Odd that I didn't get that error in the mozilla build tho. Not odd; Gecko doesn't use the hb-ft stuff, it provides its own font callbacks.
Comment 34•12 years ago
|
||
Now I am truly confused. If the error is in the HB stuff and gecko doesn't use it? Anyway got harfbuzz to compile by commenting out all references to ‘FT_Get_Advance’ and the header file so the only definite things so far is that hb will compile, but ought to have a better freetype than I have installed..so whats next?
Comment 35•12 years ago
|
||
Next is to try to reproduce the compile error. Check the commandline gecko uses to compile harfbuzz, see what optimizations, etc it's using. Jonathan, how old is HB in gecko these days?
Comment 36•12 years ago
|
||
Well I am getting reasonably confused. I patched the harfbuzz source in the gecko tree to conform with what had compiled standalone and I get the same error. libxul.so: hidden symbol `int SortedArrayOf<Record<LangSys> >::search<unsigned int>(unsigned int const&) const' isn't defined I'll try a make clean unless you have a better suggestion. harfbuzz/gecko looks pretty identical to what I downloaded..
Comment 37•12 years ago
|
||
(In reply to tnp from comment #34) > Now I am truly confused. > > If the error is in the HB stuff and gecko doesn't use it? Gecko uses harfbuzz, but it doesn't use the hb-ft interface to freetype fonts.
Comment 38•12 years ago
|
||
(In reply to Behdad Esfahbod from comment #35) > Next is to try to reproduce the compile error. Check the commandline gecko > uses to compile harfbuzz, see what optimizations, etc it's using. > > Jonathan, how old is HB in gecko these days? In current mozilla-central, it's pretty recent (updated 2012-06-04 to commit a3547330fa88e30a138f6f17e60d9c7d1e316622, in bug 758236.) But as tnp is trying to build the mozilla-13 release, that'll be significantly older... it was updated on 2012-02-14 to commit f51e167436a51b890ffe3f7f7920498fa287acd9 in bug 695857, which I think was the last update that's in v13. We have a few local patches on top of that commit, but I don't think any of them would affect this template-instantiation issue.
Comment 39•12 years ago
|
||
Make clean failed also. Can anyone tell me how to build just the bits we think are problematic? because the whole build takes 3 hours on this machine.. then I can redirect the output to a file and go over it in detail looking to see whats what.
Comment 40•12 years ago
|
||
Ok. I managed to ID how the make system sort of works and build just the harfbuzz section using the local Makefile and this is the actual output from the command that compiles it. c++ -o hb-ot-layout.o -c -I../../../dist/stl_wrappers -I../../../dist/system_wrappers -include /home/leo/Downloads/firefox-src/mozilla-release/config/gcc_hidden.h -DMOZ_GLUE_IN_P ROGRAM -DMOZILLA_INTERNAL_API -D_IMPL_NS_COM -DEXPORT_XPT_API -DEXPORT_XPTC_API -D_IMPL_NS_GFX -D_IMPL_NS_WIDGET -DIMPL_XREAPI -DIMPL_NS_NET -DIMPL_THEBES -DSTATIC_EXPORTABLE_JS _API -DOSTYPE=\"Linux2.6.32-bpo\" -DOSARCH=Linux -DPACKAGE_VERSION="\"moz\"" -DPACKAGE_BUGREPORT="\"http://bugzilla.mozilla.org/\"" -DHAVE_OT=1 -I/home/leo/Downloads/firefox-src/ mozilla-release/gfx/harfbuzz/src -I/home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src -I. -I../../../dist/include -I../../../dist/include/nsprpub -I/home/leo/Downloads/firefox-src/mozilla-release/obj-firefox/dist/include/nspr -I/home/leo/Downloads/firefox-src/mozilla-release/obj-firefox/dist/include/nss -fPIC -fno-rtti -pedantic -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctordtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-variadic-macros -Werror=return-type -Wno-long -long -fno-exceptions -fno-strict-aliasing -fshort-wchar -ffunction-sections -fdata-sections -pthread -pipe -DNDEBUG -DTRIMMED -g -Os -freorder-blocks -fomit-frame-pointer -D MOZILLA_CLIENT -include ../../../mozilla-config.h -MD -MF .deps/hb-ot-layout.pp -UDEBUG /home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src/hb-ot-layout.cc hb-ot-map.cc Errors or warnings are produced: In file included from /home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src/hb-object-private.hh:37, from /home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src/hb-buffer-private.hh:35, from /home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src/hb-ot-map-private.hh:32, from /home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src/hb-ot-shape-private.hh:34, from /home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src/hb-ot-shape-normalize.cc:27: /home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src/hb-mutex-private.hh:69:2: warning: #warning is a GCC extension /home/leo/Downloads/firefox-src/mozilla-release/gfx/harfbuzz/src/hb-mutex-private.hh:69:2: warning: #warning "Could not find any system to define platform macros, library will NOT be thread-safe" performing an nm on the object file gives me this: nm hb-ot-layout.o | grep Sorted 0000000000000000 W _ZNK13SortedArrayOfI11RangeRecordE6searchIjEEiRKT_ U _ZNK13SortedArrayOfI6RecordI6ScriptEE6searchIjEEiRKT_ U _ZNK13SortedArrayOfI6RecordI7LangSysEE6searchIjEEiRKT_ U _ZNK13SortedArrayOfI7IntTypeItEE6searchIjEEiRKT_ 0000000000000000 W _ZZNK13SortedArrayOfI11RangeRecordE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS0_ 0000000000000000 W _ZZNK13SortedArrayOfI6RecordI6ScriptEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS2_ 0000000000000000 W _ZZNK13SortedArrayOfI6RecordI7LangSysEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS2_ 0000000000000000 W _ZZNK13SortedArrayOfI7IntTypeItEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS1_ This is about the limit of my pay grade: C++ is not a language I know very well. :-)
Comment 41•12 years ago
|
||
One final point: this is the same operation applied to the standalone library compiled object nm libharfbuzz_la-hb-ot-layout.o | grep Sorted 0000000000000000 W _ZNK13SortedArrayOfI11RangeRecordE6searchIjEEiRKT_ 0000000000000000 W _ZZNK13SortedArrayOfI11RangeRecordE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS0_ 0000000000000000 W _ZZNK13SortedArrayOfI6RecordI6ScriptEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS2_ 0000000000000000 W _ZZNK13SortedArrayOfI6RecordI7LangSysEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS2_ 0000000000000000 W _ZZNK13SortedArrayOfI7IntTypeItEE6searchIjEEiRKT_EN3Cmp3cmpEPKjPKS1_ So it looks like its an interaction between a particular set of sources and a particular set of compile options, and not compiler version dependent, necessarily. Which raises the question of who is to fix it! :-)
Updated•12 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 12 years ago → 12 years ago
Resolution: --- → DUPLICATE
Comment 43•12 years ago
|
||
Comment on attachment 606528 [details] [diff] [review] patch: instanciate templates explictly v2 (moved to .cc) Review of attachment 606528 [details] [diff] [review]: ----------------------------------------------------------------- This is being tracked in the bug this is marked dupe of.
Attachment #606528 -
Flags: review?(mozilla) → review-
You need to log in
before you can comment on or make changes to this bug.
Description
•