kivy / python-for-android

Turn your Python application into an Android APK
https://python-for-android.readthedocs.io
MIT License
8.36k stars 1.85k forks source link

Harfbuzz compile issue on 15.04 - fatal error: asm-generic/posix_types.h: No such file or directory #376

Closed olymk2 closed 9 years ago

olymk2 commented 9 years ago

The recipe i created does not seem to work on ubuntu 15.04 for harfbuzz, i am raising this incase some one else knows how to fix it or encounters it with other recipes.

It looks like the compile process is trying to use local includes instead of the android includes.

I have setup a 14.04 lts virtual machine and it works perfectly on that setup if any one else wants to try you can paste the commands below to setup everything.

think i will try on a fresh 15.04 iso next, i think something has changed in ubuntu which is causing this issue.

sudo apt-get install build-essential python-dev zlib1g-dev 
sudo pip install cython==0.21.2

mkdir -p /opt/android/
cd /opt/android/
wget dl.google.com/android/android-sdk_r21-linux.tgz
wget http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2

tar -xvf android-sdk_r21-linux.tgz
tar -xvf android-ndk-r9d-linux-x86_64.tar.bz2

export ANDROIDSDK="/opt/android/android-sdk-linux"
export ANDROIDNDK="/opt/android/android-ndk-r9d"
export ANDROIDNDKVER=r9
export ANDROIDAPI=14

git clone https://github.com/olymk2/python-for-android.git
cd python-for-android
git checkout feature/freetype-recipe

./distribute.sh -f -m "kivy harfbuzz"

output of the build is below.

Check build dependencies for Ubuntu Packages missing: cython It might break the compilation, except if you installed thoses packages manually. Check environment SDK located at /opt/android/android-sdk-linux NDK located at /opt/android/android-ndk-r9d NDK version is r9 API level set to 14 Check NDK location Check mandatory tools Distribution will be located at /opt/android/python-for-android/dist/default The distribution /opt/android/python-for-android/dist/default already exist Press a key to remove it, or Control + C to abort.

