[Enigmail] Building Enigmail for TB comm-central: static or shared, libxul or not?
Michael J Gruber
michaeljgruber at fastmail.fm
Mon Jan 26 07:20:10 PST 2009
Patrick Brunschwig venit, vidit, dixit 26.01.2009 14:56:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Michael J Gruber wrote:
>> Ludwig Hügelschäfer venit, vidit, dixit 01/23/09 20:42:
>>> Hi,
>>>
>>> Michael J Gruber wrote on 23.01.2009 13:56 Uhr:
>>>> Hi there,
>>>>
>>>> I'm trying to build Enigmail for current TB nightlies. (I'm on 64bit
>>>> Fedora 10 so I can't run Mozilla's 3.0b1 binaries easily anyways, and
>>>> can't used binary Enigmail xpi either).
>>>>
>>>> I can build and run TB from a hg checkout of comm-central. Yeah ;)
>>>>
>>>> For building Enigmail (from cvs),
>>> Are you using enigmail trunk (aka 0.96a)?
>> Yes, that's what I meant by cvs, sorry. A current cvs checkout from trunk.
>>
>>>> I've been following the instructions
>>>> on the Enigmail website and ended up with the attached error which seems
>>>> to be related to a conflict in build options (shared/static).
>>>>
>>>> I've built TB with "ac_add_options --enable-static --disable-libxul"
>>>> because d.m.o. says TB can't be built shared with libxul (and also
>>>> because I wanted to "make package"). Is this still true? How
>>>> (static/shared/libxul) do you build TB when you build Enigmail for TB 3
>>>> nightlies?
>>> Sorry, I don't know anything about the building process on linux. In
>>> order to build the Mac OS X nightlies, I'm using these options for TB trunk:
>>>
>>> mk_add_options MOZ_OBJDIR=/path/to/my/objdir
>>> ac_add_options --disable-tests
>>> ac_add_options --disable-debug
>>> ac_add_options --enable-crypto
>>> ac_add_options --enable-optimize
>>> ac_add_options --enable-static-mail
>>> ac_add_options --enable-application=mail
>>> mk_add_options MOZ_CO_PROJECT=mail
>>> mk_add_options AUTOCONF=autoconf213
>>>
>>> Maybe you get better help in mozilla.dev.builds on news.mozilla.org.
>> I tried those options (they're the ones from enigmail.mozdev.org) minus
>> the autoconf. I can build and run TB comm-central successfully with
>> these options as well as others.
>>
>> My problem is building enigmail, which is why I think I'd better post
>> here than on mozilla.dev.builds. So, my questions really are:
>>
>> - Which options do you use when you build enigmail.xpi? (probably the
>> ones above)
>
> Here are my options:
>
> mk_add_options MOZ_CO_PROJECT=mail
> mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/enigdev
> mk_add_options AUTOCONF=autoconf2.13
>
> ac_add_options --enable-application=mail
> ac_add_options --enable-optimize
> ac_add_options --disable-debug
> ac_add_options --disable-tests
> ac_add_options --enable-codesighs
> ac_add_options --disable-shared
> ac_add_options --enable-static
> ac_add_options --disable-update-packaging
> ac_add_options --disable-debug
> ac_add_options --disable-tests
> ac_add_options --enable-codesighs
> ac_add_options --disable-shared
> ac_add_options --enable-static
> ac_add_options --disable-crashreporter
>
>> - Which combination of TB comm-central sha1 and Enigmail cvs rev. is
>> known to build and run well together?
>
> any. I create nightly builds and they usually work fine.
Patrick, thanks for taking the time. I can compile TB with the options
above just nicely. Yet, building Enigmail gives me pain again, see
below. Specifically, I
did a make -f client.mk clean" and rm -Rf'ed the enigmail copy,
built TB, ran it ,
copied ${enigmailcvscheckout}/enigmail/src to
${comm-central-with-gecko-1.9.1-checkout}/mailnews/extensions/enigmail,
ran "./makemake -r" in the latter and "make" in
${objdir}/mailnews/extensions/enigmail.
Instructions say cp enigmail/src to mozilla/mailnews/extensions/enigmail
which doesn't exist. With the current build structure, mailnews
"contains" (pulls as a module) mozilla-central (or rather 1.9.1), so I
think what I used is the place to put enigmail. (I've tried
mozilla/extensions/enigmail before, not better.)
The error sounds as if ipc is being built shared whereas TB is built
static (as per .mozconfig). Any more hints? makemake does pick up objdir
so it sees the .mozconfig.
This is on 64bit Fedora 10, by the way, gcc/g++ is gcc version 4.3.2
20081105 (Red Hat 4.3.2-7) (GCC).
Thanks for your patience...
Michael
c++ -fno-rtti -fno-exceptions -Wall -Wpointer-arith
-Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy
-Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-long-long
-pedantic -fno-strict-aliasing -fshort-wchar -pthread -pipe -DNDEBUG
-DTRIMMED -Os -freorder-blocks -fno-reorder-functions -fPIC -shared
-Wl,-z,defs -Wl,-h,libipc.so -o libipc.so nsIPCModule.o -lpthread
-Wl,-rpath-link,../../../../../mozilla/dist/bin:/usr/lib:/usr/local/lib:/lib
-Wl,--whole-archive ../src/libipc_s.a -Wl,--no-whole-archive
-L../../../../../mozilla/dist/bin -L../../../../../mozilla/dist/lib
-L../../../../../mozilla/dist/bin -lxpcom -lxpcom_core
../../../../../mozilla/dist/lib/libxpcomglue_s.a
-L../../../../../mozilla/dist/bin -lxpcom
`../../../../../mozilla/nsprpub/config/nspr-config
--prefix=../../../../../mozilla/dist
--libdir=../../../../../mozilla/dist/lib --libs` -Wl,--version-script
-Wl,/home/mjg/src/mozstuff/comm-central/mozilla/build/unix/gnu-ld-scripts/components-version-script
-Wl,-Bsymbolic -ldl -lm
/usr/bin/ld: ../src/libipc_s.a(nsPipeTransport.o): relocation
R_X86_64_32 against `a local symbol' can not be used when making a
shared object; recompile with -fPIC
../src/libipc_s.a(nsPipeTransport.o): could not read symbols: Bad value
collect2: ld gab 1 als Ende-Status zurück
gmake[3]: *** [libipc.so] Fehler 1
More information about the Enigmail
mailing list