After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 766287 - Cross compiling gstreamer-1.8.1 for iOS arm64 fails on Mac OS X 10.11.4 and Xcode 7.3.0
Cross compiling gstreamer-1.8.1 for iOS arm64 fails on Mac OS X 10.11.4 and X...
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: cerbero
1.8.1
Other Mac OS
: Normal blocker
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-05-11 18:32 UTC by Elvis Dowson
Modified: 2016-10-20 11:24 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Elvis Dowson 2016-05-11 18:32:18 UTC
I tried building gstreamer-1.8.1 and it fails to build for iOS arm64, on Mac OS X 10.11.4 and Xcode 7.3.0.

I am using the cerebro 1.8.1 tag.

[(6/86) gstreamer-1.0 -> compile ]
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in pkgconfig
  CP     gstreamer-base-1.0.pc
  CP     gstreamer-1.0.pc
  CP     gstreamer-check-1.0.pc
  CP     gstreamer-controller-1.0.pc
  CP     gstreamer-net-1.0.pc
  CP     gstreamer-1.0-uninstalled.pc
  CP     gstreamer-base-1.0-uninstalled.pc
  CP     gstreamer-check-1.0-uninstalled.pc
  CP     gstreamer-controller-1.0-uninstalled.pc
  CP     gstreamer-net-1.0-uninstalled.pc
Making all in gst
glib-mkenums \
	--fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
	--fprod "\n/* enumerations from \"@filename@\" */\n" \
	--vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
	--ftail "G_END_DECLS\n\n#endif /* __GST_ENUM_TYPES_H__ */" \
	gst.h glib-compat.h gstobject.h gstallocator.h gstbin.h gstbuffer.h gstbufferlist.h gstbufferpool.h gstbus.h gstcaps.h gstcapsfeatures.h gstchildproxy.h gstclock.h gstcompat.h gstcontext.h gstcontrolbinding.h gstcontrolsource.h gstdatetime.h gstdebugutils.h gstelement.h gstelementmetadata.h gstdevice.h gstdeviceprovider.h gstdeviceproviderfactory.h gstelementfactory.h gsterror.h gstevent.h gstformat.h gstghostpad.h gstdevicemonitor.h gstinfo.h gstiterator.h gstatomicqueue.h gstmacros.h gstmessage.h gstmeta.h gstmemory.h gstminiobject.h gstpad.h gstpadtemplate.h gstparamspecs.h gstpipeline.h gstplugin.h gstpluginfeature.h gstpoll.h gstpreset.h gstprotection.h gstquery.h gstsample.h gstsegment.h gststructure.h gstsystemclock.h gsttaglist.h gsttagsetter.h gsttask.h gsttaskpool.h gsttoc.h gsttocsetter.h gsttracer.h gsttracerfactory.h gsttracerrecord.h gsttypefind.h gsttypefindfactory.h gsturi.h gstutils.h gstvalue.h gstregistry.h gstparse.h > gstenumtypes.h
glib-mkenums \
	--fhead "#include \"gst_private.h\"\n#include <gst/gst.h>\n#define C_ENUM(v) ((gint) v)\n#define C_FLAGS(v) ((guint) v)\n " \
	--fprod "\n/* enumerations from \"@filename@\" */" \
	--vhead "GType\n@enum_name@_get_type (void)\n{\n  static gsize id = 0;\n  static const G@Type@Value values[] = {"     \
	--vprod "    { C_@TYPE@(@VALUENAME@), \"@VALUENAME@\", \"@valuenick@\" }," \
	--vtail "    { 0, NULL, NULL }\n  };\n\n  if (g_once_init_enter (&id)) {\n    GType tmp = g_@type@_register_static (\"@EnumName@\", values);\n    g_once_init_leave (&id, tmp);\n  }\n\n  return (GType) id;\n}" \
	gst.h glib-compat.h gstobject.h gstallocator.h gstbin.h gstbuffer.h gstbufferlist.h gstbufferpool.h gstbus.h gstcaps.h gstcapsfeatures.h gstchildproxy.h gstclock.h gstcompat.h gstcontext.h gstcontrolbinding.h gstcontrolsource.h gstdatetime.h gstdebugutils.h gstelement.h gstelementmetadata.h gstdevice.h gstdeviceprovider.h gstdeviceproviderfactory.h gstelementfactory.h gsterror.h gstevent.h gstformat.h gstghostpad.h gstdevicemonitor.h gstinfo.h gstiterator.h gstatomicqueue.h gstmacros.h gstmessage.h gstmeta.h gstmemory.h gstminiobject.h gstpad.h gstpadtemplate.h gstparamspecs.h gstpipeline.h gstplugin.h gstpluginfeature.h gstpoll.h gstpreset.h gstprotection.h gstquery.h gstsample.h gstsegment.h gststructure.h gstsystemclock.h gsttaglist.h gsttagsetter.h gsttask.h gsttaskpool.h gsttoc.h gsttocsetter.h gsttracer.h gsttracerfactory.h gsttracerrecord.h gsttypefind.h gsttypefindfactory.h gsturi.h gstutils.h gstvalue.h gstregistry.h gstparse.h > gstenumtypes.c
