Ensure that libcef.so is loaded first in webview sample
Use --no-as-needed linker flag to make this happen as otherwise it is still loaded after libc.so (unless LD_PRELOAD is used).
This commit is contained in:
parent
c0c345a816
commit
9f2fce3859
5 changed files with 29 additions and 37 deletions
17
Makefile.in
17
Makefile.in
|
|
@ -2301,10 +2301,14 @@ LOCALE_LINGUAS = ca cs da de el es fi fr hu id it ja nl pl ru sl sv tr uk zh zh_
|
|||
@COND_DEPS_TRACKING_1@CCC = $(BK_DEPS) $(CC)
|
||||
@COND_DEPS_TRACKING_0@CXXC = $(CXX)
|
||||
@COND_DEPS_TRACKING_1@CXXC = $(BK_DEPS) $(CXX)
|
||||
COND_PLATFORM_MACOSX_1_LIBCEF_FRAMEWORK = \
|
||||
-F$(top_srcdir)/3rdparty/cef/Release/ -framework Chromium\ Embedded\ \
|
||||
Framework
|
||||
@COND_PLATFORM_MACOSX_1@LIBCEF_FRAMEWORK = $(COND_PLATFORM_MACOSX_1_LIBCEF_FRAMEWORK)
|
||||
COND_PLATFORM_MACOSX_1_LIBCEF_LINK = -F$(top_srcdir)//3rdparty/cef/Release/ \
|
||||
-framework Chromium\ Embedded\ Framework
|
||||
@COND_PLATFORM_MACOSX_1@LIBCEF_LINK = $(COND_PLATFORM_MACOSX_1_LIBCEF_LINK)
|
||||
COND_PLATFORM_UNIX_1_LIBCEF_LINK = -L$(top_srcdir)//3rdparty/cef/Release/ \
|
||||
-Wl,--no-as-needed -lcef -Wl,--as-needed
|
||||
@COND_PLATFORM_UNIX_1@LIBCEF_LINK = $(COND_PLATFORM_UNIX_1_LIBCEF_LINK)
|
||||
@COND_PLATFORM_WIN32_1@LIBCEF_LINK = \
|
||||
@COND_PLATFORM_WIN32_1@ $(top_srcdir)//3rdparty/cef/Release/libcef/libcef.lib
|
||||
@COND_USE_PLUGINS_0@PLUGIN_ADV_EXTRALIBS = $(EXTRALIBS_SDL)
|
||||
@COND_PLATFORM_MACOSX_1@WXMACVERSION_CMD = \
|
||||
@COND_PLATFORM_MACOSX_1@ -compatibility_version 1.0 -current_version 1.0
|
||||
|
|
@ -11493,9 +11497,6 @@ COND_USE_SOVERSOLARIS_1___webviewchromiumdll___so_symlinks_uninst_cmd = rm -f \
|
|||
@COND_PLATFORM_UNIX_1@ -L$(top_srcdir)//3rdparty/cef/libcef_dll_wrapper/
|
||||
@COND_PLATFORM_WIN32_1@__LIBCEF_WRAPPER_PATH_p = \
|
||||
@COND_PLATFORM_WIN32_1@ -L$(top_srcdir)//3rdparty/cef/libcef_dll_wrapper/Release/
|
||||
@COND_PLATFORM_MACOSX_1@__LIBCEF_NAME_p =
|
||||
@COND_PLATFORM_UNIX_1@__LIBCEF_NAME_p = -lcef
|
||||
@COND_PLATFORM_WIN32_1@__LIBCEF_NAME_p = -llibcef
|
||||
@COND_PLATFORM_MACOSX_1@__LIBCEF_DLL_WRAPPER_NAME_p = -lcef_dll_wrapper
|
||||
@COND_PLATFORM_UNIX_1@__LIBCEF_DLL_WRAPPER_NAME_p = -lcef_dll_wrapper
|
||||
@COND_PLATFORM_WIN32_1@__LIBCEF_DLL_WRAPPER_NAME_p = -llibcef_dll_wrapper
|
||||
|
|
@ -13520,7 +13521,7 @@ distclean: clean
|
|||
@COND_MONOLITHIC_0_USE_WEBVIEW_1@wxwebview: $(____wxwebview_namedll_DEP) $(____wxwebview_namelib_DEP)
|
||||
|
||||
@COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_CHROMIUM_1@$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webviewchromium$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(dll___targetsuf3): $(WEBVIEWCHROMIUMDLL_OBJECTS) $(__wxexpat___depname) $(__wxzlib___depname) $(__wxregex___depname) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla___depname) $(__wxlexilla___depname) $(__coredll___depname) $(__basedll___depname) $(__webviewdll___depname) $(__webviewchromiumdll___win32rc)
|
||||
@COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_CHROMIUM_1@ $(SHARED_LD_CXX) $@ $(WEBVIEWCHROMIUMDLL_OBJECTS) -L$(LIBDIRNAME) -L$(LIBDIRNAME) -L$(LIBDIRNAME) -L$(LIBDIRNAME) $(__webviewchromiumdll___macinstnamecmd) $(__webviewchromiumdll___importlib) $(__webviewchromiumdll___soname_flags) $(WXMACVERSION_CMD) -L$(top_srcdir)//3rdparty/cef/Release/ $(__LIBCEF_WRAPPER_PATH_p) $(LIBCEF_FRAMEWORK) $(LDFLAGS) $(WX_LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) -lwx_$(PORTNAME)$(WXUNIVNAME)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX) -lwx_base$(WXBASEPORT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -lwx_$(PORTNAME)$(WXUNIVNAME)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview-$(WX_RELEASE)$(HOST_SUFFIX) $(__LIBCEF_NAME_p) $(__LIBCEF_DLL_WRAPPER_NAME_p) $(LIBS)
|
||||
@COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_CHROMIUM_1@ $(SHARED_LD_CXX) $@ $(WEBVIEWCHROMIUMDLL_OBJECTS) -L$(LIBDIRNAME) -L$(LIBDIRNAME) -L$(LIBDIRNAME) -L$(LIBDIRNAME) $(__webviewchromiumdll___macinstnamecmd) $(__webviewchromiumdll___importlib) $(__webviewchromiumdll___soname_flags) $(WXMACVERSION_CMD) $(__LIBCEF_WRAPPER_PATH_p) $(LIBCEF_LINK) $(LDFLAGS) $(WX_LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) -lwx_$(PORTNAME)$(WXUNIVNAME)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX) -lwx_base$(WXBASEPORT)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -lwx_$(PORTNAME)$(WXUNIVNAME)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview-$(WX_RELEASE)$(HOST_SUFFIX) $(__LIBCEF_DLL_WRAPPER_NAME_p) $(LIBS)
|
||||
@COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_CHROMIUM_1@ $(DYLIB_RPATH_POSTLINK)
|
||||
@COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_CHROMIUM_1@
|
||||
@COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_CHROMIUM_1@ $(__webviewchromiumdll___so_symlinks_cmd)
|
||||
|
|
|
|||
|
|
@ -582,16 +582,18 @@ For example, add "-F pe-i386" here if using 64 bit windres for 32 bit build.
|
|||
</if>
|
||||
</set>
|
||||
|
||||
<set var="LIBCEF_NAME">
|
||||
<!-- linker flags needed to link with CEF -->
|
||||
<set var="LIBCEF_LINK">
|
||||
<if cond="PLATFORM_WIN32=='1'">
|
||||
libcef
|
||||
$(LIBCEF_PATH)libcef/libcef.lib
|
||||
</if>
|
||||
<if cond="PLATFORM_MACOSX=='1'">
|
||||
<!--Unlike Windows/Linux platfomrs, CEF3 won't provide libcef.so library on OS X. -->
|
||||
<!--Instead, a Framework with related resources is provided. -->
|
||||
<!-- CEF is a framework and not just a shared library under Mac. -->
|
||||
-F$(LIBCEF_PATH) -framework Chromium\ Embedded\ Framework
|
||||
</if>
|
||||
<if cond="PLATFORM_UNIX=='1'">
|
||||
cef
|
||||
<!-- We need to make sure that libcef.so is loaded first. -->
|
||||
-L$(LIBCEF_PATH) -Wl,--no-as-needed -lcef -Wl,--as-needed
|
||||
</if>
|
||||
</set>
|
||||
|
||||
|
|
@ -607,10 +609,4 @@ For example, add "-F pe-i386" here if using 64 bit windres for 32 bit build.
|
|||
</if>
|
||||
</set>
|
||||
|
||||
<set var="LIBCEF_FRAMEWORK">
|
||||
<if cond="PLATFORM_MACOSX=='1'">
|
||||
-F$(TOP_SRCDIR)3rdparty/cef/Release/ -framework Chromium\ Embedded\ Framework
|
||||
</if>
|
||||
</set>
|
||||
|
||||
</makefile>
|
||||
|
|
|
|||
|
|
@ -205,11 +205,9 @@
|
|||
<library>basedll</library>
|
||||
<library>webviewdll</library>
|
||||
<include>$(CEF_INCLUDE_DIR)</include>
|
||||
<lib-path>$(LIBCEF_PATH)</lib-path>
|
||||
<lib-path>$(LIBCEF_WRAPPER_PATH)</lib-path>
|
||||
<sys-lib>$(LIBCEF_NAME)</sys-lib>
|
||||
<sys-lib>$(LIBCEF_DLL_WRAPPER_NAME)</sys-lib>
|
||||
<ldflags>$(LIBCEF_FRAMEWORK)</ldflags>>
|
||||
<ldflags>$(LIBCEF_LINK)</ldflags>>
|
||||
</dll>
|
||||
|
||||
<lib id="webviewchromiumlib" template="wx_lib"
|
||||
|
|
|
|||
|
|
@ -78,10 +78,14 @@ WEBVIEW_CHROMIUM_OBJECTS = \
|
|||
|
||||
@COND_DEPS_TRACKING_0@CXXC = $(CXX)
|
||||
@COND_DEPS_TRACKING_1@CXXC = $(BK_DEPS) $(CXX)
|
||||
COND_PLATFORM_MACOSX_1_LIBCEF_FRAMEWORK = \
|
||||
-F$(top_srcdir)/3rdparty/cef/Release/ -framework Chromium\ Embedded\ \
|
||||
Framework
|
||||
@COND_PLATFORM_MACOSX_1@LIBCEF_FRAMEWORK = $(COND_PLATFORM_MACOSX_1_LIBCEF_FRAMEWORK)
|
||||
COND_PLATFORM_MACOSX_1_LIBCEF_LINK = -F$(top_srcdir)//3rdparty/cef/Release/ \
|
||||
-framework Chromium\ Embedded\ Framework
|
||||
@COND_PLATFORM_MACOSX_1@LIBCEF_LINK = $(COND_PLATFORM_MACOSX_1_LIBCEF_LINK)
|
||||
COND_PLATFORM_UNIX_1_LIBCEF_LINK = -L$(top_srcdir)//3rdparty/cef/Release/ \
|
||||
-Wl,--no-as-needed -lcef -Wl,--as-needed
|
||||
@COND_PLATFORM_UNIX_1@LIBCEF_LINK = $(COND_PLATFORM_UNIX_1_LIBCEF_LINK)
|
||||
@COND_PLATFORM_WIN32_1@LIBCEF_LINK = \
|
||||
@COND_PLATFORM_WIN32_1@ $(top_srcdir)//3rdparty/cef/Release/libcef/libcef.lib
|
||||
@COND_USE_PLUGINS_0@PLUGIN_ADV_EXTRALIBS = $(EXTRALIBS_SDL)
|
||||
@COND_USE_GUI_0@PORTNAME = base
|
||||
@COND_USE_GUI_1@PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)
|
||||
|
|
@ -224,9 +228,6 @@ COND_MONOLITHIC_1___WXLIB_MONO_p = \
|
|||
@COND_PLATFORM_UNIX_1@ -L$(top_srcdir)//3rdparty/cef/libcef_dll_wrapper/
|
||||
@COND_PLATFORM_WIN32_1@__LIBCEF_WRAPPER_PATH_p = \
|
||||
@COND_PLATFORM_WIN32_1@ -L$(top_srcdir)//3rdparty/cef/libcef_dll_wrapper/Release/
|
||||
@COND_PLATFORM_MACOSX_1@__LIBCEF_NAME_p =
|
||||
@COND_PLATFORM_UNIX_1@__LIBCEF_NAME_p = -lcef
|
||||
@COND_PLATFORM_WIN32_1@__LIBCEF_NAME_p = -llibcef
|
||||
@COND_PLATFORM_MACOSX_1@__LIBCEF_DLL_WRAPPER_NAME_p = -lcef_dll_wrapper
|
||||
@COND_PLATFORM_UNIX_1@__LIBCEF_DLL_WRAPPER_NAME_p = -lcef_dll_wrapper
|
||||
@COND_PLATFORM_WIN32_1@__LIBCEF_DLL_WRAPPER_NAME_p = -llibcef_dll_wrapper
|
||||
|
|
@ -300,7 +301,7 @@ data:
|
|||
done
|
||||
|
||||
@COND_PLATFORM_MACOSX_1_USE_WEBVIEW_CHROMIUM_1@webview_chromium_helper$(EXEEXT): $(WEBVIEW_CHROMIUM_HELPER_OBJECTS)
|
||||
@COND_PLATFORM_MACOSX_1_USE_WEBVIEW_CHROMIUM_1@ $(CXX) -o $@ $(WEBVIEW_CHROMIUM_HELPER_OBJECTS) -L$(top_srcdir)//3rdparty/cef/Release/ $(__LIBCEF_WRAPPER_PATH_p) $(LIBCEF_FRAMEWORK) $(LDFLAGS) $(__LIBCEF_NAME_p) $(__LIBCEF_DLL_WRAPPER_NAME_p) $(LIBS)
|
||||
@COND_PLATFORM_MACOSX_1_USE_WEBVIEW_CHROMIUM_1@ $(CXX) -o $@ $(WEBVIEW_CHROMIUM_HELPER_OBJECTS) $(__LIBCEF_WRAPPER_PATH_p) $(LIBCEF_LINK) $(LDFLAGS) $(__LIBCEF_DLL_WRAPPER_NAME_p) $(LIBS)
|
||||
|
||||
@COND_PLATFORM_MACOSX_1_USE_WEBVIEW_CHROMIUM_1@fix_cef_link:
|
||||
@COND_PLATFORM_MACOSX_1_USE_WEBVIEW_CHROMIUM_1@ mkdir -p webview_chromium_helper.app
|
||||
|
|
@ -318,7 +319,7 @@ data:
|
|||
@COND_PLATFORM_MACOSX_1_USE_WEBVIEW_CHROMIUM_1@ cp -f $(top_srcdir)//src/osx/carbon/wxmac.icns webview_chromium_helper.app/Contents/Resources/wxmac.icns
|
||||
|
||||
@COND_USE_WEBVIEW_CHROMIUM_1@webview_chromium$(EXEEXT): $(WEBVIEW_CHROMIUM_OBJECTS) $(__webview_chromium___win32rc)
|
||||
@COND_USE_WEBVIEW_CHROMIUM_1@ $(CXX) -o $@ $(WEBVIEW_CHROMIUM_OBJECTS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBCEF_FRAMEWORK) -Wl,-rpath,. -L$(top_srcdir)//3rdparty/cef/Release/ $(__LIBCEF_WRAPPER_PATH_p) $(LDFLAGS) $(WX_LDFLAGS) -lwx_$(PORTNAME)$(WXUNIVNAME)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webviewchromium-$(WX_RELEASE)$(HOST_SUFFIX) $(__WXLIB_WEBVIEW_p) $(EXTRALIBS_WEBVIEW) $(__WXLIB_STC_p) $(EXTRALIBS_STC) $(__WXLIB_ADV_p) $(PLUGIN_ADV_EXTRALIBS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__LIBCEF_NAME_p) $(__LIBCEF_DLL_WRAPPER_NAME_p) $(__LIB_SCINTILLA_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p_1) $(__LIB_LEXILLA_IF_MONO_p_1) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(LIBS)
|
||||
@COND_USE_WEBVIEW_CHROMIUM_1@ $(CXX) -o $@ $(WEBVIEW_CHROMIUM_OBJECTS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) -Wl,-rpath,. $(__LIBCEF_WRAPPER_PATH_p) $(LIBCEF_LINK) $(LDFLAGS) $(WX_LDFLAGS) -lwx_$(PORTNAME)$(WXUNIVNAME)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webviewchromium-$(WX_RELEASE)$(HOST_SUFFIX) $(__WXLIB_WEBVIEW_p) $(EXTRALIBS_WEBVIEW) $(__WXLIB_STC_p) $(EXTRALIBS_STC) $(__WXLIB_ADV_p) $(PLUGIN_ADV_EXTRALIBS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__LIBCEF_DLL_WRAPPER_NAME_p) $(__LIB_SCINTILLA_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p_1) $(__LIB_LEXILLA_IF_MONO_p_1) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(LIBS)
|
||||
@COND_USE_WEBVIEW_CHROMIUM_1@ $(__webview_chromium___os2_emxbindcmd)
|
||||
|
||||
@COND_PLATFORM_MACOSX_1_USE_WEBVIEW_CHROMIUM_1@webview_chromium.app/Contents/PkgInfo: $(__webview_chromium___depname) $(top_srcdir)/src/osx/carbon/Info.plist.in $(top_srcdir)/src/osx/carbon/wxmac.icns
|
||||
|
|
|
|||
|
|
@ -30,12 +30,10 @@
|
|||
cef_process_helper.cpp
|
||||
</sources>
|
||||
<if cond="OUT_OF_TREE_MAKEFILES=='0' and CEF_INCLUDE_DIR!=''">
|
||||
<lib-path>$(LIBCEF_PATH)</lib-path>
|
||||
<lib-path>$(LIBCEF_WRAPPER_PATH)</lib-path>
|
||||
<include>$(CEF_INCLUDE_DIR)</include>
|
||||
<sys-lib>$(LIBCEF_NAME)</sys-lib>
|
||||
<sys-lib>$(LIBCEF_DLL_WRAPPER_NAME)</sys-lib>
|
||||
<ldflags>$(LIBCEF_FRAMEWORK)</ldflags>
|
||||
<ldflags>$(LIBCEF_LINK)</ldflags>
|
||||
</if>
|
||||
<add-target target="fix_cef_link" type="action"
|
||||
cond="target and FORMAT=='autoconf' and PLATFORM_MACOSX=='1' and USE_WEBVIEW_CHROMIUM=='1'">
|
||||
|
|
@ -78,14 +76,12 @@
|
|||
<wx-lib>adv</wx-lib>
|
||||
<wx-lib>core</wx-lib>
|
||||
<wx-lib>base</wx-lib>
|
||||
<ldflags>$(LIBCEF_FRAMEWORK)</ldflags>
|
||||
<ldflags>-Wl,-rpath,.</ldflags>
|
||||
<if cond="OUT_OF_TREE_MAKEFILES=='0' and CEF_INCLUDE_DIR!=''">
|
||||
<lib-path>$(LIBCEF_PATH)</lib-path>
|
||||
<lib-path>$(LIBCEF_WRAPPER_PATH)</lib-path>
|
||||
<include>$(CEF_INCLUDE_DIR)</include>
|
||||
<sys-lib>$(LIBCEF_NAME)</sys-lib>
|
||||
<sys-lib>$(LIBCEF_DLL_WRAPPER_NAME)</sys-lib>
|
||||
<ldflags>$(LIBCEF_LINK)</ldflags>
|
||||
</if>
|
||||
<win32-res>../sample.rc</win32-res>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue