Results 1 to 3 of 3
I'm trying to compile a kernel, and I'm getting an error message I can't make sense of. My kernel source is in /usr/src/linux, and I ran "make gconfig", selected what ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 11-02-2008 #1
[SOLVED] Error about a file not existing in exported headers?
I'm trying to compile a kernel, and I'm getting an error message I can't make sense of.
My kernel source is in /usr/src/linux, and I ran "make gconfig", selected what I wanted, saved it, and then closed the window.
Next I ran "make", which ran for a quite a while, scrolling loads of stuff past the screen.
It then spit out an error. So, I tried to run "make" again. I have attached a text file with the last few lines of what it said (most of what I had on my terminal) - including the second "make" command.
Here's the thing I don't get: The file does exist. But apparently it can't find it. I "cd" to "/usr/src/linux/include/asm", and then "ls". One of the results is "system.h".
- 11-02-2008 #2
Gee, the "make" program is about as smart as me. (Not very.)
I misread the error I was getting; the file it referred to did not exist.
However, I copied it from another location, (actually the whole directory containing it,) and ended up with another file-not-found -type error. So, I copied it again. And again. And once more, and... Where did it go? Oh, look! Here's the problem:
root@multiboot:/usr/src/linux# cp -rf /usr/src/linux/usr/include/asm-x86/* /usr/src/linux/usr/include/asm/ root@multiboot:/usr/src/linux# make CHK include/linux/version.h CHK include/linux/utsrelease.h CALL scripts/checksyscalls.sh CHK include/linux/compile.h CHK include/linux/version.h make: `scripts/unifdef' is up to date. REMOVE include/asm/acpi_32.h REMOVE include/asm/acpi_64.h REMOVE include/asm/acpi.h REMOVE include/asm/agp.h REMOVE include/asm/alternative_32.h REMOVE include/asm/alternative_64.h REMOVE include/asm/alternative-asm.h REMOVE include/asm/alternative.h REMOVE include/asm/apic_32.h REMOVE include/asm/apic_64.h REMOVE include/asm/apicdef_32.h REMOVE include/asm/apicdef_64.h REMOVE include/asm/apicdef.h REMOVE include/asm/apic.h REMOVE include/asm/arch_hooks.h REMOVE include/asm/asm-offsets.h REMOVE include/asm/atomic_32.h REMOVE include/asm/atomic_64.h REMOVE include/asm/atomic.h <-- Right here! REMOVE include/asm/bitops_32.h REMOVE include/asm/bitops_64.h REMOVE include/asm/bitops.h REMOVE include/asm/bug.h REMOVE include/asm/bugs.h REMOVE include/asm/cacheflush.h REMOVE include/asm/cache.h REMOVE include/asm/calgary.h REMOVE include/asm/calling.h REMOVE include/asm/checksum_32.h REMOVE include/asm/checksum_64.h REMOVE include/asm/checksum.h REMOVE include/asm/cmpxchg_32.h REMOVE include/asm/cmpxchg_64.h REMOVE include/asm/cmpxchg.h REMOVE include/asm/compat.h REMOVE include/asm/cpufeature_32.h REMOVE include/asm/cpufeature_64.h REMOVE include/asm/cpufeature.h REMOVE include/asm/cpu.h REMOVE include/asm/cputime.h REMOVE include/asm/current_32.h REMOVE include/asm/current_64.h REMOVE include/asm/current.h REMOVE include/asm/delay.h REMOVE include/asm/desc_32.h REMOVE include/asm/desc_64.h REMOVE include/asm/desc_defs.h REMOVE include/asm/desc.h REMOVE include/asm/device.h REMOVE include/asm/div64.h REMOVE include/asm/dma_32.h REMOVE include/asm/dma_64.h REMOVE include/asm/dma.h REMOVE include/asm/dma-mapping_32.h REMOVE include/asm/dma-mapping_64.h REMOVE include/asm/dma-mapping.h REMOVE include/asm/dmi.h REMOVE include/asm/dwarf2_32.h REMOVE include/asm/dwarf2_64.h REMOVE include/asm/dwarf2.h REMOVE include/asm/e820_32.h REMOVE include/asm/e820_64.h REMOVE include/asm/edac.h REMOVE include/asm/emergency-restart.h REMOVE include/asm/fb.h REMOVE include/asm/fixmap_32.h REMOVE include/asm/fixmap_64.h REMOVE include/asm/fixmap.h REMOVE include/asm/floppy.h REMOVE include/asm/fpu32.h REMOVE include/asm/frame.h REMOVE include/asm/futex_32.h REMOVE include/asm/futex_64.h REMOVE include/asm/futex.h REMOVE include/asm/gart.h REMOVE include/asm/genapic_32.h REMOVE include/asm/genapic_64.h REMOVE include/asm/genapic.h REMOVE include/asm/geode.h REMOVE include/asm/hardirq_32.h REMOVE include/asm/hardirq_64.h REMOVE include/asm/hardirq.h REMOVE include/asm/highmem.h REMOVE include/asm/hpet.h REMOVE include/asm/hw_irq_32.h REMOVE include/asm/hw_irq_64.h REMOVE include/asm/hw_irq.h REMOVE include/asm/hypertransport.h REMOVE include/asm/i387_32.h REMOVE include/asm/i387_64.h REMOVE include/asm/i387.h REMOVE include/asm/i8253.h REMOVE include/asm/i8259.h REMOVE include/asm/ia32.h REMOVE include/asm/ia32_unistd.h REMOVE include/asm/ide.h REMOVE include/asm/idle.h REMOVE include/asm/intel_arch_perfmon.h REMOVE include/asm/io_32.h REMOVE include/asm/io_64.h REMOVE include/asm/io_apic_32.h REMOVE include/asm/io_apic_64.h REMOVE include/asm/io_apic.h REMOVE include/asm/io.h REMOVE include/asm/iommu.h REMOVE include/asm/ipi.h REMOVE include/asm/irq_32.h REMOVE include/asm/irq_64.h REMOVE include/asm/irqflags_32.h REMOVE include/asm/irqflags_64.h REMOVE include/asm/irqflags.h REMOVE include/asm/irq.h REMOVE include/asm/irq_regs_32.h REMOVE include/asm/irq_regs_64.h REMOVE include/asm/irq_regs.h REMOVE include/asm/k8.h REMOVE include/asm/kdebug.h REMOVE include/asm/kexec_32.h REMOVE include/asm/kexec_64.h REMOVE include/asm/kexec.h REMOVE include/asm/kmap_types.h REMOVE include/asm/kprobes_32.h REMOVE include/asm/kprobes_64.h REMOVE include/asm/kprobes.h REMOVE include/asm/kvm_host.h REMOVE include/asm/kvm_para.h REMOVE include/asm/kvm_x86_emulate.h REMOVE include/asm/lguest.h REMOVE include/asm/lguest_hcall.h REMOVE include/asm/linkage_32.h REMOVE include/asm/linkage_64.h REMOVE include/asm/linkage.h REMOVE include/asm/local_32.h REMOVE include/asm/local_64.h REMOVE include/asm/local.h REMOVE include/asm/mach_apic.h REMOVE include/asm/math_emu.h REMOVE include/asm/mc146818rtc_32.h REMOVE include/asm/mc146818rtc_64.h REMOVE include/asm/mc146818rtc.h REMOVE include/asm/mca_dma.h REMOVE include/asm/mca.h REMOVE include/asm/mmsegment.h REMOVE include/asm/mmu_context_32.h REMOVE include/asm/mmu_context_64.h REMOVE include/asm/mmu_context.h REMOVE include/asm/mmu.h REMOVE include/asm/mmx.h REMOVE include/asm/mmzone_32.h REMOVE include/asm/mmzone_64.h REMOVE include/asm/mmzone.h REMOVE include/asm/module_32.h REMOVE include/asm/module_64.h REMOVE include/asm/module.h REMOVE include/asm/mpspec_32.h REMOVE include/asm/mpspec_64.h REMOVE include/asm/mpspec_def.h REMOVE include/asm/mpspec.h REMOVE include/asm/msidef.h REMOVE include/asm/mutex_32.h REMOVE include/asm/mutex_64.h REMOVE include/asm/mutex.h REMOVE include/asm/namei.h REMOVE include/asm/nmi_32.h REMOVE include/asm/nmi_64.h REMOVE include/asm/nmi.h REMOVE include/asm/nops_32.h REMOVE include/asm/nops_64.h REMOVE include/asm/nops.h REMOVE include/asm/numa_32.h REMOVE include/asm/numa_64.h REMOVE include/asm/numa.h REMOVE include/asm/numaq.h REMOVE include/asm/paravirt.h REMOVE include/asm/parport.h REMOVE include/asm/pci_32.h REMOVE include/asm/pci_64.h REMOVE include/asm/pci-direct.h REMOVE include/asm/pci.h REMOVE include/asm/pda.h REMOVE include/asm/percpu_32.h REMOVE include/asm/percpu_64.h REMOVE include/asm/percpu.h REMOVE include/asm/pgalloc_32.h REMOVE include/asm/pgalloc_64.h REMOVE include/asm/pgalloc.h REMOVE include/asm/pgtable-2level-defs.h REMOVE include/asm/pgtable-2level.h REMOVE include/asm/pgtable_32.h REMOVE include/asm/pgtable-3level-defs.h REMOVE include/asm/pgtable-3level.h REMOVE include/asm/pgtable_64.h REMOVE include/asm/pgtable.h REMOVE include/asm/processor_32.h REMOVE include/asm/processor_64.h REMOVE include/asm/processor-cyrix.h REMOVE include/asm/processor-flags.h REMOVE include/asm/processor.h REMOVE include/asm/proto.h REMOVE include/asm/reboot_fixups.h REMOVE include/asm/reboot.h REMOVE include/asm/required-features.h REMOVE include/asm/resume-trace_32.h REMOVE include/asm/resume-trace_64.h REMOVE include/asm/resume-trace.h REMOVE include/asm/rio.h REMOVE include/asm/rtc.h REMOVE include/asm/rwlock.h REMOVE include/asm/rwsem.h REMOVE include/asm/scatterlist_32.h REMOVE include/asm/scatterlist_64.h REMOVE include/asm/scatterlist.h REMOVE include/asm/seccomp_32.h REMOVE include/asm/seccomp_64.h REMOVE include/asm/seccomp.h REMOVE include/asm/sections.h REMOVE include/asm/segment_32.h REMOVE include/asm/segment_64.h REMOVE include/asm/segment.h REMOVE include/asm/semaphore_32.h REMOVE include/asm/semaphore_64.h REMOVE include/asm/semaphore.h REMOVE include/asm/serial.h REMOVE include/asm/shmparam.h REMOVE include/asm/smp_32.h REMOVE include/asm/smp_64.h REMOVE include/asm/smp.h REMOVE include/asm/sparsemem_32.h REMOVE include/asm/sparsemem_64.h REMOVE include/asm/sparsemem.h REMOVE include/asm/spinlock_32.h REMOVE include/asm/spinlock_64.h REMOVE include/asm/spinlock.h REMOVE include/asm/spinlock_types.h REMOVE include/asm/srat.h REMOVE include/asm/stacktrace.h REMOVE include/asm/string_32.h REMOVE include/asm/string_64.h REMOVE include/asm/string.h REMOVE include/asm/suspend_32.h REMOVE include/asm/suspend_64.h REMOVE include/asm/suspend.h REMOVE include/asm/swiotlb.h REMOVE include/asm/sync_bitops.h REMOVE include/asm/system_32.h REMOVE include/asm/system_64.h REMOVE include/asm/system.h REMOVE include/asm/tce.h REMOVE include/asm/therm_throt.h REMOVE include/asm/thread_info_32.h REMOVE include/asm/thread_info_64.h REMOVE include/asm/thread_info.h REMOVE include/asm/time.h REMOVE include/asm/timer.h REMOVE include/asm/timex.h REMOVE include/asm/tlbflush_32.h REMOVE include/asm/tlbflush_64.h REMOVE include/asm/tlbflush.h REMOVE include/asm/tlb.h REMOVE include/asm/topology_32.h REMOVE include/asm/topology_64.h REMOVE include/asm/topology.h REMOVE include/asm/tsc.h REMOVE include/asm/uaccess_32.h REMOVE include/asm/uaccess_64.h REMOVE include/asm/uaccess.h REMOVE include/asm/unaligned.h REMOVE include/asm/unwind.h REMOVE include/asm/user32.h REMOVE include/asm/vga.h REMOVE include/asm/vgtod.h REMOVE include/asm/vic.h REMOVE include/asm/vmi.h REMOVE include/asm/vmi_time.h REMOVE include/asm/voyager.h REMOVE include/asm/xor_32.h REMOVE include/asm/xor_64.h REMOVE include/asm/xor.h CHECK include/asm-generic/siginfo.h CHECK include/asm-generic/resource.h CHECK include/asm-generic/statfs.h CHECK include/asm-generic/signal.h CHECK include/asm-generic/poll.h CHECK include/asm-generic/mman.h CHECK include/asm-generic/ioctl.h CHECK include/asm-generic/fcntl.h CHECK include/asm-generic/errno.h CHECK include/asm-generic/errno-base.h CHECK include/asm/msgbuf.h CHECK include/asm/mman.h CHECK include/asm/mce.h /usr/src/linux/usr/include/asm/mce.h requires asm/atomic.h, which does not exist in exported headers make: *** [/usr/src/linux/usr/include/asm/.check.mce.h] Error 1 make: *** [asm-x86] Error 2 make: *** [headers_check] Error 2 make: *** [vmlinux] Error 2 root@multiboot:/usr/src/linux#
Thanks so much,
- 11-02-2008 #3
Okay, it's official. I'm quite a bit less intelligent than the "make" program.
It tried to warn me; I didn't notice.
I ran "make menuconfig" this time, and when I was configuring all of the options I wanted, I noticed one that said something like "[ ] Optimize for space (Caution! May lead to broken compilers!)".
I marked it to be compiled with this option, saved the ".config" file, and renamed it to ".config-savespace". Then, I change the option in question and saved the ".config" file, which I renamed to ".config-nosavespace". I extracted the kernel source package to two different folders. Then, I copied one of the renamed configuration files to one extracted directory, and the other to the other. I renamed both back to ".config", and ran a "make" command for each of the two extracted directories.
The one that was optimized failed, but the one that wasn't optimized worked just fine.
Conclusion: The "Optimize for space"-type option messed up the compiling process.
Hope someone can benefit from this,