Le 21/05/14 10:56, Stephan Bergmann a écrit :
On 05/21/2014 07:13 AM, Richard PALO wrote:
S=/var/tmp/pkgsrc/misc/libreoffice4/work/libreoffice-4.2.4.2 &&
I=$S/instdir && W=$S/workdir &&  g++    -Wl,-z,origin
'-Wl,-rpath,$ORIGIN:$ORIGIN/../ure-link/lib' -L$I/ure/lib -L$I/program
-z nodefs   $W/CxxObject/extensions/source/plugin/unx/npwrap.o
$W/CxxObject/extensions/source/plugin/unx/npnapi.o     -Wl,--start-group
  $W/LinkTarget/StaticLibrary/libplugcon.a  -lm -lnsl -lsocket  -lXt
-lXext -lX11 -ldl  -L/opt/local/lib -Wl,-R/opt/local/lib -lgthread-2.0
-lpthread -lthread -Wl,-R/opt/local/lib -lglib-2.0 -lintl
-L/opt/local/lib -Wl,-R/opt/local/lib -lgtk-x11-2.0 -Wl,-R/opt/local/lib
-lgdk-x11-2.0 -Wl,-R/opt/local/lib -lpangocairo-1.0 -Wl,-R/opt/local/lib
-latk-1.0 -Wl,-R/opt/local/lib -lcairo -Wl,-R/opt/local/lib -lgio-2.0
-Wl,-R/opt/local/lib -lpangoft2-1.0 -Wl,-R/opt/local/lib -lpango-1.0
-Wl,-R/opt/local/lib -lfontconfig -Wl,-R/opt/local/lib -lfreetype
-Wl,-R/opt/local/lib -lgdk_pixbuf_xlib-2.0 -Wl,-R/opt/local/lib
-lgmodule-2.0 -lpthread -lthread -Wl,-R/opt/local/lib -lgdk_pixbuf-2.0
-Wl,-R/opt/local/lib -lgobject-2.0 -Wl,-R/opt/local/lib -lglib-2.0
-lintl  -L/opt/local/lib -Wl,-R/opt/local/lib -lgtk-x11-2.0
-Wl,-R/opt/local/lib -lgdk-x11-2.0 -Wl,-R/opt/local/lib -lpangocairo-1.0
-Wl,-R/opt/local/lib -latk-1.0 -Wl,-R/opt/local/lib -lcairo
-Wl,-R/opt/local/lib -lgdk_pixbuf-2.0 -Wl,-R/opt/local/lib -lgio-2.0
-Wl,-R/opt/local/lib -lpangoft2-1.0 -Wl,-R/opt/local/lib -lpango-1.0
-Wl,-R/opt/local/lib -lgobject-2.0 -Wl,-R/opt/local/lib -lglib-2.0
-lintl -Wl,-R/opt/local/lib -lfontconfig -Wl,-R/opt/local/lib -lfreetype
  -Wl,--end-group -Wl,--no-as-needed -luno_sal -o
$I/program/pluginapp.bin

ld: fatal: library -luno_sal: not found
=================================

Either 'sdk/lib' needs to be added as a runpath-link (which works fine
manually) or a symlink to libuno_sal.so.3 would need to be created in
'ure/lib' as that path is already used.

-L$I/sdk/lib should be on the above command line (and is on Linux) via
-L$(INSTDIR)/$(SDKDIRNAME)/lib in the definition of
gb_LinkTarget_get_linksearchpath_for_layer in
solenv/gbuild/platform/com_GCC_class.mk.  No idea why that does not work
for you on SunOS.

Stephan
Hi,
Thanks for the pointer, and yes this file is included in solaris.mk as it is in unxgcc.mk...

So, I was curious to notice that nsplugin seemed to work, and in comparing the two mk files the following extract from Executable_pluginapp.bin.mk is the only pertinent difference:
# the orignal dmakefile said: don't ask, it's ugly
ifeq ($(OS),SOLARIS)
$(eval $(call gb_Executable_set_ldflags,pluginapp.bin,\
        -z nodefs \
))
endif

when I look into gb_Executable_set_ldflags, the problem is in LinkTarget.mk:
# call gb_LinkTarget_add_ldflags,linktarget,ldflags
define gb_LinkTarget_add_ldflags
$(call gb_LinkTarget_get_target,$(1)) : T_LDFLAGS += $(2)

endef

# real use in RepositoryExternal.mk
# call gb_LinkTarget_set_ldflags,linktarget,ldflags
define gb_LinkTarget_set_ldflags
$(call gb_LinkTarget_get_target,$(1)) : T_LDFLAGS := $(2)

----------------------------------------------------^^

Earlier in LinkTarget.mk your function is evaluted thus:
$(call gb_LinkTarget_get_target,$(1)) : T_LDFLAGS := $$(gb_LinkTarget_LDFLAGS) 
$(call gb_LinkTarget_get_linksearchpath_for_layer,$(3)) $(call 
gb_LinkTarget__get_ldflags,$(2))
therefore overridden by the subsequent set_ldflags call.

In summary, the following patch to Executable_pluginapp.bin.mk seems to build for now (the first part is because motif is, well...:-):
$ pkgdiff Executable_pluginapp.bin.mk
$NetBSD$

--- Executable_pluginapp.bin.mk.orig    2014-04-30 19:49:45.000000000 +0000
+++ Executable_pluginapp.bin.mk
@@ -33,15 +33,7 @@ $(eval $(call gb_Executable_use_librarie
        sal \
 ))

-ifeq ($(OS),SOLARIS)
-$(eval $(call gb_Executable_add_libs,pluginapp.bin,\
-       -lXm \
-       -lXt \
-       -lXext \
-       -lX11 \
-       -ldl \
-))
-else ifeq ($(filter-out FREEBSD NETBSD OPENBSD DRAGONFLY,$(OS)),)
+ifeq ($(filter-out FREEBSD NETBSD OPENBSD DRAGONFLY,$(OS)),)
 $(eval $(call gb_Executable_add_libs,pluginapp.bin,\
        -lXt \
        -lXext \
@@ -73,7 +65,7 @@ $(eval $(call gb_Executable_use_external
 ))

 # the orignal dmakefile said: don't ask, it's ugly
-ifeq ($(OS),SOLARIS)
+ifeq ($(OS),XSOLARIS)
 $(eval $(call gb_Executable_set_ldflags,pluginapp.bin,\
        -z nodefs \
 ))

BTW, for the moment, I don't have an issue with omitting the -znodefs
perhaps an old problem since resolved... will keep an eye out.

cheers


_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to