Entering in ARM environment Compiler found at /opt/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin//arm-linux-androideabi-gcc PATH is /opt/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/:/opt/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/:/opt/android/android-ndk-r9d:/opt/android/android-sdk-linux/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/share/php/yii-framework-php Leaving ARM environment Read kivy recipe Module kivy depend on pygame pyjnius android Read harfbuzz recipe Read pygame recipe Module pygame depend on python sdl Read pyjnius recipe Module pyjnius depend on python sdl Read android recipe Module android depend on pygame Read python recipe Module python depend on hostpython Read sdl recipe Module sdl depend on python Ignored python, already processed Ignored sdl, already processed Ignored pygame, already processed Read hostpython recipe Ignored python, already processed Modules changed to harfbuzz hostpython python sdl pygame pyjnius android kivy Pure-Python modules changed to Run get packages Download package for harfbuzz Module harfbuzz already downloaded Download package for hostpython Module hostpython already downloaded Download package for python Module python already downloaded Download package for sdl No package for sdl Download package for pygame Module pygame already downloaded Download package for pyjnius Module pyjnius already downloaded Download package for android No package for android Download package for kivy Module kivy already downloaded Run prebuild Call prebuild_harfbuzz Call prebuild_hostpython Call prebuild_python Call prebuild_sdl Call prebuild_pygame Call prebuild_pyjnius Call prebuild_android Call prebuild_kivy Run build Call build_harfbuzz Entering in ARM environment Compiler found at /opt/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin//arm-linux-androideabi-gcc checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-linux-androideabi-strip... arm-linux-androideabi-strip --strip-unneeded checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make -j5 sets $(MAKE)... yes checking whether make -j5 supports nested variables... yes checking how to create a pax tar archive... gnutar checking whether make -j5 supports nested variables... (cached) yes checking for style of include used by make -j5... GNU checking for arm-linux-androideabi-gcc... arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm 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... yes checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm accepts -g... yes checking for arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm option to accept ISO C89... none needed checking whether arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm understands -c and -o together... yes checking dependency style of arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm... gcc3 checking for arm-linux-androideabi-ar... arm-linux-androideabi-ar checking the archiver (arm-linux-androideabi-ar) interface... ar checking build system type... i686-pc-linux-gnu checking host system type... arm-unknown-linux-androideabi checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm... arm-linux-androideabi-ld checking if the linker (arm-linux-androideabi-ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /opt/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin//arm-linux-androideabi-nm -B checking the name lister (/opt/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin//arm-linux-androideabi-nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert i686-pc-linux-gnu file names to arm-unknown-linux-androideabi format... func_convert_file_noop checking how to convert i686-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for arm-linux-androideabi-ld option to reload object files... -r checking for arm-linux-androideabi-objdump... arm-linux-androideabi-objdump checking how to recognize dependent libraries... pass_all checking for arm-linux-androideabi-dlltool... no checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for arm-linux-androideabi-ar... (cached) arm-linux-androideabi-ar checking for archiver @FILE support... @ checking for arm-linux-androideabi-strip... (cached) arm-linux-androideabi-strip --strip-unneeded checking for arm-linux-androideabi-ranlib... arm-linux-androideabi-ranlib checking command to parse /opt/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin//arm-linux-androideabi-nm -B output from arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm object... ok checking for sysroot... no checking for arm-linux-androideabi-mt... no checking for mt... mt configure: WARNING: using cross tools not prefixed with host triplet checking if mt is a manifest tool... no checking how to run the C preprocessor... arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm -E checking for ANSI C header files... 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 for dlfcn.h... yes checking for objdir... .libs checking if arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm supports -fno-rtti -fno-exceptions... no checking for arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm option to produce PIC... -fPIC -DPIC checking if arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm PIC flag -fPIC -DPIC works... yes checking if arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm static flag -static works... yes checking if arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm supports -c -o file.o... yes checking if arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm supports -c -o file.o... (cached) yes checking whether the arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm linker (arm-linux-androideabi-ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... Android linker checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for arm-linux-androideabi-gcc... (cached) arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm checking whether we are using the GNU C compiler... (cached) yes checking whether arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm accepts -g... (cached) yes checking for arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm option to accept ISO C89... (cached) none needed checking whether arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm understands -c and -o together... (cached) yes checking dependency style of arm-linux-androideabi-gcc -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm... (cached) gcc3 checking whether we are using the GNU C++ compiler... yes checking whether arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm accepts -g... yes checking dependency style of arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm... gcc3 checking how to run the C++ preprocessor... arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm -E checking for ld used by arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm... arm-linux-androideabi-ld checking if the linker (arm-linux-androideabi-ld) is GNU ld... yes checking whether the arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm linker (arm-linux-androideabi-ld) supports shared libraries... yes checking for arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm option to produce PIC... -fPIC -DPIC checking if arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm PIC flag -fPIC -DPIC works... yes checking if arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm static flag -static works... yes checking if arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm supports -c -o file.o... yes checking if arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm supports -c -o file.o... (cached) yes checking whether the arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/android/android-ndk-r9d/platforms/android-14/arch-arm linker (arm-linux-androideabi-ld) supports shared libraries... yes checking dynamic linker characteristics... Android linker checking how to hardcode library paths into programs... immediate checking for arm-linux-androideabi-pkg-config... no checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for gtk-doc... yes checking for gtkdoc-check... gtkdoc-check.test checking for gtkdoc-check... /usr/bin/gtkdoc-check checking for gtkdoc-rebase... /usr/bin/gtkdoc-rebase checking for gtkdoc-mkpdf... /usr/bin/gtkdoc-mkpdf checking whether to build gtk-doc documentation... no checking for GTKDOC_DEPS... yes checking for atexit... yes checking for mprotect... yes checking for sysconf... yes checking for getpagesize... no checking for mmap... yes checking for isatty... yes checking for unistd.h... (cached) yes checking sys/mman.h usability... yes checking sys/mman.h presence... yes checking for sys/mman.h... yes checking alignment of struct{char;}... 1 checking for native Win32... no checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... no checking for CAIRO... yes checking for CAIRO_FT... yes checking for ICU... yes checking for Intel atomic primitives... true checking for Solaris atomic operations... false checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating src/hb-version.h config.status: creating src/hb-ucdn/Makefile config.status: creating util/Makefile config.status: creating test/Makefile config.status: creating test/api/Makefile config.status: creating test/shaping/Makefile config.status: creating docs/Makefile config.status: creating docs/reference/Makefile config.status: creating docs/reference/version.xml config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands configure:

Build configuration:

Unicode callbacks (you want at least one): Glib: false ICU: true UCDN: true