/bin/sh: glib-mkenums: command not found
/bin/sh: glib-mkenums: command not found
make[2]: *** [gstenumtypes.h] Error 127
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [gstenumtypes.c] Error 127
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Running command 'make -j8'

Recipe 'gstreamer-1.0' failed at the build step 'compile'
Select an action to proceed:
[0] Enter the shell
[1] Rebuild the recipe from scratch
[2] Rebuild starting from the failed step
[3] Skip recipe
[4] Abort
4
***** Error running 'package' command:

I have edited config/cross-ios-arm64.cbc to have the following entries: 

from cerbero.config import Platform, Architecture, Distro, DistroVersion

target_platform=Platform.IOS
target_arch=Architecture.ARM64
target_distro=Distro.IOS

recipes_commits = {
'gstreamer-1.0' : '1.8.1',
'gstreamer-1.0-static' : '1.8.1',
'gst-plugins-base-1.0' : '1.8.1',
'gst-plugins-base-1.0-static' : '1.8.1',
'gst-plugins-good-1.0' : '1.8.1',
'gst-plugins-good-1.0-static' : '1.8.1',
'gst-plugins-bad-1.0' : '1.8.1',
'gst-plugins-bad-1.0-static' : '1.8.1',
'gst-plugins-ugly-1.0' : '1.8.1',
'gst-plugins-ugly-1.0-static' : '1.8.1',
'gst-libav-1.0' : '1.8.1',
'gst-libav-1.0-static' : '1.8.1',
'gnonlin-1.0' : '1.8.1',
'gnonlin-1.0-static' : '1.8.1',
'gst-editing-services-1.0' : '1.8.1',
'gst-rtsp-server-1.0' : '1.8.1',
'gst-rtsp-server-static-1.0' : '1.8.1',
}
Comment 1 Elvis Dowson 2016-05-11 18:41:25 UTC
Additional comment, the build also fails at exactly the same point for arm7 default config (i.e. without the recipe commit).
Comment 2 Elvis Dowson 2016-05-11 20:37:54 UTC
I was able to progress a little bit by running the bootstrap command for the arm64 architecture. Bootstrapping was mentioned for the macosx build, but the documentation didn't state that it had to be run for every architecture that you plan to build.

$ ./cerbero-uninstalled -c config/cross-ios-arm64.cbc bootstrap
$ ./cerbero-uninstalled -c config/cross-ios-arm64.cbc package gstreamer-1.0

However it fails a little further with bzip2:

-----> Step done
[(12/86) bzip2 -> compile ]
clang  -L/Library/Frameworks/GStreamer.framework/Versions/1.0/lib  -arch arm64 -pipe -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -miphoneos-version-min=6.0 -Wl,-iphoneos_version_min,6.0 -Wl,-undefined,error -Wl,-headerpad_max_install_names -Wno-error=unused-command-line-argument -shared -Wl,-install_name -Wl,libbz2.1.0.dylib -o libbz2.1.0.6.dylib blocksort.o huffman.o crctable.o randtable.o compress.o decompress.o bzlib.o
rm -f libbz2.1.0.dylib
rm -f libbz2.dylib
ln -s libbz2.1.0.6.dylib libbz2.1.0.dylib
ln -s libbz2.1.0.6.dylib libbz2.dylib
clang -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64  -arch arm64 -pipe -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -miphoneos-version-min=6.0 -Wall -g -Os -Wno-error=format-nonliteral -Wno-error=implicit-function-declaration   -L/Library/Frameworks/GStreamer.framework/Versions/1.0/lib  -arch arm64 -pipe -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -miphoneos-version-min=6.0 -Wl,-iphoneos_version_min,6.0 -Wl,-undefined,error -Wl,-headerpad_max_install_names -Wno-error=unused-command-line-argument -o bzip2 bzip2.o -L. -lbz2
ld: warning: ignoring file /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libbz2.dylib, file was built for x86_64 which is not the architecture being linked (arm64): /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libbz2.dylib
Undefined symbols for architecture arm64:
  "_BZ2_bzRead", referenced from:
      _uncompress in bzip2.o
      _testf in bzip2.o
  "_BZ2_bzReadClose", referenced from:
      _uncompress in bzip2.o
      _testf in bzip2.o
  "_BZ2_bzReadGetUnused", referenced from:
      _uncompress in bzip2.o
      _testf in bzip2.o
  "_BZ2_bzReadOpen", referenced from:
      _uncompress in bzip2.o
      _testf in bzip2.o
  "_BZ2_bzWrite", referenced from:
      _compress in bzip2.o
  "_BZ2_bzWriteClose64", referenced from:
      _compress in bzip2.o
  "_BZ2_bzWriteOpen", referenced from:
      _compress in bzip2.o
  "_BZ2_bzlibVersion", referenced from:
      _main in bzip2.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [bzip2] Error 1
