Skip to contentSkip to conversation

Problems compiling kernel

DISCUSSION Ramón Finger Lilienthal 2 participants 4 messages Oct 21, 2008 – Oct 23, 2008

lore
Share & tools
lore
#0 lore raw

Dear fellows,

I am facing some compiling errors in my kernel.

My kernel version is:

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 27
EXTRAVERSION =
NAME = Rotary Wombat

And I updated the source using "git pull" today, before trying to compile the kernel.

I got these errors:

MODPOST vmlinux.o

 GEN     .version
 CHK     include/linux/compile.h
 UPD     include/linux/compile.h
 CC      init/version.o
 LD      init/built-in.o
 LD      .tmp_vmlinux1

arch/arm/plat-omap/built-in.o: In function `omap_verify_speed':
/home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/cpu-omap.c:46: undefined reference to cpufreq_frequency_table_verify' arch/arm/plat-omap/built-in.o: In function omap_cpu_init':
/home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/cpu-omap.c:119: undefined reference to cpufreq_frequency_table_cpuinfo' /home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/cpu-omap.c:121: undefined reference to cpufreq_frequency_table_get_attr' arch/arm/plat-omap/built-in.o:(.data+0x91c): undefined reference to `cpufreq_freq_attr_scaling_available_freqs'
make: *** [.tmp_vmlinux1] Error 1

I looked in "plat-omap.c" and it calls the library cpufreq.h.
cpufreq.h has the prototipes of that undefined references and cpufreq.c has the impementations of it.

So, I don't understand why it is happening. By the way, I am a begginer in linux development.

Any help will be welcome.

Signature · 5 lines
Regards,
Eng. Ramon F. Lilienthal
Project Engineer
Instramed Ltda. - www.instramed.com.br
+55 (51) 33344199 ext. 213
#1 lore raw

Ramon,

Can you confirm if you have CONFIG_CPU_FREQ_TABLE=y in the .config?

The 'undefined' functions in your compile log are defined in drivers/cpufreq/freq_table.c If you look at Makefile in the same dir, this file is included in compile based on the flag mentioned above.

Which platform are you building for?
Are you sure you haven't disabled CPU_FREQ manually?
If you haven't made any modifications the problem could be in the defconfig?

Though, I believe that cpu-omap.c may also need to be updated to take care of CONFIG_CPU_FREQ OR specifically CONFIG_CPU_FREQ_TABLE.

Best regards,
Sanjeev

Quoted 64 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Ramón Finger Lilienthal
Sent: Tuesday, October 21, 2008 7:13 PM
To: linux_omap
Subject: Problems compiling kernel

Dear fellows,

I am facing some compiling errors in my kernel.

My kernel version is:

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 27
EXTRAVERSION =
NAME = Rotary Wombat

And I updated the source using "git pull" today, before trying to compile the kernel.

I got these errors:

MODPOST vmlinux.o

  GEN     .version
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1

arch/arm/plat-omap/built-in.o: In function `omap_verify_speed':
/home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c pu-omap.c:46:
undefined reference to cpufreq_frequency_table_verify' arch/arm/plat-omap/built-in.o: In function omap_cpu_init':
/home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c pu-omap.c:119:
undefined reference to `cpufreq_frequency_table_cpuinfo' /home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c pu-omap.c:121:
undefined reference to cpufreq_frequency_table_get_attr' arch/arm/plat-omap/built-in.o:(.data+0x91c): undefined reference to cpufreq_freq_attr_scaling_available_freqs'
make: *** [.tmp_vmlinux1] Error 1

I looked in "plat-omap.c" and it calls the library cpufreq.h. cpufreq.h has the prototipes of that undefined references and cpufreq.c has the impementations of it.

So, I don't understand why it is happening. By the way, I am a begginer in linux development.

Any help will be welcome.

--
Regards,
Eng. Ramon F. Lilienthal
Project Engineer
Instramed Ltda. - www.instramed.com.br
+55 (51) 33344199 ext. 213

Quoted 7 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

--

To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw

Dear Sanjeev,

Thanks for your help.

Now, I am building for omap5912osk, and we have a new board omap5912 based. I hope in some months changing my efforts to OMAP35.

Part of my .config file is listed below. The flag CONFIG_CPU_FREQ_TABLE was set to "m", I changed to "y". I tried to compile again, but the error still happening. I took a look at .config after compiling and CONFIG_CPU_FREQ_TABLE got back to "m" (automatically).

==== .config ===
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=m
# CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

#
=============