Font callbacks (the more the better): FreeType: false

Tools used for command-line utilities: Cairo: true

Additional shapers (the more the better): Graphite2: false

Platform shapers (not normally needed): CoreText: false Uniscribe: false

Other features: Documentation: yes GObject bindings: false Introspection: false

make -j5 all-recursive make[1]: warning: -jN forced in submake: disabling jobserver mode. make[1]: Entering directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40' Making all in src make[2]: Entering directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40/src' make[2]: warning: -jN forced in submake: disabling jobserver mode. make -j5 all-recursive make[3]: Entering directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40/src' make[3]: warning: -jN forced in submake: disabling jobserver mode. Making all in hb-ucdn make[4]: Entering directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40/src/hb-ucdn' make[4]: warning: -jN forced in submake: disabling jobserver mode. make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40/src/hb-ucdn' make[4]: Entering directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40/src' make[4]: warning: -jN forced in submake: disabling jobserver mode. CXX libharfbuzz_la-hb-blob.lo CXX libharfbuzz_la-hb-buffer-serialize.lo CXX libharfbuzz_la-hb-buffer.lo CXX libharfbuzz_la-hb-common.lo CXX libharfbuzz_la-hb-face.lo CXX libharfbuzz_la-hb-font.lo CXX libharfbuzz_la-hb-ot-tag.lo CXX libharfbuzz_la-hb-set.lo CXX libharfbuzz_la-hb-shape-plan.lo CXX libharfbuzz_la-hb-shape.lo CXX libharfbuzz_la-hb-shaper.lo CXX libharfbuzz_la-hb-unicode.lo CXX libharfbuzz_la-hb-warning.lo CXX libharfbuzz_la-hb-ot-font.lo CXX libharfbuzz_la-hb-ot-layout.lo CXX libharfbuzz_la-hb-ot-map.lo CXX libharfbuzz_la-hb-ot-shape.lo CXX libharfbuzz_la-hb-ot-shape-complex-arabic.lo CXX libharfbuzz_la-hb-ot-shape-complex-default.lo CXX libharfbuzz_la-hb-ot-shape-complex-hangul.lo CXX libharfbuzz_la-hb-ot-shape-complex-hebrew.lo CXX libharfbuzz_la-hb-ot-shape-complex-indic.lo CXX libharfbuzz_la-hb-ot-shape-complex-indic-table.lo CXX libharfbuzz_la-hb-ot-shape-complex-myanmar.lo CXX libharfbuzz_la-hb-ot-shape-complex-sea.lo CXX libharfbuzz_la-hb-ot-shape-complex-thai.lo CXX libharfbuzz_la-hb-ot-shape-complex-tibetan.lo CXX libharfbuzz_la-hb-ot-shape-normalize.lo CXX libharfbuzz_la-hb-ot-shape-fallback.lo CXX libharfbuzz_la-hb-fallback-shape.lo CXX libharfbuzz_la-hb-ucdn.lo CXX libharfbuzz_icu_la-hb-icu.lo CXX main-main.o CXX test-test.o CXX test_buffer_serialize-test-buffer-serialize.o In file included from /opt/android/android-ndk-r9d/platforms/android-14/arch-arm/usr/include/stdlib.h:31:0, from hb-private.hh:43, from hb-icu.cc:30: /usr/include/x86_64-linux-gnu/sys/cdefs.h:41:20: error: missing binary operator before token "("

if **GNUC_PREREQ (4, 6) && !defined _LIBC

                ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:54:44: error: missing binary operator before token "("

if !defined cplusplus && GNUC_PREREQ (3, 3)

                                        ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:59:44: error: missing binary operator before token "("

if defined cplusplus && GNUC_PREREQ (2,8)

                                        ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:135:19: error: missing binary operator before token "("

if __GNUC_PREREQ (4,3)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:148:19: error: missing binary operator before token "("

if __GNUC_PREREQ (2,97)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:210:19: error: missing binary operator before token "("

if __GNUC_PREREQ (2,96)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:218:19: error: missing binary operator before token "("

if __GNUC_PREREQ (4, 3)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:228:19: error: missing binary operator before token "("

if __GNUC_PREREQ (2,96)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:235:19: error: missing binary operator before token "("

if __GNUC_PREREQ (2,5)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:244:19: error: missing binary operator before token "("

if __GNUC_PREREQ (3,1)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:253:19: error: missing binary operator before token "("