Running command 'make -f Makefile-libbz2_dylib; make EXT='

Recipe 'bzip2' failed at the build step 'compile'
Comment 3 Sebastian Dröge (slomo) 2016-05-11 20:56:59 UTC
Can you check if cross-ios-universal.cbc works better for you? That's the one used for the binaries, and also the one running in our jenkins instance successfully.

If that one works but the others not, we should certainly look into that. Probably some cases in the build descriptions (the recipes) missing that are currently only done for iOS/universal builds.
Comment 4 Elvis Dowson 2016-05-12 13:42:07 UTC
I tried rebuilding for cross-iso-universal using the cerebro 1.8 branch. Bootstrapping worked fine. However building gstreamer-1.0 package did not work. It fails with the following error:

[(4/86) glib -> configure ]
-----> copying /project/software/library/gstreamer/sdk/cerbero/data/autotools/config.guess to /project/software/library/gstreamer/sdk/cerbero/build/sources/ios_universal/x86_64/glib-2.46.2/config.guess
-----> copying /project/software/library/gstreamer/sdk/cerbero/data/autotools/config.sub to /project/software/library/gstreamer/sdk/cerbero/build/sources/ios_universal/x86_64/glib-2.46.2/config.sub
autoreconf: Entering directory `.'

<snip>

checking for ngettext in -lintl... no
configure: error: 
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html

Running command 'sh autogen.sh --prefix /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal --libdir /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib  --enable-static --disable-gtk-doc --disable-carbon --enable-dtrace=no --disable-modular-tests --disable-cocoa --disable-maintainer-mode  --disable-silent-rules  --disable-introspection  --host=x86_64-apple-darwin10 --disable-maintainer-mode  --disable-silent-rules  --disable-introspection  --host=x86_64-apple-darwin10'

***** Error running 'package' command:
Recipe 'glib' failed at the build step 'configure'
Comment 5 Elvis Dowson 2016-05-12 14:04:24 UTC
I tried to build gettext alone, using the following command:

./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone gettext 

and re-ran the command:

./cerbero-uninstalled -c config/cross-ios-universal.cbc package gstreamer-1.0

but it still fails at the same point:

[(4/86) glib -> extract ]
-----> Step done
[(4/86) glib -> configure ]
-----> copying /project/software/library/gstreamer/sdk/cerbero/data/autotools/config.guess to /project/software/library/gstreamer/sdk/cerbero/build/sources/ios_universal/x86_64/glib-2.46.2/config.guess
-----> copying /project/software/library/gstreamer/sdk/cerbero/data/autotools/config.sub to /project/software/library/gstreamer/sdk/cerbero/build/sources/ios_universal/x86_64/glib-2.46.2/config.sub
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4macros'.
libtoolize: copying file 'm4macros/libtool.m4'
libtoolize: copying file 'm4macros/ltoptions.m4'
libtoolize: copying file 'm4macros/ltsugar.m4'
libtoolize: copying file 'm4macros/ltversion.m4'
libtoolize: copying file 'm4macros/lt~obsolete.m4'
autoreconf: running: /project/software/library/gstreamer/sdk/cerbero/build/build-tools/bin/autoconf --force
autoreconf: running: /project/software/library/gstreamer/sdk/cerbero/build/build-tools/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:112: installing './compile'
configure.ac:66: installing './missing'
gio/Makefile.am:108: warning: source file 'gvdb/gvdb-reader.c' is in a subdirectory,
gio/Makefile.am:108: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled.  For now, the corresponding output
automake: object file(s) will be placed in the top-level directory.  However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
gio/Makefile.am:713: warning: source file 'gvdb/gvdb-builder.c' is in a subdirectory,
gio/Makefile.am:713: but option 'subdir-objects' is disabled
gio/Makefile.am:730: warning: source file 'gvdb/gvdb-builder.c' is in a subdirectory,
gio/Makefile.am:730: but option 'subdir-objects' is disabled
gio/Makefile.am: installing './depcomp'
gio/tests/Makefile.am:236: warning: source file '$(top_srcdir)/gio/gdbusdaemon.c' is in a subdirectory,
gio/tests/Makefile.am:236: but option 'subdir-objects' is disabled
gio/tests/Makefile.am:234: warning: source file '$(top_builddir)/gio/gdbus-daemon-generated.c' is in a subdirectory,
gio/tests/Makefile.am:234: but option 'subdir-objects' is disabled
glib/Makefile.am:99: warning: source file 'deprecated/gallocator.c' is in a subdirectory,
glib/Makefile.am:99: but option 'subdir-objects' is disabled
glib/Makefile.am:99: warning: source file 'deprecated/gcache.c' is in a subdirectory,
glib/Makefile.am:99: but option 'subdir-objects' is disabled
glib/Makefile.am:99: warning: source file 'deprecated/gcompletion.c' is in a subdirectory,
glib/Makefile.am:99: but option 'subdir-objects' is disabled
glib/Makefile.am:99: warning: source file 'deprecated/grel.c' is in a subdirectory,
glib/Makefile.am:99: but option 'subdir-objects' is disabled
glib/Makefile.am:99: warning: source file 'deprecated/gthread-deprecated.c' is in a subdirectory,
glib/Makefile.am:99: but option 'subdir-objects' is disabled
glib/tests/Makefile.am:177: warning: source file '../../glib/gwakeup.c' is in a subdirectory,
glib/tests/Makefile.am:177: but option 'subdir-objects' is disabled
glib/tests/Makefile.am:212: warning: source file '../../glib/gwakeup.c' is in a subdirectory,
glib/tests/Makefile.am:212: but option 'subdir-objects' is disabled
autoreconf: Leaving directory `.'
configure: WARNING: unrecognized options: --disable-modular-tests, --disable-introspection
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for x86_64-apple-darwin10-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '1026' is supported by ustar format... yes
checking whether GID '20' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports nested variables... (cached) yes
checking for x86_64-apple-darwin10-gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking whether clang understands -c and -o together... rm: conftest.dSYM: is a directory
yes
checking for style of include used by make... GNU
checking dependency style of clang... gcc3
checking how to run the C preprocessor... clang -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking build system type... x86_64-apple-darwin15.4.0
checking host system type... x86_64-apple-darwin10
checking for Win32... no
checking for the Android... no
no
no
checking whether to enable garbage collector friendliness... no
checking whether to disable memory pools... no
readlink: illegal option -- f
usage: readlink [-n] [file ...]
checking for x86_64-apple-darwin10-c++... clang++
checking whether we are using the GNU C++ compiler... yes
checking whether clang++ accepts -g... yes
checking dependency style of clang++... gcc3
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking pkg-config is at least version 0.16... yes
checking for gawk... (cached) awk
checking for perl5... no
checking for perl... perl
checking for indent... indent
checking for perl... /usr/bin/perl
checking for a Python interpreter with version >= 2.5... python
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... darwin
checking for python script directory... ${prefix}/lib/python2.7/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages
checking for iconv_open... no
checking for libiconv_open in -liconv... no
checking for iconv_open in -liconv... yes
checking for ZLIB... yes
checking for LIBFFI... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking for LC_MESSAGES... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for ngettext in libc... no
checking for bindtextdomain in -lintl... no
checking if -liconv is needed to use gettext... 
checking for ngettext in -lintl... no
configure: error: 
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html

