Commits on Source (13)
-
dd6fa610
-
This is not supported with -bundle_bitcode, and was only supposed to be used on 32bit anyway. It seems to be only a legacy flag now. From ld64 man: -read_only_relocs treatment Enables the use of relocations which will cause dyld to modify (copy-on-write) read-only pages. The compiler will normally never generate such code.
505f0955 -
The SSL*ALPNProtocols were introduced in recent OS version, and dynamic lookup (using ld64 option -Wl,-U) was used to make it work during link-time and potentially not have the function available. However, -Wl,-U is not compatible with bitcode support, whereas availability targeting is, and availability targeting provides more information about when it's not supported. MacOSX 10.13.4 is the minimal version target in cURL too. The SSL*ALPNProtocols functions are documented as supported since 10.13 but they were not included in the initial 10.13 releases.
7c4ee7ec -
Those flags are not supported with bitcode and are not needed now that the code has migrated to using availability targeting.
ceeb44fb -
c7bdf947
-
Otherwise, the OpenGL interop doesn't link on tvOS when creating dynamic plugins (--enable-shared option from build.sh).
3a7eccda -
- use a single location for adding every defines - use a single vout_LTLIBRARIES += line - deduplicate -framework,IOSurface
22709120 -
64bd2e6b
-
Those frameworks only exist for MacOSX, so it was invalid to set them up in the general case. Fortunately, it wasn't really used on iOS and tvOS for the executables so it didn't have consequences. On MacOSX, the targets needing this framework already link it so it is not needed.
9262bbc2 -
Check that the linker features from Darwin ld64 for marking a symbol as undefined (in the context of two-level namespace, it means that it can be looked up in other namespaces) are usable. If they are not, the static module bank is disabled since it depends on either static linkage (which is obviously not affected by this option) or more generally the ability to look up the static module bank symbol in a different linkage unit/namespace. In particular, they are currently not usable when enabling bitcode through LDFLAGS+=" -fembed-bitcode" and compiling dynamically. On tvOS, bitcode is mandatory, so supporting compiling with bitcode but without the static module bank seems a rather good compromise given that it was disabled anyway previously. In static builds (the current shipping target for iOS and tvOS), the static module bank stays enabled by the !HAVE_DYNAMIC_PLUGINS check.
7e916f4c -
When building with bitcode enabled (*FLAGS+=-fembed-bitcode), the following happens: - with LDFLAGS += -fembed-bitcode, the vanilla libtool version will remove the -fembed-bitcode flag, being an unknown flag, so bitcode won't actually be enabled, and final link steps might complain that the dylibs (libvlccore.dylib for instance) doesn't actually have bitcode embedded. - once fixed (either by this patch or by using -Wl,-fembed-bitcode), the plugins will be compiled with -module, which default to using MH_BUNDLE on iOS/tvOS/MacOSX instead of MH_DYLIB. Indeed, dylibs can be dlopened only since MacOSX 10.3/10.4, and can be dlclosed only since MacOSX 10.5, so MH_BUNDLE was the primary target for libtool module support. However, MH_BUNDLE is not compatible with the bitcode support from Clang. Since we support MacOSX 10.11 as minimum, we can default to using MH_DYLIB for plugins to have the bitcode support. This new libtool patch add the explicit support for -fembed-bitcode in libtool --mode=link flags, and change the flags used when using -module in libtool to switch to dylibs.
95bbad6d -
The bitcode flag was already added to CFLAGS, but was only used when creating a static build of libvlc, which doesn't involve linkage. When creating shared plugins, the dylibs must be linked with the -fembed-bitcode flag to gather the bitcode from the different objects. In particular, bitcode is mandatory on tvOS, so this is mandatory when building dynamic plugins and/or libvlc for tvOS.
26231ecf -
585c0b02
Showing
- configure.ac 18 additions, 1 deletionconfigure.ac
- extras/package/apple/build.sh 13 additions, 4 deletionsextras/package/apple/build.sh
- extras/tools/libtool-2.4.6-embed-bitcode.patch 46 additions, 0 deletionsextras/tools/libtool-2.4.6-embed-bitcode.patch
- extras/tools/tools.mak 1 addition, 0 deletionsextras/tools/tools.mak
- modules/common.am 1 addition, 1 deletionmodules/common.am
- modules/demux/Makefile.am 0 additions, 3 deletionsmodules/demux/Makefile.am
- modules/misc/Makefile.am 0 additions, 1 deletionmodules/misc/Makefile.am
- modules/misc/securetransport.c 4 additions, 8 deletionsmodules/misc/securetransport.c
- modules/video_output/Makefile.am 15 additions, 12 deletionsmodules/video_output/Makefile.am
- src/Makefile.am 1 addition, 1 deletionsrc/Makefile.am
- src/modules/bank.c 3 additions, 1 deletionsrc/modules/bank.c