summaryrefslogtreecommitdiff
path: root/extensions/Executable_pluginapp.bin.mk
AgeCommit message (Collapse)Author
2014-11-11cleanup improper SOLARIS linker libs and optionsRichard PALO
and, most importantly, forget MOTIF! Change-Id: I0230932618b396ec4d5bf7638a13e5a80a4fada0 Signed-off-by: Michael Stahl <mstahl@redhat.com>
2014-04-28prefer makefile-gmake-modeTakeshi Abe
Change-Id: I9cc9bfbddd3a90e00eee3e674994e5d6207f9034
2013-10-24Disallow --without-system-cairo combined with (implicit) --enable-gtkStephan Bergmann
As the system gtk libraries may depend on later versions of libcairo.so.2 and its bring-along libpixman-1.so.0 with the same SONAMEs. So if it would ever happen at runtime that our bundled libcairo.so.2 and/or libpixman-1.so.0 get loaded before the system ones, the system gtk would probably not work correctly. Ultimately, the bundled cairo can probably go completely. This reverts 122a137672d761418a549568ad8cad623dd2b4b5 "extensions: crude hack for mysterious cairo link failure." As discussed at #libreoffice-dev: Oct 24 10:10:15 <mst__> sberg, caolan, dtardon any idea what the proper fix is for pluginapp.bin? 122a137672d761418a549568ad8cad623dd2b4b5 breaks on RHEL5 tinderbox... Oct 24 10:10:17 <IZBot> core - extensions: crude hack for mysterious cairo link failure - http://cgit.freedesktop.org/libreoffice/core/commit/?id=122a137672d761418a549568ad8cad623dd2b4b5 Oct 24 10:12:53 <dtardon> mst__, i'd try gb_Executable_use_external,pluginapp.bin,cairo Oct 24 10:13:58 <mst__> dtardon, i'm not sure if that is the intent - the -lcairo comes from the gtk external so we should use same cairo as gtk i.e. system one? but id on't understand why linker won't find the pixman library Oct 24 10:16:35 <sberg> mst__, I get no build failures in "make extensions.clean && make extensions" when I comment out that FIXME in extensions/Executable_pluginapp.bin.mk Oct 24 10:18:59 <mst__> sberg, it only started to fail for me when i removed libcairo.so from solver, probably you still have a stale one Oct 24 10:19:42 <sberg> mst__, in solver/*/lib/? no Oct 24 10:20:48 <sberg> mst__, but turns out I'm using --with-system-cairo (as required by --enable-gtk3), so ignore me Oct 24 10:22:53 <mst__> sberg, so if i rm solver/unxlngx6/lib/*cairo* solver/unxlngx6/lib/*pixman* it still fails for me, how could system-cairo work then? Oct 24 10:24:13 <sberg> mst__, in that /usr/lib64/libcairo.so has a DT_NEEDED on libpixman-1.so.0 (which "our" libcairo.so is missing, I'd assume) Oct 24 10:24:44 <sberg> mst__, erm Oct 24 10:41:18 <mst__> sberg, so if i filter out -lcairo in gb_LinkTarget__use_gtk then it magically works - are there any problems with that approach? Oct 24 10:47:19 <sberg> mst__, so the root of the problem is that there's two different libcairo involved? (just doing a local build --wihtout-system-cairo here, to see what's going on) Oct 24 10:47:55 <mst__> sberg, i don't think so since i get same problem after removing all cairo libs from solver Oct 24 11:12:11 <sberg> mst__, so the link line for pluginapp.bin contains -lcairo twice, apparently dragged in indirectly (via _use_externals gthread and gtk, likely), and does not contain "our" -L.../cairo/src/.libs (as it doesn't _use_externals cairo), but does contain -Lsolver/*/lib. Now, /usr/lib64/libcairo.so needs libpixman-1.so.0 and there happens to be one in solver/*/lib that lacks syms compared to /usr/lib64/libpixman-1.so.0 Oct 24 11:13:43 <sberg> mst__, so this was nicely hidden when all the external libs were delivered to solver/*/lib, but in the end I think the bug is to combine system gtk with non-system cairo and/or pixman Oct 24 11:14:49 <sberg> mst__, as long as our cairo and/or pixman have the same SONAMEs or exported symbol names as system ones, all hell can happen at runtime anyway Oct 24 11:15:32 <mst__> sberg, but... why then does it fail for me if i don't have the cairo/pixman libs in solver? Oct 24 11:15:57 <mst__> ahhh -Wl,-rpath-link,$S/instdir/unxlngx6/program <- taht must be why Oct 24 11:17:40 <mst__> is it normal that -Wl,--trace does not print out what libraries were found via -Wl,-rpath-link? it only appears to print explicit -lfoo Oct 24 11:18:27 <sberg> mst__, because of -Linstdir/*/program Oct 24 11:20:27 <mst__> sberg, so we need -Wl,-rpath-link,$S/instdir/unxlngx6/program obviously; Oct 24 11:22:08 <mst__> sberg, apparently everything builds successfully when filtering out -lcairo from GTK_LIBS, do you think that is the best workaround for this? Oct 24 11:22:14 <sberg> mst__, no, we need to change configure.ac to disallow --enable-gtk --without-system-{ciaro,pixman} Oct 24 11:22:39 <sberg> mst__, similarly to how we already disallow --enable-gtk3 --without-system-cairo Oct 24 11:24:48 <mst__> sberg, that would be sort of pointless, since linux is afaik the only platfrom where cairo is used at all - effectvely we could remove bundled caior then? Oct 24 11:27:04 <sberg> mst__, effectively yes, unless it would still be useful for some --disable-gtk scenario Oct 24 11:33:41 <mst__> caolan, cloph does RHEL5 have a sufficiently recent system cairo? Oct 24 11:34:43 <cloph> cairo 1.2.4 on the CentOS 5.9 (well, more like 5.10 now) system Oct 24 11:37:08 <jcorrius> my RHEL6 build uses internal cairo Oct 24 11:37:47 <caolan> rhel-5 cairo is 1.2.4 Oct 24 11:37:54 <mst__> caolan, the other option i can see is to do $(call gb_LinkTarget_add_libs,$(1),$(filter-out -lcairo,$(GTK_LIBS))) in gb_LinkTarget__use_gtk which works-for-me(TM) Oct 24 11:38:30 <sberg> jcorrius, not for very much longer ,) (it typically happens to work by luck to combine system GTK with bundled cairo) Oct 24 11:38:59 <mst__> thorsten, are you aware of any reason why we must bundle cairo on linux? Oct 24 11:40:05 <sberg> mst__, "<caolan> rhel-5 cairo is 1.2.4" and we only check for "cairo >= 1.0.2" in cofingure.ac, so all should be good Oct 24 11:40:35 <sberg> mst__, "works-for-me(TM)" just by luck Oct 24 11:41:33 <mst__> sberg, well perhaps guess the real problem is that pkg-config spits out a spurious -lcairo for gtk+-2.0 so... Oct 24 11:42:19 <mst__> ... but of course if a sufficiently good cairo is available everywhere we don't have reason to bundle it anyway Oct 24 11:45:45 <sberg> mst__, at least my /usr/lib64/libgtk-x11-2.0.so.0 does have a DT_NEEDED on libcairo.so.2, so even if pkg-config wouldn't spit it out we would still be in trouble at runtime Oct 24 11:47:05 <mst__> sberg, at runtime we have this problem for a lot more libraries than just cairo Oct 24 11:47:43 <sberg> mst__, but why refuse to fix the problem, at least for cairo, where there is apparently no good reason to bundle it anyway? Oct 24 11:48:36 <jcorrius> is cairo used on Windows for anything? Oct 24 11:48:42 <mst__> sberg, since there is no good reason to bundle it anyway i don't object to removing the bundled cairo Oct 24 11:49:38 <mst__> sberg, ... but i can still hold the opinion that gtk shouldn't put -lcairo in its pkgconfig :) Oct 24 11:53:12 <sberg> mst__, since "pkg-config --cflags gtk+-2.0" includes "-I/usr/include/cairo", one could argue that cairo is a "re-exported" part of that, so should also appear in pkg-config --libs output; one could likely argue either way Oct 24 11:55:27 <mst__> sberg, well but if you're calling functions from cairo then you're using cairo directly whereas if you just call gtk functions you have no need to link cario Oct 24 11:56:47 <sberg> mst__, sure, my argumentation depends on that "re-exports" argument (which might be thin); anyway, are you going to remove bundled cairo Oct 24 11:56:54 <sberg> ? Oct 24 11:57:34 <mst__> sberg, i'm going to force it to system in configure for now Oct 24 11:58:13 <sberg> mst__, I have a patch for exactly that already locally here, so could push that if you've not done that too already anyway Oct 24 11:59:00 <mst__> sberg, i havent' finished my freetype patch yet because people always distract me on irc so you can push Oct 24 11:59:01 <sberg> mst__, or, rather, my patch just errors out in the --enable-gtk --without-system-cairo combination, so if you have a better one, go ahead Change-Id: I071e759a55f46338b36c3cf8ac7cd5591bd9e376
2013-10-24extensions: crude hack for mysterious cairo link failureMichael Stahl
Why is /usr/lib64/libpixman-1.so not found automatically? Change-Id: Ide3929b53d130aee44ff6b01dcf2f7491a61a09b
2013-04-30Move to MPLv2 license headers, with ESC decision and author's permission.Michael Meeks
2013-01-26gbuild: fix silly "expandtabs" in makefile VIM modelinesMichael Stahl
Change-Id: I54d8923ad315e8041fd3904da3a29f1a7a8c8b16
2012-11-30add missing deps for tools/link.hxxDavid Tardon
Change-Id: I5e83cd97978ea61c749f1d9be17ec0e9e0809127
2012-11-15Rename "Mozilla headers" to "NPAPI headers" (incl. configure option name)Stephan Bergmann
...to avoid confusion what that is actually about. (Especially, it is completely unrelated to --enable-mozilla.) ATTENTION: This renames the configure option --with-system-mozilla-headers to --with-system-npapi-headers. Change-Id: I48f3c79d69c4d4f445a94e7ddbeab06ea667becc
2012-07-02targetted improvement of UNO API includes / usageMichael Meeks
2012-06-02np_sdk: separate system and internal headersMatúš Kukan
Change-Id: I4c61dcb40acf12fa0fe4cf4d6c39a8bfd7b7c9b4
2012-04-08extensions: add np_sdk_inc to mozilla_headers externalMichael Stahl
2012-04-08gbuild: "use" vs. "add":Michael Stahl
Naming convention for gbuild methods: - "add" is used for stuff that is logically a part of the target (i.e. not registered at the Module, but defined in the target's makefile) - "use" is used for stuff that is logically a different target (i.e. it is registered at the Module, has it's own makefile, may be in a different module than the target)
2012-03-12extensions: split out static library for X11 plugin connection stuffMichael Stahl
2012-01-11tweak makefiles after np_sdk is in tail_buildMatúš Kukan
Also change <npsdk/npapi.h> to "npapi.h"
2012-01-07add gthread external hereMatúš Kukan
2011-12-19extensions: d'oh, i've pasted C++ emacs modelines in makefilesMichael Stahl
2011-12-17extensions: tweaks to the plugin makefilesMichael Stahl
2011-12-17extensions: convert plugin to gbuildPeter Foley