Syllable Forum Index Syllable
Syllable Forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

syllablized libxml source
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Syllable Forum Index -> Syllable Desktop
View previous topic :: View next topic  
Author Message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sat Feb 07, 2015 4:23 pm    Post subject: Error Reply with quote

Kaj: Yes - the kernel log now has:

could not find symbol u_strToUpper
ERROR : execve(...Web Browser) failed. Too late to recover. Will exit.


I looked at the file date on the icu libs (that's where the symbol is) - and it's 2007. What gcc setup was in use back then? I notice the other libs are typically more recent (2011, etc)

- Ron
Back to top
View user's profile Send private message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sat Feb 07, 2015 4:52 pm    Post subject: Reply with quote

The readelf utility shows the symbols in the icu lib supplied by the Syllable resource, as shown:

Relocation section '.rel.plt' at offset 0x1c10 contains 73 entries:

Offset Info Type Sym.Value Sym. Name
800088e0 00007207 R_386_JUMP_SLOT 00000000 u_strToUpper_3_6


Symbol table '.dynsym'

114: 00000000 55 FUNC GLOBAL DEFAULT UND u_strToUpper_3_6


Version symbols section '.gnu.version' contains 155 entries:
Addr: 00000000800018ca Offset: 0x0018ca Link: 2 (.dynsym)
000: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
004: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
008: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
00c: 0 (*local*) 1 (*global*) 1 (*global*) 0 (*local*)
010: 1 (*global*) 0 (*local*) 1 (*global*) 1 (*global*)
014: 2 (GLIBCXX_3.4) 0 (*local*) 3 (GLIBC_2.3) 3 (GLIBC_2.3)
018: 0 (*local*) 1 (*global*) 1 (*global*) 3 (GLIBC_2.3)
01c: 1 (*global*) 1 (*global*) 1 (*global*) 3 (GLIBC_2.3)
020: 0 (*local*) 0 (*local*) 0 (*local*) 1 (*global*)
024: 0 (*local*) 0 (*local*) 1 (*global*) 1 (*global*)
028: 1 (*global*) 0 (*local*) 3 (GLIBC_2.3) 0 (*local*)
02c: 0 (*local*) 0 (*local*) 0 (*local*) 1 (*global*)
030: 0 (*local*) 1 (*global*) 0 (*local*) 1 (*global*)
034: 1 (*global*) 1 (*global*) 1 (*global*) 1 (*global*)
038: 1 (*global*) 0 (*local*) 1 (*global*) 1 (*global*)
03c: 1 (*global*) 1 (*global*) 1 (*global*) 4 (GCC_3.0)
040: 3 (GLIBC_2.3) 0 (*local*) 1 (*global*) 0 (*local*)
044: 1 (*global*) 3 (GLIBC_2.3) 0 (*local*) 1 (*global*)
048: 0 (*local*) 1 (*global*) 0 (*local*) 0 (*local*)
04c: 1 (*global*) 1 (*global*) 1 (*global*) 1 (*global*)
050: 0 (*local*) 0 (*local*) 0 (*local*) 1 (*global*)
054: 0 (*local*) 1 (*global*) 1 (*global*) 0 (*local*)
058: 1 (*global*) 1 (*global*) 3 (GLIBC_2.3) 1 (*global*)
05c: 0 (*local*) 1 (*global*) 0 (*local*) 1 (*global*)
060: 1 (*global*) 3 (GLIBC_2.3) 1 (*global*) 0 (*local*)
064: 1 (*global*) 0 (*local*) 1 (*global*) 0 (*local*)
068: 0 (*local*) 2 (GLIBCXX_3.4) 3 (GLIBC_2.3) 1 (*global*)
06c: 0 (*local*) 1 (*global*) 1 (*global*) 0 (*local*)
070: 0 (*local*) 5 (CXXABI_1.3) 0 (*local*) 1 (*global*)
074: 0 (*local*) 3 (GLIBC_2.3) 0 (*local*) 0 (*local*)
078: 1 (*global*) 1 (*global*) 0 (*local*) 1 (*global*)
07c: 1 (*global*) 1 (*global*) 3 (GLIBC_2.3) 1 (*global*)
080: 1 (*global*) 0 (*local*) 0 (*local*) 3 (GLIBC_2.3)
084: 0 (*local*) 2 (GLIBCXX_3.4) 1 (*global*) 4 (GCC_3.0)
088: 1 (*global*) 1 (*global*) 1 (*global*) 1 (*global*)
08c: 3 (GLIBC_2.3) 3 (GLIBC_2.3) 0 (*local*) 1 (*global*)
090: 1 (*global*) 0 (*local*) 1 (*global*) 0 (*local*)
094: 0 (*local*) 2 (GLIBCXX_3.4) 1 (*global*) 2 (GLIBCXX_3.4)
098: 0 (*local*) 1 (*global*) 0 (*local*)

Version needs section '.gnu.version_r' contains 3 entries:
Addr: 0x0000000080001a00 Offset: 0x001a00 Link to section: 3 (.dynstr)
000000: Version: 1 File: libgcc_s.so.3 Cnt: 1
0x0010: Name: GCC_3.0 Flags: none Version: 4
0x0020: Version: 1 File: libc.so.2 Cnt: 1
0x0030: Name: GLIBC_2.3 Flags: none Version: 3
0x0040: Version: 1 File: libstdc++.so.6 Cnt: 2
0x0050: Name: CXXABI_1.3 Flags: none Version: 5
0x0060: Name: GLIBCXX_3.4 Flags: none Version: 2
Back to top
View user's profile Send private message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sat Feb 07, 2015 5:10 pm    Post subject: Reply with quote

This is the version needs section from a lib I freshly compiled on Syllable:

Version needs section '.gnu.version_r' contains 4 entries:
Addr: 0x000000008000dc1c Offset: 0x00dc1c Link to section: 3 (.dynstr)
000000: Version: 1 File: libm.so.2 Cnt: 1
0x0010: Name: GLIBC_2.3 Flags: none Version: 6
0x0020: Version: 1 File: libc.so.2 Cnt: 1
0x0030: Name: GLIBC_2.3 Flags: none Version: 4
0x0040: Version: 1 File: libgcc_s.so.3 Cnt: 1
0x0050: Name: GCC_3.0 Flags: none Version: 3
0x0060: Version: 1 File: libstdc++.so.6 Cnt: 2
0x0070: Name: GLIBCXX_3.4 Flags: none Version: 5
0x0080: Name: CXXABI_1.3 Flags: none Version: 2
Back to top
View user's profile Send private message
Kaj
The Knights of Syllable


Joined: 14 Sep 2007
Posts: 2204
Location: Friesland

PostPosted: Sat Feb 07, 2015 5:47 pm    Post subject: Reply with quote

In 2007 we probably had an older GCC, but that has little to do with u_strToUpper.

It looks like this is a function defined by the ICU library, so the question is why it is not found by Webster. What does readelf -d on your Webster binary say?
Back to top
View user's profile Send private message Visit poster's website
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sat Feb 07, 2015 5:59 pm    Post subject: Reply with quote

[quote="Kaj"]In 2007 we probably had an older GCC, but that has little to do with u_strToUpper.

It looks like this is a function defined by the ICU library, so the question is why it is not found by Webster. What does readelf -d on your Webster binary say?[/quote]

Here's the "readelf -d" on the new Webster binary:


Dynamic section at offset 0x3981c contains 29 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libjavascriptcore.so.1]
0x00000001 (NEEDED) Shared library: [libwebcore.so.1]
0x00000001 (NEEDED) Shared library: [libwebview.so.1]
0x00000001 (NEEDED) Shared library: [libsyllable.so.7]
0x00000001 (NEEDED) Shared library: [libstdc++.so.6]
0x00000001 (NEEDED) Shared library: [libm.so.2]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.3]
0x00000001 (NEEDED) Shared library: [libc.so.2]
0x00000010 (SYMBOLIC) 0x0
0x0000000c (INIT) 0x8000dcdc
0x0000000d (FINI) 0x80036d10
0x00000004 (HASH) 0x800000b4
0x00000005 (STRTAB) 0x80004418
0x00000006 (SYMTAB) 0x800014b8
0x0000000a (STRSZ) 25453 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000003 (PLTGOT) 0x8003a924
0x00000002 (PLTRELSZ) 2000 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0x8000d50c
0x00000011 (REL) 0x8000ade4
0x00000012 (RELSZ) 10024 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x00000016 (TEXTREL) 0x0
0x6ffffffe (VERNEED) 0x8000ad74
0x6fffffff (VERNEEDNUM) 3
0x6ffffff0 (VERSYM) 0x8000a786
0x6ffffffa (RELCOUNT) 246
0x00000000 (NULL) 0x0
Back to top
View user's profile Send private message
Kaj
The Knights of Syllable


Joined: 14 Sep 2007
Posts: 2204
Location: Friesland

PostPosted: Sat Feb 07, 2015 6:33 pm    Post subject: Reply with quote

The makefile installs ICU as a shared library, but you don't have it linked in as a dependency, so that's why the function is not found. It's odd, because only icudata is installed, and JavaScriptCore and WebCore contain parts of ICU themselves. They also link in libsicuuc statically, so that has probably gone wrong.

The instructions are adamant that you use GCC 3:

"You must use GCC 3.4.3. Using any other version of GCC will result in a
version of Webster which will not run!"

This is exactly the situation you have, so we should believe that.
Back to top
View user's profile Send private message Visit poster's website
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sat Feb 07, 2015 7:06 pm    Post subject: Reply with quote

libJavascriptcore needs libicudata.so (readelf shows), but u_strToUpper is in the statically linked libsicuuc.a. So, you're right, it doesn't make any sense to me yet.
Back to top
View user's profile Send private message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sat Feb 07, 2015 7:34 pm    Post subject: Reply with quote

Both libJavascript and libwebcore need u_strToUpper, but in both cases that is supplied by the statically linked libsicuuc.a lib.

Only libjavascript needs libicudata.so, and is linked in.

Webster itself doesn't need strToUpper directly. Well, enough for one day Kaj! I'm going to dinner. Thanks for your help

- Ron
Back to top
View user's profile Send private message
Kaj
The Knights of Syllable


Joined: 14 Sep 2007
Posts: 2204
Location: Friesland

PostPosted: Sun Feb 08, 2015 1:31 am    Post subject: Reply with quote

I knew there was a package that I had maintained GCC 3.4 for, but I forgot it was Webster. Smile Since you have to switch GCC versions, I couldn't pull Webster into the system build. As you see, the support libraries aren't well isolated either, so they're not in separate resource packages, except ICU more or less.
Back to top
View user's profile Send private message Visit poster's website
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sun Feb 08, 2015 9:09 am    Post subject: Reply with quote

Well, problems like this often end up being embarrassingly simple. First, I'm sent off in the wrong direction based on error messages, then spend time going round and round on what should normally be an easy-to-fix problem. Oh well. This is interesting I guess. I'm sure we'll nail it down here shortly.

Anyway, just for grins I re-linked libjavascriptcore and libwebcore to use libicuuc.so instead of static linking it. I still had the exact same problem afterwards.

Objdump shows that the original Webster package in system was compiled with GCC 4.1.2. The ICU libraries were also compiled with GCC-4.1.2. So, there's some way it works on the current system gcc setup.

- Ron
Back to top
View user's profile Send private message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sun Feb 08, 2015 9:26 am    Post subject: Reply with quote

Actually, on closer inspection, objdump shows ONLY gcc 4.1.2 in libwebcore - but libjavascriptcore shows both gcc 4.1.2 and gcc 3.4.3.

What gives there?
Back to top
View user's profile Send private message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sun Feb 08, 2015 9:33 am    Post subject: Reply with quote

Both libicuuc.so and libsicuuc.a show only gcc 4.1.2
Back to top
View user's profile Send private message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sun Feb 08, 2015 9:39 am    Post subject: Reply with quote

The old (original) ICU lib files all show only GCC 4.1.2.

The only file that is mixed (4.1.2/3.4.3) is the old libjavascriptcore.so. Of course all my newly compiled libs show only 4.1.2.
Back to top
View user's profile Send private message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sun Feb 08, 2015 10:43 am    Post subject: Reply with quote

So, a few ICU related objects were compiled with GCC 3.4.3, and copied to a source tree which was then compiled with GCC 4.1.2, likely because of some depreciated/removed GCC functionality. IMO, the libjavascriptcore source should be something we could change to enable a better solution, and not drag in an old compiler. GCC 4.1.2 is old enuf!!

Anyway, my newly compiled Webster executable runs OK if I copy only it to the /Applications/Webster directory, and leave everything else intact. Now I can monkey around with the GUI front end a little bit, maybe add a menu, etc. But of course my goal to use PolarSSL doesn't happen that way Sad

I guess I need to bite the bullet and look at the libjavascript ICU stuff...

-Ron
Back to top
View user's profile Send private message
Ronaldlees



Joined: 15 Oct 2014
Posts: 148

PostPosted: Sun Feb 08, 2015 11:20 am    Post subject: Reply with quote

Naturally I can successfully use the newly compiled libwebview.so also.

This trip down the rabbit hole involved some messing around, but the time wasn't completely wasted. I'm starting to get a pretty good feel for where all the real files are located (the *important* directories), since Syllable has more symlinks than I'm used to seeing in an OS.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Syllable Forum Index -> Syllable Desktop All times are GMT - 6 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group