After, i changed the flags CONFIG_CPU_FREQ_TABLE=y and CONFIG_CPU_FREQ_STAT=y. Then that error didn't occurred again, but another error happened:

====
CHK include/linux/compile.h
CC [M] drivers/net/b44.o
Kernel: arch/arm/boot/Image is ready
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
Building modules, stage 2.
MODPOST 1059 modules
FATAL: drivers/net/b44: sizeof(struct ssb_device_id)=6 is not a modulo of the size of section __mod_ssb_device_table=16. Fix definition of struct ssb_device_id in mod_devicetable.h
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
====

Again, thanks for your help

Regards,
Eng. Ramon F. Lilienthal
Project Engineer
Instramed Ltda. - www.instramed.com.br
+55 (51) 33344199 ext. 213

Quoted 77 lines · Sanjeev

Ramon,

Can you confirm if you have CONFIG_CPU_FREQ_TABLE=y in the .config?

The 'undefined' functions in your compile log are defined in drivers/cpufreq/freq_table.c If you look at Makefile in the same dir, this file is included in compile based on the flag mentioned above.

Which platform are you building for?
Are you sure you haven't disabled CPU_FREQ manually?
If you haven't made any modifications the problem could be in the defconfig?

Though, I believe that cpu-omap.c may also need to be updated to take care of CONFIG_CPU_FREQ OR specifically CONFIG_CPU_FREQ_TABLE.

Best regards,
Sanjeev

Quoted 60 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Ramón Finger Lilienthal
Sent: Tuesday, October 21, 2008 7:13 PM
To: linux_omap
Subject: Problems compiling kernel

Dear fellows,

I am facing some compiling errors in my kernel.

My kernel version is:

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 27
EXTRAVERSION =
NAME = Rotary Wombat

And I updated the source using "git pull" today, before trying to compile the kernel.

I got these errors:

MODPOST vmlinux.o

  GEN     .version
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1

arch/arm/plat-omap/built-in.o: In function `omap_verify_speed':
/home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c
pu-omap.c:46: undefined reference to cpufreq_frequency_table_verify' arch/arm/plat-omap/built-in.o: In function omap_cpu_init':
/home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c
pu-omap.c:119: undefined reference to `cpufreq_frequency_table_cpuinfo' /home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c
pu-omap.c:121: undefined reference to cpufreq_frequency_table_get_attr' arch/arm/plat-omap/built-in.o:(.data+0x91c): undefined reference to cpufreq_freq_attr_scaling_available_freqs'
make: *** [.tmp_vmlinux1] Error 1

I looked in "plat-omap.c" and it calls the library cpufreq.h.
cpufreq.h has the prototipes of that undefined references and cpufreq.c has the impementations of it.

So, I don't understand why it is happening. By the way, I am a begginer in linux development.

Any help will be welcome.

--
Regards,
Eng. Ramon F. Lilienthal
Project Engineer
Instramed Ltda. - www.instramed.com.br
+55 (51) 33344199 ext. 213

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Quoted 8 lines
Quoted 2 lines

--

To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 45 lines

-----Original Message-----
From: Ramón Finger Lilienthal [mailto:[email protected]]
Sent: Wednesday, October 22, 2008 6:35 PM
To: Premi, Sanjeev; linux_omap
Subject: Re: Problems compiling kernel

Dear Sanjeev,

Thanks for your help.

Now, I am building for omap5912osk, and we have a new board omap5912 based. I hope in some months changing my efforts to OMAP35.

Part of my .config file is listed below. The flag CONFIG_CPU_FREQ_TABLE was set to "m", I changed to "y". I tried to compile again, but the error still happening. I took a look at .config after compiling and CONFIG_CPU_FREQ_TABLE got back to "m" (automatically).

==== .config ===
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=m
# CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

#
=============

After, i changed the flags CONFIG_CPU_FREQ_TABLE=y and CONFIG_CPU_FREQ_STAT=y.
Then that error didn't occurred again, but another error happened:

Quoted 12 lines

====
CHK include/linux/compile.h
CC [M] drivers/net/b44.o
Kernel: arch/arm/boot/Image is ready
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
Building modules, stage 2.
MODPOST 1059 modules
FATAL: drivers/net/b44: sizeof(struct ssb_device_id)=6 is not a modulo of the size of section __mod_ssb_device_table=16. Fix definition of struct ssb_device_id in mod_devicetable.h

Did you change this driver?

Quoted 3 lines

make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
====

I did not see this problem on my working branch based off tag v2.6.26-omap2. (I built for omap_osk_5912_defconfig)

However, I do see many section mismatches:

