このカーネルは、ARM GCCツールチェーンでうまく構築されます。何らかの理由で、aarch64ツールチェーンがこのエラーをスローします。Androidカーネルのビルドエラー:core_ctl.c - 不完全な型へのポインタの逆参照
kernel/sched/core_ctl.c: In function 'cpufreq_gov_cb':
kernel/sched/core_ctl.c:1086:25: error: dereferencing pointer to incomplete type
core_ctl_set_busy(info->cpu, info->load);
^
kernel/sched/core_ctl.c:1086:36: error: dereferencing pointer to incomplete type
core_ctl_set_busy(info->cpu, info->load);
^
scripts/Makefile.build:257: recipe for target 'kernel/sched/core_ctl.o' failed
ここで、「CPUが」(Cファイルに負荷を見つけることができない)に定義されたファイルの先頭に構造体です:
#include <linux/init.h>
#include <linux/notifier.h>
#include <linux/cpu.h>
#include <linux/cpumask.h>
#include <linux/cpufreq.h>
#include <linux/timer.h>
#include <linux/kthread.h>
#include <linux/sched.h>
#include <linux/sched/rt.h>
#include <linux/mutex.h>
#include <trace/events/sched.h>
#define MAX_CPUS_PER_GROUP 4
struct cpu_data {
/* Per CPU data. */
bool inited;
bool online;
bool rejected;
bool is_busy;
bool not_preferred;
unsigned int busy;
unsigned int cpu;
struct list_head sib;
unsigned int first_cpu;
struct list_head pending_sib;
/* Per cluster data set only on first CPU */
unsigned int min_cpus;
unsigned int max_cpus;
unsigned int offline_delay_ms;
unsigned int busy_up_thres[MAX_CPUS_PER_GROUP];
unsigned int busy_down_thres[MAX_CPUS_PER_GROUP];
unsigned int online_cpus;
unsigned int avail_cpus;
unsigned int num_cpus;
unsigned int need_cpus;
unsigned int task_thres;
s64 need_ts;
struct list_head lru;
bool pending;
spinlock_t pending_lock;
bool is_big_cluster;
int nrrun;
bool nrrun_changed;
struct timer_list timer;
struct task_struct *hotplug_thread;
struct kobject kobj;
struct list_head pending_lru;
bool disabled;
};
コンパイラレポート不完全な型を作ることができる何が?私はあまりにもCのポインタと構造体に精通していない。それを理解することはできません。
をコンパイルするためのヘッダファイルのすべてを見ることができるだろう**の'info'変数のために使われる型で、' cpu'のものではありません。 – Tsyvarev