Running command 'sh autogen.sh --prefix /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal --libdir /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib  --enable-static --disable-gtk-doc --disable-carbon --enable-dtrace=no --disable-modular-tests --disable-cocoa --disable-maintainer-mode  --disable-silent-rules  --disable-introspection  --host=x86_64-apple-darwin10'
Comment 6 Elvis Dowson 2016-05-12 19:45:44 UTC
There is a problem with the build system. I switched to cerebro master branch, and noticed that for cross-ios-universal.cbc, several *.dylib are missing from 

build/dist/ios_universal/lib/*

Each time I resolve it by manually build one recipe, another dylib disappears during the build process.

This is the fully list of files that I have had to manually rebuild, to recreate the missing dylib file.

$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone gettext
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone libffi
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone libpng
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone expat
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone zlib
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone bzip2
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone libxml2
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc buildone freetype
$ ./cerbero-uninstalled -c config/cross-ios-universal.cbc building fontconfig

I suspect running the gstreamer-1.0 package removes some *.dylib file, during the build process, which in turn causes the build to fail.
Comment 7 Elvis Dowson 2016-05-12 19:55:51 UTC
Here is another data point, which might be the cause of the issue. Building fontconfig causes the freetype.dylib to disappear.
Comment 8 Elvis Dowson 2016-05-12 19:59:54 UTC
I additionally noticed that building fontconfig caused libbz2.dylib, libpng16.dylib and libz.dylib to disappear as well. 

clang: error: no such file or directory: '/project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libbz2.dylib'
clang: error: no such file or directory: '/project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libpng16.dylib'
clang: error: no such file or directory: '/project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libz.dylib'

This would need to be fixed in order to allow the build to proceed for cross-ios-universal.cbc
Comment 9 Nicolas Dufresne (ndufresne) 2016-05-13 06:13:28 UTC
Any idea what have changed in 7.3 ? As this works fine on the build bot (which is 7.1 atm).
Comment 10 Edward Hervey 2016-05-13 08:38:29 UTC
The buildslave is using 7.3.1 as of last wednesday. Just started a fresh build, seems to work fine:
https://ci.gstreamer.net/job/cerbero-ios-universal-7.1/4320/
Comment 11 Elvis Dowson 2016-05-13 09:09:15 UTC
I'm running Mac OS X 10.11.4. The buildslave appears to be running 10.10 from the description.

I was able to build against the current master branch for the following configurations:
osx-x86-64.cbc
cross-ios-arm64

cross-ios-universal did not build, for reasons stated above (missing *.dylib files).

In terms of testing, the mac os x tutorials seemed to work fine. But the iOS tutorials had a problem with the linker complaining that the libraries did not contain bitcode. I will open a separate bug list for the bitcode linker error.
Comment 12 Sebastian Dröge (slomo) 2016-05-13 09:16:49 UTC
We don't build (and can't generally) bitcode. You need to disable that part in xcode.
Comment 13 Elvis Dowson 2016-05-13 18:29:31 UTC
I tried a fresh build for cross-iso-universal.cbc, after building osx-x86-64.cbc, but the build still fails.

Here is the output at the first point of failure.

libtool: link: sed 's|^|_|' < .libs/libgstreamer-1.0.exp > .libs/libgstreamer-1.0-symbols.expsym
libtool: link: clang -dynamiclib  -o .libs/libgstreamer-1.0.0.dylib  .libs/libgstreamer_1.0_la-gst.o .libs/libgstreamer_1.0_la-gstobject.o .libs/libgstreamer_1.0_la-gstallocator.o .libs/libgstreamer_1.0_la-gstbin.o .libs/libgstreamer_1.0_la-gstbuffer.o .libs/libgstreamer_1.0_la-gstbufferlist.o .libs/libgstreamer_1.0_la-gstbufferpool.o .libs/libgstreamer_1.0_la-gstbus.o .libs/libgstreamer_1.0_la-gstcaps.o .libs/libgstreamer_1.0_la-gstcapsfeatures.o .libs/libgstreamer_1.0_la-gstchildproxy.o .libs/libgstreamer_1.0_la-gstclock.o .libs/libgstreamer_1.0_la-gstclock-linreg.o .libs/libgstreamer_1.0_la-gstcontext.o .libs/libgstreamer_1.0_la-gstcontrolbinding.o .libs/libgstreamer_1.0_la-gstcontrolsource.o .libs/libgstreamer_1.0_la-gstdatetime.o .libs/libgstreamer_1.0_la-gstdebugutils.o .libs/libgstreamer_1.0_la-gstdevice.o .libs/libgstreamer_1.0_la-gstdevicemonitor.o .libs/libgstreamer_1.0_la-gstdeviceprovider.o .libs/libgstreamer_1.0_la-gstdeviceproviderfactory.o .libs/libgstreamer_1.0_la-gstelement.o .libs/libgstreamer_1.0_la-gstelementfactory.o .libs/libgstreamer_1.0_la-gsterror.o .libs/libgstreamer_1.0_la-gstevent.o .libs/libgstreamer_1.0_la-gstformat.o .libs/libgstreamer_1.0_la-gstghostpad.o .libs/libgstreamer_1.0_la-gstinfo.o .libs/libgstreamer_1.0_la-gstiterator.o .libs/libgstreamer_1.0_la-gstatomicqueue.o .libs/libgstreamer_1.0_la-gstmessage.o .libs/libgstreamer_1.0_la-gstmeta.o .libs/libgstreamer_1.0_la-gstmemory.o .libs/libgstreamer_1.0_la-gstminiobject.o .libs/libgstreamer_1.0_la-gstpad.o .libs/libgstreamer_1.0_la-gstpadtemplate.o .libs/libgstreamer_1.0_la-gstparamspecs.o .libs/libgstreamer_1.0_la-gstpipeline.o .libs/libgstreamer_1.0_la-gstplugin.o .libs/libgstreamer_1.0_la-gstpluginfeature.o .libs/libgstreamer_1.0_la-gstpluginloader.o .libs/libgstreamer_1.0_la-gstpoll.o .libs/libgstreamer_1.0_la-gstpreset.o .libs/libgstreamer_1.0_la-gstprotection.o .libs/libgstreamer_1.0_la-gstquark.o .libs/libgstreamer_1.0_la-gstquery.o .libs/libgstreamer_1.0_la-gstregistry.o .libs/libgstreamer_1.0_la-gstregistrychunks.o .libs/libgstreamer_1.0_la-gstsample.o .libs/libgstreamer_1.0_la-gstsegment.o .libs/libgstreamer_1.0_la-gststructure.o .libs/libgstreamer_1.0_la-gstsystemclock.o .libs/libgstreamer_1.0_la-gsttaglist.o .libs/libgstreamer_1.0_la-gsttagsetter.o .libs/libgstreamer_1.0_la-gsttask.o .libs/libgstreamer_1.0_la-gsttaskpool.o .libs/libgstreamer_1.0_la-gsttoc.o .libs/libgstreamer_1.0_la-gsttocsetter.o .libs/libgstreamer_1.0_la-gsttrace.o .libs/libgstreamer_1.0_la-gsttracer.o .libs/libgstreamer_1.0_la-gsttracerfactory.o .libs/libgstreamer_1.0_la-gsttracerrecord.o .libs/libgstreamer_1.0_la-gsttracerutils.o .libs/libgstreamer_1.0_la-gsttypefind.o .libs/libgstreamer_1.0_la-gsttypefindfactory.o .libs/libgstreamer_1.0_la-gsturi.o .libs/libgstreamer_1.0_la-gstutils.o .libs/libgstreamer_1.0_la-gstvalue.o .libs/libgstreamer_1.0_la-gstparse.o .libs/libgstreamer_1.0_la-gstenumtypes.o   -Wl,-force_load,parse/.libs/libgstparse.a -Wl,-force_load,printf/.libs/libgstprintf.a  -L/project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libgobject-2.0.dylib /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libffi.dylib /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libgmodule-2.0.dylib /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libglib-2.0.dylib /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libintl.dylib -liconv -lc -ldl  -g -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk -mios-simulator-version-min=6.0 -g -Os -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk -mios-simulator-version-min=6.0 -Wl,-ios_simulator_version_min -Wl,6.0 -Wl,-undefined -Wl,error -Wl,-headerpad_max_install_names   -install_name  /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libgstreamer-1.0.0.dylib -compatibility_version 901 -current_version 901.0 -Wl,-single_module -Wl,-exported_symbols_list,.libs/libgstreamer-1.0-symbols.expsym
clang: error: no such file or directory: '/project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libffi.dylib'
clang: error: no such file or directory: '/project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libintl.dylib'
make[4]: *** [libgstreamer-1.0.la] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Running command 'make -j8'

Recipe 'gstreamer-1.0' failed at the build step 'compile'
Comment 14 Sebastian Dröge (slomo) 2016-05-15 10:13:26 UTC
Does /project/software/library/gstreamer/sdk/cerbero/build/dist/ios_universal/lib/libintl.dylib exist? If not, why not? Was libintl built before, did it skip building libintl (e.g. because you had an outdated cache file and did not use wipe for the clean build but only rm-rf'd the files)?
Comment 15 Matthew Waters (ystreet00) 2016-10-20 11:24:17 UTC
I've built the ios-universal configuration a number of times on this OSX/XCode configuration and everything is/was fine.

Without you providing more information, we cannot really help you further.  You can try building from scratch either by using cerbero's wipe command or building into a separate prefix.

Closing due to lack of information.