Hi there, Linux desktop detection is broken due to the changes with the DLLPOSTFIX:
1) SAL_DLLPOSTFIX as defined in http://svn.apache.org/viewvc/incubator/ooo/trunk/main/vcl/Library_vcl.mk?view=markup#l174 -DSAL_DLLPOSTFIX=\"$(gb_Library_OOOEXT)\" expands to ".so" and breaks loading the desktop detector library http://svn.apache.org/viewvc/incubator/ooo/trunk/main/vcl/unx/generic/plugadapt/salplug.cxx?view=markup#l138 OUStringBuffer aModName( 128 ); aModName.appendAscii( SAL_DLLPREFIX"desktop_detector" ); aModName.appendAscii( SAL_DLLPOSTFIX ); // .so aModName.appendAscii( SAL_DLLEXTENSION ); // .so OUString aModule = aModName.makeStringAndClear(); the module name will result in libdesktop_detector.so.so 2) loading the detected vcl plugin is also broken: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/vcl/unx/generic/plugadapt/salplug.cxx?view=markup#l66 the module name misses the SAL_DLLEXTENSION OUStringBuffer aModName( 128 ); aModName.appendAscii( SAL_DLLPREFIX"vclplug_" ); aModName.append( rModuleBase ); aModName.appendAscii( SAL_DLLPOSTFIX ); OUString aModule = aModName.makeStringAndClear(); Loading worked by luck because SAL_DLLPOSTFIX was defined as ".so" The attached patch solves the issue defining SAL_DLLPOSTFIX as an empty string, and adding the extension to the vcl plugin module name. Regards -- Ariel Constenla-Haile La Plata, Argentina
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 635e0b4..6e8f5b3 100755 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -171,7 +171,7 @@ ifeq ($(GUIBASE),unx) $(eval $(call gb_Library_set_defs,vcl,\ $$(DEFS) \ -DSAL_DLLPREFIX=\"$(gb_Library_SYSPRE)\" \ - -DSAL_DLLPOSTFIX=\"$(gb_Library_OOOEXT)\" \ + -DSAL_DLLPOSTFIX=\"\" \ -D_XSALSET_LIBNAME=\"$(call gb_Library_get_runtime_filename,spa)\" \ )) ## handle fontconfig diff --git a/vcl/unx/generic/plugadapt/salplug.cxx b/vcl/unx/generic/plugadapt/salplug.cxx index b85e4ac..d303485 100644 --- a/vcl/unx/generic/plugadapt/salplug.cxx +++ b/vcl/unx/generic/plugadapt/salplug.cxx @@ -67,6 +67,7 @@ static SalInstance* tryInstance( const OUString& rModuleBase ) aModName.appendAscii( SAL_DLLPREFIX"vclplug_" ); aModName.append( rModuleBase ); aModName.appendAscii( SAL_DLLPOSTFIX ); + aModName.appendAscii( SAL_DLLEXTENSION ); OUString aModule = aModName.makeStringAndClear(); oslModule aMod = osl_loadModuleRelative(
pgpsaJ3rcSaRY.pgp
Description: PGP signature