WARNING: arch/arm/mach-omap1/built-in.o(.data+0x26c): Section mismatch in reference from the variable omap1_clk_functions to the function .init.text:omap1_clk_disable_unused() The variable omap1_clk_functions references
the function __init omap1_clk_disable_unused()
If the reference is valid then annotate the
variable with __init* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

LD vmlinux.o
MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0x2a68): Section mismatch in reference from the function cpu_init() to the function .init.text:dump_cpu_info() The function cpu_init() references
the function __init dump_cpu_info().
This is often because cpu_init lacks a __init
annotation or the annotation of dump_cpu_info is wrong.

WARNING: vmlinux.o(.text+0x14af74): Section mismatch in reference from the function smc_drv_probe() to the function .init.text:smc_probe() The function smc_drv_probe() references
the function __init smc_probe().
This is often because smc_drv_probe lacks a __init
annotation or the annotation of smc_probe is wrong.

WARNING: vmlinux.o(.data+0x14dc): Section mismatch in reference from the variable omap1_clk_functions to the function .init.text:omap1_clk_disable_unused() The variable omap1_clk_functions references
the function __init omap1_clk_disable_unused()
If the reference is valid then annotate the
variable with __init* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

Quoted 111 lines

Again, thanks for your help

Regards,
Eng. Ramon F. Lilienthal
Project Engineer
Instramed Ltda. - www.instramed.com.br
+55 (51) 33344199 ext. 213

Quoted 6 lines · Sanjeev

Ramon,

Can you confirm if you have CONFIG_CPU_FREQ_TABLE=y in the .config?

The 'undefined' functions in your compile log are defined in drivers/cpufreq/freq_table.c If you look at Makefile in the

same dir, this file is included in compile based on the flag mentioned above.

Quoted 4 lines

Which platform are you building for?
Are you sure you haven't disabled CPU_FREQ manually? If you haven't made any modifications the problem could be

in the defconfig?

Quoted 2 lines

Though, I believe that cpu-omap.c may also need to be

updated to take care of CONFIG_CPU_FREQ OR specifically CONFIG_CPU_FREQ_TABLE.

Quoted 8 lines

Best regards,
Sanjeev

Quoted 3 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of

Ramón Finger

Quoted 33 lines
Quoted 33 lines

Lilienthal
Sent: Tuesday, October 21, 2008 7:13 PM
To: linux_omap
Subject: Problems compiling kernel

Dear fellows,

I am facing some compiling errors in my kernel.

My kernel version is:

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 27
EXTRAVERSION =
NAME = Rotary Wombat

And I updated the source using "git pull" today, before trying to compile the kernel.

I got these errors:

MODPOST vmlinux.o

  GEN     .version
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1

arch/arm/plat-omap/built-in.o: In function `omap_verify_speed':
/home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c pu-omap.c:46:
undefined reference to `cpufreq_frequency_table_verify'

Quoted 8 lines
Quoted 8 lines

arch/arm/plat-omap/built-in.o: In function `omap_cpu_init':
/home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c pu-omap.c:119:
undefined reference to `cpufreq_frequency_table_cpuinfo' /home/ramon/work/linux-omap-2.6.new.teste/arch/arm/plat-omap/c pu-omap.c:121:
undefined reference to `cpufreq_frequency_table_get_attr' arch/arm/plat-omap/built-in.o:(.data+0x91c): undefined

reference to

Quoted 20 lines
Quoted 20 lines

`cpufreq_freq_attr_scaling_available_freqs'
make: *** [.tmp_vmlinux1] Error 1

I looked in "plat-omap.c" and it calls the library cpufreq.h. cpufreq.h has the prototipes of that undefined references and cpufreq.c has the impementations of it.

So, I don't understand why it is happening. By the way, I am a begginer in linux development.

Any help will be welcome.

--
Regards,
Eng. Ramon F. Lilienthal
Project Engineer
Instramed Ltda. - www.instramed.com.br
+55 (51) 33344199 ext. 213

Quoted 2 lines
Quoted 2 lines

--
To unsubscribe from this list: send the line "unsubscribe

linux-omap"

Quoted 1 line
Quoted 1 line

in the body of a message to [email protected] More

majordomo

Quoted 5 lines
Quoted 4 lines

info at http://vger.kernel.org/majordomo-info.html

--

To unsubscribe from this list: send the line "unsubscribe

linux-omap"

Quoted 8 lines
Quoted 1 line

in the body of a message to [email protected] More

majordomo

Quoted 4 lines

info at http://vger.kernel.org/majordomo-info.html

--

To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html