Gentoo Archives: gentoo-user

From: victor romanchuk <rom@××××××××××.net>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Failure to compile 2.6.39-gentoo-r3
Date: Wed, 20 Jul 2011 20:15:46
Message-Id: 4E273720.8080603@persimplex.net
In Reply to: [gentoo-user] Failure to compile 2.6.39-gentoo-r3 by Michael
1 > LD .tmp_vmlinux1
2 > arch/x86/built-in.o: In function `microcode_init':
3 > microcode_core.c:(.init.text+0xaeb5): undefined reference to
4 > `init_intel_microcode'
5 > make: *** [.tmp_vmlinux1] Error 1
6 >
7
8 this should not happen: if you selected any module from the kernel tree to be
9 built into the kernel (you did it for cpu firmware loader as it comes from
10 previous message), the compiled code for every module pretended to be built into
11 the kernel image is additively placed into built-in.o - actually the kernel tree
12 contains built-in.o files for every kernel component, arch, mm, drivers, net
13 etc. at the final build stage, all the object files are linked together
14 producing vmlinux elf binary. i just tried to build test kernel with built-in
15 firmware loader for x86 and x86_64 arches: both completed successfully
16
17 so i guess you've got error due to some inconsistencies in the kernel directory.
18 try it again from the scratch:
19
20 * save somewhere out of kernel tree your current /usr/src/linux/.config
21 * wipe out compeled and generated code from the kernel tree: cd
22 /usr/src/linux; make mrproper
23 * restore .config
24 * make silentoldconfig
25 * make
26
27 words below are not directly related to the case, but proper behavior is to
28 build cpu firmware loader as module (i presume the kernel is configured to load
29 and unload modules:
30
31 CONFIG_MICROCODE=m
32 CONFIG_MICROCODE_INTEL=y
33 CONFIG_MICROCODE_OLD_INTERFACE=y
34 CONFIG_FW_LOADER=y
35
36 * as you probably know microcode loader runs in userspace once at boot time
37 (you have to emerge sys-apps/microcode-ctl and rc-update microcode_ctl boot)
38 * microcode service script /etc/init.d/microcode_ctl at start loads kernel
39 module 'microcode'
40 * then the script starts microcode loader (data is in sys-apps/microcode-data)
41 * at the end the script unloads microcode module thus freeing kernel resources
42 (loaded data remains into cpu cache until reset)
43
44 hth,
45 victor