When we execute the command: make What rule will be executed?
We know that compiling and linking c/assembly files by GNU gcc tool produce object files with specific formats like elf, COFF,....How the final Coreboot image is not in those formats, means it is not in elf, COFF formats? It is an executable file.
On Wed, 4 Aug 2010 19:07:38 +0430, ali hagigat hagigatali@gmail.com wrote:
When we execute the command: make What rule will be executed?
We know that compiling and linking c/assembly files by GNU gcc tool
produce
object files with specific formats like elf, COFF,....How the final Coreboot image is not in those formats, means it is not in elf, COFF formats? It
is
an executable file.
Can you please explain why you are so interested in coreboot's build("make") process?
I want to know how coreboot.rom, means the final product is built. What rule makes it and where is it? How its format is CBFS while this format seems unknown for GNC tool chain like gcc?
On Wed, Aug 4, 2010 at 8:10 PM, Joseph Smith joe@settoplinux.org wrote:
On Wed, 4 Aug 2010 19:07:38 +0430, ali hagigat hagigatali@gmail.com wrote:
When we execute the command: make What rule will be executed?
We know that compiling and linking c/assembly files by GNU gcc tool
produce
object files with specific formats like elf, COFF,....How the final Coreboot image is not in those formats, means it is not in elf, COFF formats? It
is
an executable file.
Can you please explain why you are so interested in coreboot's build("make") process?
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
On Mon, Aug 9, 2010 at 8:17 AM, ali hagigat hagigatali@gmail.com wrote:
I want to know how coreboot.rom, means the final product is built. What rule makes it and where is it? How its format is CBFS while this format seems unknown for GNC tool chain like gcc?
The short answer is that you should check src/arch/i386/Makefile.*http://tracker.coreboot.org/trac/coreboot/browser#trunk/src/arch/i386to see how the various Coreboot-related targets are built. Many modules must be built separately, sometimes with different compilers (e.g. ASL) and with different rules, and then formed into a single image at the end. This can appear ugly at first (especially when you dive into the Makefiles), but in fact it's a relatively elegant solution for the nature of Coreboot.
You are correct that the final coreboot.rom file is not a normal executable. It is more akin to an archive -- CBFS is essentially a simple archive format.
Coreboot currently uses the Linux kernel build system. If you are truly interested in this subject, I recommend reading the Linux kernel build system documentation: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Do... . If you have lots of patience (or hair to pull), I suggest adapting the Kernel build system to configure and build a "hello world" program ;-)
There are several steps and if you are not already intimately familiar with GNU Make and the Linux kernel build system then this is not a good place to start. I do not mean to sound rude, but the Linux and Coreboot build systems are much more complicated than a make or gcc commands you may be familiar with from small projects.
i would like to introduce GNU Makefile documents to helps you to under stand that whole process of coreboot build process.
On Wed, Aug 4, 2010 at 10:37 PM, ali hagigat hagigatali@gmail.com wrote:
When we execute the command: make What rule will be executed?
We know that compiling and linking c/assembly files by GNU gcc tool produce object files with specific formats like elf, COFF,....How the final Coreboot image is not in those formats, means it is not in elf, COFF formats? It is an executable file.
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot