I wrote:

I am going to take care of the Mozilla -> Seamonkey update myself today, unless there are objections.

Done. Seamonkey is built with Pango, Canvas and SVG support. The "unresolved symbol" problem is handled by LDFLAGS.

Note: libpangoxft is not the only library contributing to this issue. Before adding LDFLAGS, there were the following missing symbols (the list is generated by linking a "main(){}" C program against each library and looking for linker errors):

/usr/lib/seamonkey-1.0/libldap50.so: undefined reference to `pthread_getspecific' /usr/lib/seamonkey-1.0/libldap50.so: undefined reference to `pthread_key_create' /usr/lib/seamonkey-1.0/libldap50.so: undefined reference to `pthread_setspecific'

Ignored, could be fixed by adding -lpthread to LDFLAGS.

/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_SetThreadPrivate' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_MillisecondsToInterval' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_GetCurrentThread'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Free'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_AtomicIncrement'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Malloc'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_CallOnce'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_GetThreadPrivate'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Calloc'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_unbind'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Recv'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Poll'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Close'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_set_lderrno' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_SetNetAddr' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_GetHostByAddr' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_x_hostlist_statusfree'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Lock'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_SetSocketOption' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_get_lderrno'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_GetError'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_OpenTCPSocket' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_ConvertIPv4AddrToIPv6' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_x_hostlist_first' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_StringToNetAddr' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_get_option'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Unlock'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_get_option'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Unlock'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_set_option' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_GetIPNodeByName' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_DestroyLock' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_EnumerateHostEnt'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_SetError'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Send'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Connect'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_memfree'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_GetOSError' /usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_NewThreadPrivateIndex'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_init'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `ldap_x_hostlist_next'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_Realloc'
/usr/lib/seamonkey-1.0/libprldap50.so: undefined reference to `PR_NewLock'

Ignored, internal Mozilla libraries, hard to fix with LDFLAGS alone.

/usr/lib/seamonkey-1.0/components/libgfx_gtk.so: undefined reference to `pango_xft_get_font_map'

Fixed. The --as-needed switch is used in order to prevent unneeded linking other Mozilla lbraries to libpangoxft.

Now Seamonkey successfully starts up even if one exports LD_BIND_NOW=1.

The SVG plugin (from librsvg) has been removed because it doesn't display embedded SVGZ images anyway (would need libgsf, feel free to re-add if you also add libgsf).

--
Alexander E. Patrakov
--
http://linuxfromscratch.org/mailman/listinfo/livecd
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to