if __GNUC_PREREQ (3,2)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:265:19: error: missing binary operator before token "("

if __GNUC_PREREQ (2,8)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:275:19: error: missing binary operator before token "("

if __GNUC_PREREQ (2,97)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:284:19: error: missing binary operator before token "("

if __GNUC_PREREQ (3,3)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:292:19: error: missing binary operator before token "("

if __GNUC_PREREQ (3,4)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:306:19: error: missing binary operator before token "("

if __GNUC_PREREQ (3,2)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:314:19: error: missing binary operator before token "("

if __GNUC_PREREQ (4,3)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:329:44: error: missing binary operator before token "("

if (!defined cplusplus || GNUC_PREREQ (4,3) \

                                        ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:348:19: error: missing binary operator before token "("

if __GNUC_PREREQ (4,3)

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:357:20: error: missing binary operator before token "("

if !__GNUC_PREREQ (2,8)

                ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:362:20: error: missing binary operator before token "("

if !__GNUC_PREREQ (2,92)

                ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:369:19: error: missing binary operator before token "("

if __GNUC_PREREQ (3,1) && !defined __GNUG**

               ^

/usr/include/x86_64-linux-gnu/sys/cdefs.h:394:25: error: missing binary operator before token "(" && !__GNUC_PREREQ (4,7)) ^ In file included from /usr/include/x86_64-linux-gnu/asm/posix_types.h:6:0, from /opt/android/android-ndk-r9d/platforms/android-14/arch-arm/usr/include/linux/posix_types.h:41, from /opt/android/android-ndk-r9d/platforms/android-14/arch-arm/usr/include/linux/types.h:15, from /opt/android/android-ndk-r9d/platforms/android-14/arch-arm/usr/include/asm-generic/siginfo.h:16, from /usr/include/x86_64-linux-gnu/asm/siginfo.h:14, from /opt/android/android-ndk-r9d/platforms/android-14/arch-arm/usr/include/time.h:35, from /usr/include/x86_64-linux-gnu/sys/types.h:132, from /opt/android/android-ndk-r9d/platforms/android-14/arch-arm/usr/include/strings.h:42, from /opt/android/android-ndk-r9d/platforms/android-14/arch-arm/usr/include/stdlib.h:42, from hb-private.hh:43, from hb-icu.cc:30: /usr/include/x86_64-linux-gnu/asm/posix_types_64.h:17:37: fatal error: asm-generic/posix_types.h: No such file or directory

include <asm-generic/posix_types.h>

                                 ^

compilation terminated. Makefile:1277: recipe for target 'libharfbuzz_icu_la-hb-icu.lo' failed make[4]: * [libharfbuzz_icu_la-hb-icu.lo] Error 1 make[4]: * Waiting for unfinished jobs.... make[4]: Leaving directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40/src' Makefile:1723: recipe for target 'all-recursive' failed make[3]: * [all-recursive] Error 1 make[3]: Leaving directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40/src' Makefile:1015: recipe for target 'all' failed make[2]: * [all] Error 2 make[2]: Leaving directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40/src' Makefile:480: recipe for target 'all-recursive' failed make[1]: * [all-recursive] Error 1 make[1]: Leaving directory '/opt/android/python-for-android/build/harfbuzz/harfbuzz-0.9.40' Makefile:411: recipe for target 'all' failed make: * [all] Error 2

kived commented 9 years ago

I can confirm that this happens for me as well on Ubuntu 15.04. Adding --without-icu fixes this, so the difference is probably that 15.04 has ICU available in the system and configure is finding it.

I only tested building the distribution; I did not test actually using harfbuzz, but it compiles.

kived commented 9 years ago

Also, I don't know that --build=i686-pc-linux-gnu is correct on all systems -- it seems likely to fail on OSX. Before the call to push_arm, you should be able to get the correct value with gcc -dumpmachine. It might also work without specifying --build at all, because configure will try to guess the build machine.

olymk2 commented 9 years ago

kived thanks a lot for that i would have never figured that out i shall try your suggestions and update the PR. out of interest how did you know to add --without-icu ? was there something in the log output above ?

kived commented 9 years ago

From ./configure.sh output:

Unicode callbacks (you want at least one):
Glib: false
ICU: true
UCDN: true

Obviously we wouldn't want Glib there. I don't know what UCDN is, but I do know that ICU is a C library, and that library isn't being built by a recipe, so it was just a guess that worked out. :)