[Enigmail] building the IPC library with xulrunner-dev instead of a full build tree

Andy Ruddock andy.ruddock at rainydayz.org
Mon Mar 16 21:59:25 PDT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Daniel Kahn Gillmor wrote:
> Hi Patrick--
> 
> Thanks for the quick feedback!
> 
> On 03/16/2009 05:02 AM, Patrick Brunschwig wrote:
>> I think it's not trivial at all. If I were you, I'd try to find out how
>> Enigmail is built on Debian (i.e. download the Enigmail source package
>> of Debian) and follow the way it's done there.
> 
> Yeah, i've looked at that.  It looks like they ship a snapshot of a
> pruned mozilla build tree along with all the ipc source, so that they
> can unpack into it and rebuild in there.  Seems like a kind of messy way
> to do things, and "courtesy copies" of external code are discouraged by
> debian policy anyway these days.
> 
> I've gotten further in my experimentation now than i did when i wrote
> first, based tracing an in-tree build and a lot of searching the web.
> i'm almost to the point of having libipc.so built, actually (though of
> course i haven't tested the output).  The problem that i'm running into
> is manifesting itself as a linker error at the last stage of the build.
>  I've attached a gzipped tarball of the Makefiles i've cooked up that
> appear to get it to build properly all the way through, but the linking
> stage itself fails.  I've included the spew from the make process as
> well in case anyone wants to take a look.
> 
> The problem i'm having looks a lot like http://bugs.debian.org/442966,
> but the patches in that report don't seem to fix things for me.
> 
>> c++ -Wall -Wconversion -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-long-long -Os -g -o libipc.so -include mozilla-config.h -include xpcom-config.h -DXPCOM_GLUE -DXPCOM_GLUE_USE_NSPR -I /usr/lib/xulrunner-devel-1.9/include -I ../src -I ../public -L /usr/lib/xulrunner-devel-1.9/lib -L /usr/lib/xulrunner-devel-1.9/bin -Wl,-rpath-link,/usr/lib/xulrunner-devel-1.9/bin -lxpcom -lxul -lnspr4 -lplds4 -lplc4 -lpthread -ldl -lnss3 -Wl,-z,defs -Wl,-h,libipc.so -Wl,--as-needed -Wl,--whole-archive ../src/libipc_s.a -Wl,--no-whole-archive /usr/lib/xulrunner-devel-1.9/sdk/lib/libxpcomglue_s.a -Wl,--version-script -Wl,components-version-script -Wl,-Bsymbolic -fno-rtti -fno-exceptions -shared -fPIC -pthread -pipe -fvisibility=hidden   nsIPCModule.o
>> nsIPCModule.o: In function `NSGetModule':
>> /home/builder/src/xulrunner-ipc/ipc/build/nsIPCModule.cpp:104: undefined reference to `NS_NewGenericModule2(nsModuleInfo const*, nsIModule**)'
>> /usr/bin/ld: libipc.so: hidden symbol `NS_NewGenericModule2(nsModuleInfo const*, nsIModule**)' isn't defined
>> /usr/bin/ld: final link failed: Nonrepresentable section on output
>> collect2: ld returned 1 exit status
> 
> Unfortunately, i don't really understand hidden visibility symbols in
> XPCOM well enough to brute force my way through this.  Any advice would
> be welcome!  I'm also happy to give interested people access to a
> minimal debian sid development environment with all the build-deps
> satisfied if anyone wants to poke around themselves.
> 
> Please let me know if you see me doing anything particularly horrible in
> these makefiles, or if you have suggestions that you think would be better.
> 

I came across this whilst trying to build enigmail for SeaMonkey,
there's a thread about it here :

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=442966

Maybe including the same #pragma lines in nsIPCMoule.cpp would fix it?

- --
Andy Ruddock
- ------------
andy.ruddock at rainydayz.org (GPG Key ID 0xA622D452)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkm/LikACgkQfSkWkaYi1FJC7ACgg792cC1ynAI0ucRQzG7xob8e
X8oAn0jLpwgXREC6inecJ6Cu1IBuRdey
=xLrA
-----END PGP SIGNATURE-----


More information about the Enigmail mailing list