首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android内核编译中的错误

android内核编译中的错误
EN

Stack Overflow用户
提问于 2012-03-09 13:58:46
回答 1查看 2.4K关注 0票数 3

根据这些使用说明,我正试图为三星Galaxy编译安卓内核(氰原):

我用的是CM-7。

我执行了以下步骤:

  1. 下载内核源代码。
  2. 配置构建: adb拉/proc/config.gz /home/user_name/android/kernel/cm-kernel/config.gz cat config.gz _ gunzip > .config make ARCH=arm CROSS_COMPILE=$CCOMPILER menuconfig
  3. 建造: 制造ARCH=arm CROSS_COMPILE=$CCOMPILER -j4

在这个内核开始编译并且一切都正常运行之后,它报告了一个似乎是源代码中的错误的错误,下面是终端中的输出。

代码语言:javascript
复制
 kernel/cpuset.c:1385: error: ‘task’ undeclared (first use in this
 function)
 kernel/cpuset.c:1385: error: (Each undeclared identifier is reported
 only once
 kernel/cpuset.c:1385: error: for each function it appears in.)
 kernel/cpuset.c: In function ‘cpuset_print_task_mems_allowed’: 
  CC [M]  fs/ceph/snap.o
  CC [M]  crypto/seed.o
  CC [M]  fs/btrfs/disk-io.o
  CC [M]  fs/cifs/connect.o
  CC [M]  fs/ceph/xattr.o
  CC [M]  crypto/salsa20_generic.o
  CC [M]  crypto/deflate.o
  CC [M]  fs/ceph/mds_client.o
  CC [M]  crypto/zlib.o
  CC [M]  fs/btrfs/transaction.o
  CC [M]  crypto/michael_mic.o
  CC [M]  crypto/authenc.o
  CC [M]  fs/ceph/mdsmap.o
  CC [M]  fs/cifs/dir.o
  CC [M]  fs/ceph/strings.o
  CC [M]  fs/btrfs/inode.o
  CC [M]  fs/ceph/ceph_frag.o
  CC [M]  crypto/lzo.o
  CC [M]  fs/ceph/debugfs.o
  CC [M]  crypto/ansi_cprng.o
  CC [M]  fs/cifs/file.o
  LD [M]  fs/ceph/ceph.o
  LD      fs/coda/built-in.o
  CC [M]  fs/coda/psdev.o
  CC [M]  crypto/tcrypt.o
