How to build LibVLC for Android - android

I am trying to compile the libVLC so that I can use the VLC library for RTSP viewing on Android TV.
Here are the logs from the current execution.
libmysofa-0.5.tar.gz: OK337175/396660)
touch .sum-mysofa
2 6090k 2 172k 0 0 11160 0 0:09:18 0:00:15 0:09:03 0
curl: (18) transfer closed with 6059638 bytes remaining to read
make: *** [../../contrib/tarballs/libarchive-3.3.2.tar.gz] Error 18
make: *** Deleting file `../../contrib/tarballs/libarchive-3.3.2.tar.gz'
make: *** Waiting for unfinished jobs....
Resolving deltas: 100% (396660/396660), done.
From http://git.videolan.org/git/ffmpeg
* branch HEAD -> FETCH_HEAD
contribs: make fetch failed

Related

Got errors while compiling Android kernel

I wanted to enable KVM on the kernel I use, reached to the kernel source and enabled KVM by adding some lines to defconfig file. But whenever I want to compile, I got these error messages. I could not fix that. Could someone help me please?
C arch/arm64/kvm/../../../virt/kvm/vfio.o
CC arch/arm64/kvm/../../../arch/arm/kvm/arm.o
CC arch/arm64/kvm/../../../arch/arm/kvm/mmu.o
AS arch/arm64/crypto/poly-hash-ce-core.o
CC arch/arm64/crypto/aes-ce-cipher.o
CC arch/arm64/mm/flush.o
In file included from ../arch/arm64/kvm/../../../arch/arm/kvm/arm.c:42:
../arch/arm64/include/asm/kvm_mmu.h:309:70: error: too few arguments to function call, expected 3, have 2
return (cpuid_feature_extract_field(reg, ID_AA64MMFR1_VMIDBITS_SHIFT) == 2) ? 16 : 8;
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
make[2]: *** [../scripts/Makefile.build:285: arch/arm64/kvm/../../../arch/arm/kvm/arm.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CC arch/arm64/crypto/aes-ce-ccm-glue.o
In file included from ../arch/arm64/kvm/../../../arch/arm/kvm/mmu.c:27:
../arch/arm64/include/asm/kvm_mmu.h:309:70: error: too few arguments to function call, expected 3, have 2
return (cpuid_feature_extract_field(reg, ID_AA64MMFR1_VMIDBITS_SHIFT) == 2) ? 16 : 8;
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
make[2]: *** [../scripts/Makefile.build:285: arch/arm64/kvm/../../../arch/arm/kvm/mmu.o] Error 1
AS arch/arm64/crypto/aes-ce-ccm-core.o
CC arch/arm64/crypto/aes-glue-ce.o
make[1]: *** [/home/gorkemoji/android/kernel/Makefile:1034: arch/arm64/kvm] Error 2
make[1]: *** Waiting for unfinished jobs....

Building libreoffice gives an error and I don't know how to fix it

Build output is:
... very long output of compiled files is omitted...
[MAK] CustomTarget/android/source/done
creating liboSettings.gradle
[build PY ] native-code.cxx
/bin/sh: 1: /home/bart/Projects/libreoffice/solenv/bin/native-code.py: not found
Makefile:15: recipe for target 'native-code.cxx' failed
make[2]: *** [native-code.cxx] Error 127
/home/bart/Projects/libreoffice/android/CustomTarget_lo_android.mk:17: recipe for target '/home/bart/Projects/libreoffice/workdir/CustomTarget/android/source/done' failed
make[1]: *** [/home/bart/Projects/libreoffice/workdir/CustomTarget/android/source/done] Error 2
Makefile:282: recipe for target 'build' failed
make: *** [build] Error 2
I am on Ubuntu 18.04.2 LTS.
My autogen.input is:
--with-distro=LibreOfficeAndroid
--with-android-sdk=/home/bart/Android/Sdk
--with-android-ndk=/home/bart/Android/android-ndk-r20
--with-jdk-home=/usr/lib/jvm/java-8-openjdk-amd64
I have used this page as a manual.
Also, I have noticed that native-code.cxx file is empty in libreoffice/android/source
Ok, figured it out. I didn't had python2 installed on my system (however had python3). Could configure check it?

Android 7.1.1 kernel compile errors (tool chain)

The build environment is ubuntu 16.04 with latest gcc 5.4.0 and GNU Make 3.82. My target is an am335x custom board which can run android 4.4. I am going to support it for android 7.1.1.
The project is fetched from google android manifest tag android-7.1.1_r46 and the kernel is from msm tag android-7.1.1_r0.63. The cross compiler I am using is from prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin.
That is the environment information. I haven't installed the NDK or SDK yet because I saw the api level for android 7.1.1 is 25 while the newest NDK only support up to 24, so I get a bit confused what to do.
If I run the command: m -j8 uboot linux
The uboot compiles fine, but there are a lot of errors when compiling the linux kernel.
/media/yangjiel/disk2/android/kernel/arch/arm/mach-omap2/prm_common.c: In function 'omap_prcm_register_chain_handler':
/media/yangjiel/disk2/android/kernel/arch/arm/mach-omap2/prm_common.c:293:2: warning: passing argument 2 of 'irq_set_chained_handler' from incompatible pointer type [enabled by default]
error, forbidden warning: prm_common.c:293
make[2]: *** [arch/arm/mach-omap2/prm_common.o] Error 1
make[1]: *** [arch/arm/mach-omap2] Error 2
make[1]: *** Waiting for unfinished jobs....
/media/yangjiel/disk2/android/kernel/kernel/sysctl_binary.c:141:13: error: 'KERN_BOOT_REASON' undeclared here (not in a function)
{ CTL_INT, KERN_BOOT_REASON, "boot_reason" },
^
/media/yangjiel/disk2/android/kernel/kernel/sysctl_binary.c:528:13: error: 'NET_IPV6_ACCEPT_RA_PREFIX_ROUTE' undeclared here (not in a function)
{ CTL_INT, NET_IPV6_ACCEPT_RA_PREFIX_ROUTE, "accept_ra_prefix_route" },
^
/media/yangjiel/disk2/android/kernel/kernel/sysctl_binary.c:528:2: error: initializer element is not constant
{ CTL_INT, NET_IPV6_ACCEPT_RA_PREFIX_ROUTE, "accept_ra_prefix_route" },
^
/media/yangjiel/disk2/android/kernel/kernel/sysctl_binary.c:528:2: error: (near initialization for 'bin_net_ipv6_conf_var_table[24].ctl_name')
make[2]: *** [kernel/sysctl_binary.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [kernel] Error 2
make: *** [sub-make] Error 2
make: Leaving directory `/media/yangjiel/disk2/android/kernel'
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1
make: Leaving directory `/media/yangjiel/disk2/android'
If I drop the lines in that file which causing this error, the error above is resolved but I would get another
/media/yangjiel/disk2/android/kernel/kernel/cgroup.c: In function 'subsys_cgroup_allow_attach':
/media/yangjiel/disk2/android/kernel/kernel/cgroup.c:2138:37: error: invalid operands to binary != (have 'kuid_t' and 'kuid_t')
if (current != task && cred->euid != tcred->uid &&
^
/media/yangjiel/disk2/android/kernel/kernel/cgroup.c:2139:18: error: invalid operands to binary != (have 'kuid_t' and 'kuid_t')
cred->euid != tcred->suid)
^
make[2]: *** [kernel/cgroup.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CC kernel/trace/power-traces.o
CC kernel/trace/rpm-traces.o
CC kernel/trace/trace_probe.o
LD kernel/trace/libftrace.o
LD kernel/trace/built-in.o
make[1]: *** [kernel] Error 2
make: *** [sub-make] Error 2
make: Leaving directory `/media/yangjiel/disk2/android/kernel'
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1
make: Leaving directory `/media/yangjiel/disk2/android'
There are more errors behind.
I have googled around and most of the people say this is a tool chain problem. But I don't find a lot of instruction about how to install the tool chain properly especially for 7.1.1. There seems to be no tool chain needed for the android 4.4 kernel. I fetch the custom android 4.4 kernel and it compiles fine.
The problem above is because I downloaded a wrong version of Android kernel. What I downloaded is https://android.googlesource.com/kernel/msm/+/android-7.1.1_r0.63, and this is kernel v3.10.
Obviously this is not for Android 7.1.1 (which should be using kernel v4.4). So when I am trying to compile "old" kernel with the "new" cross compiler from the prebuilt, it generated whole bunch errors that the "old" compiler won't. I end up using the kernel from https://android.googlesource.com/kernel/common/+/upstream-linux-4.4.y upstream-linux-4.4.y branch, it is compatible with Android 7.0 to 7.1.2.
I have no idea why google name it as android-7.1.1_r0.63, but that definitely not for Android 7.1.1 to use. Hope nobody has the same problem as I did.

Running AOSP on MAC: stdarg.h error

I have the source code for android-5.0.0_r7.0.1. After doing:
make -j4
I keep getting this:
error: stdarg.h: No such file or directory
In file included from system/core/include/cutils/log.h:1,
from system/core/include/utils/KeyedVector.h:24,
from frameworks/native/include/input/Input.h:26,
from frameworks/native/include/input/InputDevice.h:20,
from frameworks/native/libs/input/InputDevice.cpp:23:
system/core/include/log/log.h:35:20: error: stdarg.h: No such file or directory
make: *** [out/host/darwin-x86/obj32/EXECUTABLES/validatekeymaps_intermediates/Main.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [out/host/darwin-x86/obj32/STATIC_LIBRARIES/libinput_intermediates/Keyboard.o] Error 1
make: *** [out/host/darwin-x86/obj32/STATIC_LIBRARIES/libinput_intermediates/InputDevice.o] Error 1
make: *** [out/host/darwin-x86/obj32/STATIC_LIBRARIES/libinput_intermediates/Input.o] Error 1
#### make failed to build some targets (01:32 (mm:ss)) ####
I have looked at the google groups and other stack overflow questions, but I cannot seem to figure out what is going wrong.
#Meteorite
Well, ultimately after googling I discovered the AOSP for some reason did not support the latest version of Xcode tools and OS X. I dualbooted windows 7 with ubuntu, and did the whole process. And when I did the make command on ubuntu I typed: make -k -i -B. That is, I gave it the keep going, ignore make errors and build unconditionally flags.

Argument list too long - Android 2.2.3_r1 build failed

I have downloaded the android 2.2.3_r1 and set up build environement.
I have made a special change to build the output in the USB drive by adding following line to buildspec.mk file and placing it in the source directory (the file has only that line as I want only to change the out directory).
OUT_DIR:=/media/SHANTHA/ANDROID
The build process is done issuing following commands in order:
source build/envsetup.sh
lunch full-eng
make -j4
When I run make -j4 it ends after fairly long time with following lines at the end of trace.
...
...
target Prelink: libthread_db (/media/SHANTHA/ANDROID/target/product/generic/symbols/system/lib/libthread_db.so)
target StaticLib: libwebcore (/media/SHANTHA/ANDROID/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a)
make: execvp: /bin/bash: Argument list too long
make: *** [/media/SHANTHA/ANDROID/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a] Error 127
make: *** Waiting for unfinished jobs....
shantha#shantha:~/ANDROID_S$
The trace indicates the error as make: execvp: /bin/bash: Argument list too long
It is a great help if someone can help me to solve this.
I had this problem too while building WebKit.
My solution was to download the kernel-sources, change line 14 in include/linux/binfmts.h from
#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
to
#define MAX_ARG_STRLEN (PAGE_SIZE * 64)
compile and install the kernel and reboot.
However, the problem of this solution is that every running process needs more memory. But you could boot this kernel for building android only.

Categories

Resources