fs/cifs/file.c: In function 'cifs_write':
fs/cifs/file.c:1036: warning: format '%zd' expects type 'signed size_t', but argument     3     has type 'size_t'
In file included from fs/coda/psdev.c:45:
include/linux/coda.h:223: error: expected specifier-qualifier-list before 'u_quad_t'
make[2]: *** [fs/coda/psdev.o] Error 1
make[1]: *** [fs/coda] Error 2
make[1]: *** Waiting for unfinished jobs....
CC [M]  crypto/ghash-generic.o
CC [M]  crypto/xor.o
include/asm-generic/xor.h:696: warning: 'xor_block_8regs_p' defined but not used
include/asm-generic/xor.h:704: warning: 'xor_block_32regs_p' defined but not used
CC [M]  fs/cifs/inode.o
LD      crypto/async_tx/built-in.o
CC [M]  crypto/async_tx/async_tx.o
CC [M]  crypto/async_tx/async_memcpy.o
CC [M]  fs/btrfs/file.o
CC [M]  fs/btrfs/tree-defrag.o
crypto/async_tx/async_memcpy.c: In function 'async_memcpy':
crypto/async_tx/async_memcpy.c:72: warning: format '%zu' expects type 'size_t', but         argument 3 has type 'unsigned int'
crypto/async_tx/async_memcpy.c:76: warning: format '%zu' expects type 'size_t', but     argument 3 has type 'unsigned int'
CC [M]  crypto/async_tx/async_xor.o
CC [M]  fs/btrfs/extent_map.o
crypto/async_tx/async_xor.c: In function 'async_xor':
crypto/async_tx/async_xor.c:202: warning: format '%zu' expects type 'size_t', but         argument 3 has type 'unsigned int'
crypto/async_tx/async_xor.c:208: warning: format '%zu' expects type 'size_t', but     argument 3 has type 'unsigned int'
crypto/async_tx/async_xor.c: In function 'async_xor_val':
crypto/async_tx/async_xor.c:286: warning: format '%zu' expects type 'size_t', but argument 3 has type 'unsigned int'
crypto/async_tx/async_xor.c:314: warning: format '%zu' expects type 'size_t', but argument 3 has type 'unsigned int'
CC [M]  crypto/async_tx/async_pq.o
CC [M]  fs/btrfs/sysfs.o
crypto/async_tx/async_pq.c: In function 'async_gen_syndrome':
crypto/async_tx/async_pq.c:218: warning: format '%zu' expects type 'size_t', but  argument 4 has type 'unsigned int'
crypto/async_tx/async_pq.c:225: warning: format '%zu' expects type 'size_t', but  argument 4 has type 'unsigned int'
crypto/async_tx/async_pq.c: In function 'async_syndrome_val':
crypto/async_tx/async_pq.c:295: warning: format '%zu' expects type 'size_t', but  argument 4 has type 'unsigned int'
crypto/async_tx/async_pq.c:344: warning: format '%zu' expects type 'size_t', but argument 4 has type 'unsigned int'
CC [M]  fs/btrfs/struct-funcs.o
CC [M]  fs/cifs/link.o
CC [M]  fs/btrfs/xattr.o
CC [M]  crypto/async_tx/async_raid6_recov.o
crypto/async_tx/async_raid6_recov.c: In function 'async_raid6_2data_recov':
crypto/async_tx/async_raid6_recov.c:334: warning: format '%zu' expects type 'size_t', but argument 4 has type 'unsigned int'
crypto/async_tx/async_raid6_recov.c: In function 'async_raid6_datap_recov':
crypto/async_tx/async_raid6_recov.c:410: warning: format '%zu' expects type 'size_t', but argument 4 has type 'unsigned int'
CC [M]  fs/cifs/misc.o
CC [M]  fs/btrfs/ordered-data.o
CC [M]  crypto/async_tx/raid6test.o
LD      crypto/crypto.o
LD      crypto/built-in.o
CC [M]  fs/btrfs/extent_io.o
CC [M]  fs/btrfs/volumes.o
CC [M]  fs/cifs/netmisc.o
CC [M]  fs/cifs/smbdes.o
CC [M]  fs/cifs/smbencrypt.o
CC  [M]  fs/cifs/transport.o
CC [M]  fs/cifs/asn1.o
CC [M]  fs/btrfs/async-thread.o
CC [M]  fs/cifs/md4.o
CC [M]  fs/cifs/md5.o
CC [M]  fs/cifs/cifs_unicode.o
CC [M]  fs/btrfs/ioctl.o
CC [M]  fs/btrfs/locking.o
CC [M]  fs/cifs/nterr.o
CC [M]  fs/cifs/xattr.o
CC [M]  fs/cifs/cifsencrypt.o
CC [M]  fs/btrfs/orphan.o
CC [M]  fs/cifs/readdir.o
CC [M]  fs/btrfs/export.o
CC [M]  fs/cifs/ioctl.o
CC [M]  fs/btrfs/tree-log.o
CC [M]  fs/btrfs/acl.o
CC [M]  fs/btrfs/free-space-cache.o
CC [M]  fs/cifs/sess.o
CC [M]  fs/btrfs/zlib.o
CC [M]  fs/btrfs/compression.o
CC [M]  fs/cifs/export.o
CC [M]  fs/btrfs/delayed-ref.o
CC [M]  fs/btrfs/relocation.o
CC [M]  fs/cifs/cifs_spnego.o
CC [M]  fs/cifs/dns_resolve.o
CC [M]  fs/cifs/cifs_dfs_ref.o
LD [M]  fs/cifs/cifs.o
LD [M]  fs/btrfs/btrfs.o
make: *** [fs] Error 2

如果有人能告诉我如何解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-10 05:56:49

源代码、文件、第1385行的内核/cpuet.c中都有错误,使用的是'task‘,因为它应该是'tsk’,而且它后来被使用而没有被分配值。它应该以这样的方式被赋值:__task_cred(tsk)。

这是原始代码:

代码语言:javascript
复制
/* Called by cgroups to determine if a cpuset is usable; cgroup_mutex held */
static int cpuset_can_attach(struct cgroup_subsys *ss, struct cgroup *cont,
             struct task_struct *tsk, bool threadgroup)
{
int ret;
struct cpuset *cs = cgroup_cs(cont);

if ((current != task) && (!capable(CAP_SYS_ADMIN))) {
    const struct cred *cred = current_cred(), *tcred;

    if (cred->euid != tcred->uid && cred->euid != tcred->suid)
        return -EPERM;
}

..

这是修改后的代码:

代码语言:javascript
复制
/* Called by cgroups to determine if a cpuset is usable; cgroup_mutex held */
static int cpuset_can_attach(struct cgroup_subsys *ss, struct cgroup *cont,
             struct task_struct *tsk, bool threadgroup)
{
int ret;
struct cpuset *cs = cgroup_cs(cont);

if ((current != tsk) && (!capable(CAP_SYS_ADMIN))) {
    const struct cred *cred = current_cred(), *tcred;
    tcred = __task_cred(tsk); 

    if (cred->euid != tcred->uid && cred->euid != tcred->suid)
        return -EPERM;
}

这个链接解释了在编译android内核时可能发生的不同错误。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9635209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档