How long does it take to compile your OS?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
CmpXchg
Member
Member
Posts: 61
Joined: Mon Apr 28, 2008 12:14 pm
Location: Petrozavodsk, Russia during school months, Vänersborg Sweden in the summertime

How long does it take to compile your OS?

Post by CmpXchg »

Well, just wanted to ask that.

When I thought about it, if an OS consists of 50+ files, it would take a considerable time to recompile it completely, wouldn't it?

How long do you think it takes to recompile the entire Linux?
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Post by Solar »

"The entire Linux"?

Even if you refer to the kernel only, it's highly dependent on platform and options enabled.

And it's a factor of your compiling machine. A Core 2 Duo tends to be faster than a Pentium 3.

I use Gentoo Linux, with a kernel configured for my specific machine (i.e., not compiling any modules I don't need, etc.). That takes about roughly five minutes to recompile from scratch.

Of course, there's "make", which means you only recompile what has changed. With that, recompilation is done in a couple of seconds, usually.
Every good solution is obvious once you've found it.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Post by JamesM »

Again, it's platform dependent, but on my work machine (compiling our PowerPC port which has slightly less stuff in)...

Code: Select all

[11:12:51] aubergine:  ~/pedigree/build
$ time make
Scanning dependencies of target check_compiler
[  0%] Built target check_compiler
Scanning dependencies of target version.cc
[  1%] Built target version.cc
[  2%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/Log.cc.o
[  3%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/Version.cc.o
[  5%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/Archive.cc.o
In file included from /home/jamesmol/pedigree/src/system/kernel/Archive.cc:17:
/home/jamesmol/pedigree/src/system/kernel/Archive.h:27: warning: 'class Archive' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/Archive.h:27: warning:   but does not override 'Archive(const Archive&)'
/home/jamesmol/pedigree/src/system/kernel/Archive.h:27: warning:   or 'operator=(const Archive&)'
/home/jamesmol/pedigree/src/system/kernel/Archive.cc: In member function 'size_t Archive::getFileSize(size_t)':
/home/jamesmol/pedigree/src/system/kernel/Archive.cc:75: warning: comparison between signed and unsigned integer expressions
/home/jamesmol/pedigree/src/system/kernel/Archive.cc: In member function 'char* Archive::getFileName(size_t)':
/home/jamesmol/pedigree/src/system/kernel/Archive.cc:97: warning: comparison between signed and unsigned integer expressions
/home/jamesmol/pedigree/src/system/kernel/Archive.cc: In member function 'uintptr_t* Archive::getFile(size_t)':
/home/jamesmol/pedigree/src/system/kernel/Archive.cc:120: warning: comparison between signed and unsigned integer expressions
[  6%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/Spinlock.cc.o
[  7%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/lib/cppsupport.cc.o
[  9%] Building C object src/system/kernel/CMakeFiles/kernel.dir/core/lib/memory.c.o
[ 10%] Building C object src/system/kernel/CMakeFiles/kernel.dir/core/lib/string.c.o
[ 11%] Building C object src/system/kernel/CMakeFiles/kernel.dir/core/lib/vsprintf.c.o
[ 12%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/lib/demangle.cc.o
[ 14%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/process/Mutex.cc.o
[ 15%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/process/Scheduler.cc.o
[ 16%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/process/LockManager.cc.o
[ 18%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/process/Semaphore.cc.o
[ 19%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/process/Thread.cc.o
[ 20%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/process/initialiseMultitasking.cc.o
[ 22%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/process/RoundRobin.cc.o
[ 23%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/process/Process.cc.o
[ 24%] Building ASM-ATT object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc32/asm/InterruptManager.s.o
[ 25%] Building ASM-ATT object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc32/asm/Processor.s.o
[ 27%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc32/InterruptManager.cc.o
In file included from /home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/InterruptManager.cc:25:
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning: 'class OFDevice' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   but does not override 'OFDevice(const OFDevice&)'
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   or 'operator=(const OFDevice&)'
/home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/InterruptManager.cc: In static member function 'static void PPC32InterruptManager::initialiseProcessor()':
/home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/InterruptManager.cc:87: warning: unused variable 'ret'
[ 28%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc32/Processor.cc.o
[ 29%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc32/StackFrame.cc.o
[ 31%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc32/state.cc.o
[ 32%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc32/VirtualAddressSpace.cc.o
/home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/VirtualAddressSpace.cc: In member function 'virtual bool PPC32VirtualAddressSpace::map(physical_uintptr_t, void*, size_t)':
/home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/VirtualAddressSpace.cc:65: warning: control reaches end of non-void function
/home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/VirtualAddressSpace.cc: In member function 'virtual bool PPC32VirtualAddressSpace::isMapped(void*)':
/home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/VirtualAddressSpace.cc:59: warning: control reaches end of non-void function
/home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/VirtualAddressSpace.cc: At global scope:
/home/jamesmol/pedigree/src/system/kernel/core/processor/ppc32/VirtualAddressSpace.cc:25: warning: 'g_Kseg2Initialised' defined but not used
[ 33%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc_common/Disassembler.cc.o
[ 35%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc_common/Processor.cc.o
[ 36%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/ppc_common/PhysicalMemoryManager.cc.o
[ 37%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/PhysicalMemoryManager.cc.o
[ 38%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/IoPort.cc.o
[ 40%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/IoPortManager.cc.o
[ 41%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/Processor.cc.o
[ 42%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/StackFrameBase.cc.o
[ 44%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/processor/VirtualAddressSpace.cc.o
[ 45%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/main.cc.o
In file included from /home/jamesmol/pedigree/src/system/kernel/core/main.cc:43:
/home/jamesmol/pedigree/src/system/kernel/./Archive.h:27: warning: 'class Archive' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/./Archive.h:27: warning:   but does not override 'Archive(const Archive&)'
/home/jamesmol/pedigree/src/system/kernel/./Archive.h:27: warning:   or 'operator=(const Archive&)'
/home/jamesmol/pedigree/src/system/kernel/core/main.cc: In function 'void _main(BootstrapStruct_t*)':
/home/jamesmol/pedigree/src/system/kernel/core/main.cc:145: warning: unused variable 'stackBase'
[ 46%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/core/BootIO.cc.o
[ 48%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/Backtracer.cc.o
[ 49%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/BreakpointCommand.cc.o
[ 50%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/CpuInfoCommand.cc.o
[ 51%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/DisassembleCommand.cc.o
[ 53%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/DumpCommand.cc.o
[ 54%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/LogViewer.cc.o
[ 55%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/MemoryInspector.cc.o
/home/jamesmol/pedigree/src/system/kernel/debugger/commands/MemoryInspector.cc:282:2: warning: #warning is a GCC extension
/home/jamesmol/pedigree/src/system/kernel/debugger/commands/MemoryInspector.cc:282:2: warning: #warning Big endian people will have problems here.
[ 57%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/PanicCommand.cc.o
[ 58%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/StepCommand.cc.o
[ 59%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/TraceCommand.cc.o
[ 61%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/QuitCommand.cc.o
[ 62%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/IoCommand.cc.o
[ 63%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/commands/ThreadsCommand.cc.o
[ 64%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/Backtrace.cc.o
[ 66%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/Debugger.cc.o
[ 67%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/DebuggerIO.cc.o
[ 68%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/DwarfCfiAutomaton.cc.o
[ 70%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/DwarfUnwinder.cc.o
/home/jamesmol/pedigree/src/system/kernel/debugger/DwarfUnwinder.cc: In member function 'bool DwarfUnwinder::unwind(const ProcessorState&, ProcessorState&, uintptr_t&)':
/home/jamesmol/pedigree/src/system/kernel/debugger/DwarfUnwinder.cc:171: warning: unused variable 'nReturnAddressRegister'
[ 71%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/LocalIO.cc.o
[ 72%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/panic.cc.o
[ 74%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/Scrollable.cc.o
[ 75%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/debugger/SerialIO.cc.o
[ 76%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/linker/Elf32.cc.o
[ 77%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/linker/KernelElf.cc.o
[ 79%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/machine/mac/Mac.cc.o
In file included from /home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.h:22,
                 from /home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.cc:17:
/home/jamesmol/pedigree/src/system/kernel/machine/mac/../ppc_common/Vga.h:45: warning: 'class PPCVga' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/machine/mac/../ppc_common/Vga.h:45: warning:   but does not override 'PPCVga(const PPCVga&)'
/home/jamesmol/pedigree/src/system/kernel/machine/mac/../ppc_common/Vga.h:45: warning:   or 'operator=(const PPCVga&)'
In file included from /home/jamesmol/pedigree/src/system/kernel/machine/mac/../ppc_common/Keyboard.h:22,
                 from /home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.h:23,
                 from /home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.cc:17:
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning: 'class OFDevice' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   but does not override 'OFDevice(const OFDevice&)'
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   or 'operator=(const OFDevice&)'
In file included from /home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.h:23,
                 from /home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.cc:17:
/home/jamesmol/pedigree/src/system/kernel/machine/mac/../ppc_common/Keyboard.h:25: warning: 'class PPCKeyboard' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/machine/mac/../ppc_common/Keyboard.h:25: warning:   but does not override 'PPCKeyboard(const PPCKeyboard&)'
/home/jamesmol/pedigree/src/system/kernel/machine/mac/../ppc_common/Keyboard.h:25: warning:   or 'operator=(const PPCKeyboard&)'
/home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.cc: In constructor 'Mac::Mac()':
/home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.cc:68: warning: 'Mac::m_Vga' should be initialized in the member initialization list
/home/jamesmol/pedigree/src/system/kernel/machine/mac/Mac.cc:68: warning: 'Mac::m_Keyboard' should be initialized in the member initialization list
[ 80%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/machine/ppc_common/Keyboard.cc.o
In file included from /home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Keyboard.h:22,
                 from /home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Keyboard.cc:17:
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning: 'class OFDevice' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   but does not override 'OFDevice(const OFDevice&)'
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   or 'operator=(const OFDevice&)'
In file included from /home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Keyboard.cc:17:
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Keyboard.h:25: warning: 'class PPCKeyboard' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Keyboard.h:25: warning:   but does not override 'PPCKeyboard(const PPCKeyboard&)'
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Keyboard.h:25: warning:   or 'operator=(const PPCKeyboard&)'
[ 81%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/machine/ppc_common/Machine.cc.o
[ 83%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/machine/ppc_common/Serial.cc.o
[ 84%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/machine/ppc_common/Vga.cc.o
In file included from /home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc:17:
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.h:45: warning: 'class PPCVga' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.h:45: warning:   but does not override 'PPCVga(const PPCVga&)'
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.h:45: warning:   or 'operator=(const PPCVga&)'
In file included from /home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc:19:
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning: 'class OFDevice' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   but does not override 'OFDevice(const OFDevice&)'
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   or 'operator=(const OFDevice&)'
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc: In member function 'void PPCVga::initialise()':
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc:87: warning: comparison between signed and unsigned integer expressions
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc:94: warning: comparison between signed and unsigned integer expressions
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc: In member function 'virtual void PPCVga::pokeBuffer(uint8_t*, size_t)':
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc:116: warning: comparison between signed and unsigned integer expressions
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc:118: warning: comparison between signed and unsigned integer expressions
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc: In member function 'void PPCVga::putChar(char, int, int, unsigned int, unsigned int)':
/home/jamesmol/pedigree/src/system/kernel/machine/ppc_common/Vga.cc:141: warning: use of old-style cast
[ 85%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/machine/openfirmware/OpenFirmware.cc.o
[ 87%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/machine/openfirmware/Device.cc.o
In file included from /home/jamesmol/pedigree/src/system/kernel/machine/openfirmware/Device.cc:17:
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning: 'class OFDevice' has pointer data members
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   but does not override 'OFDevice(const OFDevice&)'
/home/jamesmol/pedigree/src/system/kernel/../include/machine/openfirmware/Device.h:28: warning:   or 'operator=(const OFDevice&)'
[ 88%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/utilities/List.cc.o
[ 89%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/utilities/String.cc.o
[ 90%] Building CXX object src/system/kernel/CMakeFiles/kernel.dir/utilities/Vector.cc.o
Linking CXX executable kernel
[ 90%] Built target kernel
Scanning dependencies of target autogen.h
[ 90%] Built target autogen.h
[ 92%] Building ASM-ATT object src/system/boot/ppc/CMakeFiles/bootloader.dir/boot.s.o
[ 93%] Building CXX object src/system/boot/ppc/CMakeFiles/bootloader.dir/main.cc.o
/home/jamesmol/pedigree/src/system/boot/ppc/main.cc: In function 'void _start(long unsigned int, long unsigned int, long unsigned int)':
/home/jamesmol/pedigree/src/system/boot/ppc/main.cc:101: warning: unused variable 'a'
[ 94%] Building CXX object src/system/boot/ppc/CMakeFiles/bootloader.dir/prom.cc.o
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc: In function 'void prom_init(int (*)(prom_args*))':
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:42: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:44: warning: deprecated conversion from string constant to 'char*'
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:46: warning: deprecated conversion from string constant to 'char*'
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:49: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc: In function 'void* prom_finddevice(const char*)':
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:55: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc: In function 'int prom_getprop(void*, char*, void*, int)':
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:65: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:65: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:65: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc: In function 'void prom_putchar(char)':
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:71: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:71: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:73: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:73: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc: In function 'void prom_map(unsigned int, unsigned int, unsigned int)':
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:78: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:78: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:78: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:78: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:78: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:78: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc: In function 'int prom_exit()':
/home/jamesmol/pedigree/src/system/boot/ppc/prom.cc:61: warning: control reaches end of non-void function
[ 96%] Building CXX object src/system/boot/ppc/CMakeFiles/bootloader.dir/Elf32.cc.o
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In function 'int memset(void*, int, size_t)':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:32: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In function 'void memcpy(void*, const void*, size_t)':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:41: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:42: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In member function 'bool Elf32::load(uint8_t*, unsigned int)':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:94: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In member function 'bool Elf32::writeSections()':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:171: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:178: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In member function 'const char* Elf32::lookupSymbol(unsigned int, unsigned int*)':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:193: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:223: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In member function 'uint32_t Elf32::getGlobalOffsetTable()':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:237: warning: control reaches end of non-void function
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In member function 'char* Elf32::lookupDynamicSymbolName(uint32_t)':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:233: warning: control reaches end of non-void function
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In member function 'uint32_t Elf32::lookupDynamicSymbolAddress(uint32_t)':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:229: warning: control reaches end of non-void function
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In member function 'unsigned int Elf32::getLastAddress()':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:188: warning: control reaches end of non-void function
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In member function 'bool Elf32::writeSections()':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:184: warning: control reaches end of non-void function
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In function 'int memset(void*, int, size_t)':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:37: warning: control reaches end of non-void function
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc: In function 'int strncpy(char*, const char*, int)':
/home/jamesmol/pedigree/src/system/boot/ppc/Elf32.cc:29: warning: control reaches end of non-void function
[ 97%] Building CXX object src/system/boot/ppc/CMakeFiles/bootloader.dir/Vga.cc.o
/home/jamesmol/pedigree/src/system/boot/ppc/Vga.cc: In function 'void vga_init()':
/home/jamesmol/pedigree/src/system/boot/ppc/Vga.cc:35: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Vga.cc:35: warning: deprecated conversion from string constant to 'char*'
/home/jamesmol/pedigree/src/system/boot/ppc/Vga.cc:41: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Vga.cc:48: warning: use of old-style cast
/home/jamesmol/pedigree/src/system/boot/ppc/Vga.cc:48: warning: suggest parentheses around + or - in operand of &
/home/jamesmol/pedigree/src/system/boot/ppc/Vga.cc: In function 'void vga_putchar(char, int, int, short unsigned int, short unsigned int, short unsigned int*)':
/home/jamesmol/pedigree/src/system/boot/ppc/Vga.cc:55: warning: use of old-style cast
Linking CXX executable bootloader
[ 97%] Built target bootloader
Scanning dependencies of target test3.o
[ 98%] Building CXX object src/system/modules/test3/CMakeFiles/test3.o.dir/test.cc.o
/home/jamesmol/pedigree/src/system/modules/test3/test.cc: In function 'int mysym()':
/home/jamesmol/pedigree/src/system/modules/test3/test.cc:7: warning: control reaches end of non-void function
Linking CXX executable test3.o
[ 98%] Built target test3.o
Scanning dependencies of target test2.o
[100%] Building CXX object src/system/modules/test2/CMakeFiles/test2.o.dir/test.cc.o
/home/jamesmol/pedigree/src/system/modules/test2/test.cc: In function 'int mysym()':
/home/jamesmol/pedigree/src/system/modules/test2/test.cc:7: warning: control reaches end of non-void function
Linking CXX executable test2.o
[100%] Built target test2.o
Scanning dependencies of target initrd
[100%] Built target initrd
Scanning dependencies of target create_images
[100%] Built target create_images

real    0m28.635s
user    0m17.293s
sys     0m2.276s
Yes, I really need to fix all those warnings in the bootloader ;)
User avatar
CmpXchg
Member
Member
Posts: 61
Joined: Mon Apr 28, 2008 12:14 pm
Location: Petrozavodsk, Russia during school months, Vänersborg Sweden in the summertime

Post by CmpXchg »

_JamesM:
Well, I've never developed an OS myself. For me this looks very impressive! Is it all controlled by a single makefile?
Dear me, what is "aubergine" supposed to mean here?
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Post by Combuster »

A clean build of the linux kernel (configured for this machine) takes about four minutes over here.
My OS needs 25 seconds for a clean build, of which only 2 seconds for the actual kernel...
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
lukem95
Member
Member
Posts: 536
Joined: Fri Aug 03, 2007 6:03 am
Location: Cambridge, UK

Post by lukem95 »

on a 1.63ghz dual core my kernel takes around 20 seconds to clean compile.

(oh and i have no warnings with O2 optimisation ;))
~ Lukem95 [ Cake ]
Release: 0.08b
Image
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Post by Solar »

CmpXchg wrote: Dear me, what is "aubergine" supposed to mean here?
Hostname.

For example, my laptop is valkyrie, and I remote-administrate several other systems, named baldur, thor, and heimdall respectively. When I log in to one of them, the command prompt tells me which one I'm currently on.
Every good solution is obvious once you've found it.
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Post by JamesM »

CmpXchg wrote:_JamesM:
Well, I've never developed an OS myself. For me this looks very impressive! Is it all controlled by a single makefile?
Dear me, what is "aubergine" supposed to mean here?
Hi,

No, actually we use CMake which is a replacement for autoconf. It's autoconf, but not a bag of crap, basically.

CMake generates makefiles for you based on input parameters you give it - the "configure" stage.

Like this:

Image

Then you can just use the standard "make", "make clean" etc commands, and it'll generate all your executables for you.

"aubergine" is the machine name of my work box.

The output is nice and colourful too, especially when mixed with colorgcc.pl like I have...

Image

Cheers,

James
User avatar
CmpXchg
Member
Member
Posts: 61
Joined: Mon Apr 28, 2008 12:14 pm
Location: Petrozavodsk, Russia during school months, Vänersborg Sweden in the summertime

Post by CmpXchg »

Hi everyone again!

Thanks for the replies!
Solar wrote:When I log in to one of them, the command prompt tells me which one I'm currently on.
It's all done under Linux, I guess? 'make' is standard in Linux, not in Windows, unfortunately.

Btw, I like the pictures, especially the one with output. I've saved them to remind me that someday I should also try to roll my own OS... What maketool would you advice to use under Windows?

Have to admit I don't know what clean compile means...
Does it mean every source file is recompiled, instead of making, which only compiles the files that have changed? (only a guess)
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

My OS takes less 0.4 seconds to assemble on a old P2 PC.
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Post by piranha »

3 seconds...for a full rebuild.

10 seconds for only the linux kernel (the shortest).
The whole thing takes much longer.

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Post by JamesM »

CmpXchg wrote:Hi everyone again!

Thanks for the replies!
Solar wrote:When I log in to one of them, the command prompt tells me which one I'm currently on.
It's all done under Linux, I guess? 'make' is standard in Linux, not in Windows, unfortunately.

Btw, I like the pictures, especially the one with output. I've saved them to remind me that someday I should also try to roll my own OS... What maketool would you advice to use under Windows?

Have to admit I don't know what clean compile means...
Does it mean every source file is recompiled, instead of making, which only compiles the files that have changed? (only a guess)
Yes, make is a UNIX tool. On windows, I would recommend using... Make! Use cygwin.

A Clean compile is when you "make clean" first, which deletes all cached object files, forcing a recompile of every file, not just the ones which have changed.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Post by Solar »

CmpXchg wrote:It's all done under Linux, I guess? 'make' is standard in Linux, not in Windows, unfortunately.
Check Cygwin.
What maketool would you advice to use under Windows?
For starters, single Makefile. Use autoconf / CMake / other meta-tools only when you know you need them, and why.
Have to admit I don't know what clean compile means...
Does it mean...
You guessed correctly.
Every good solution is obvious once you've found it.
User avatar
Stevo14
Member
Member
Posts: 179
Joined: Fri Mar 07, 2008 3:40 am
Location: Arad, Romania

Post by Stevo14 »

About 2 seconds for a full rebuild for my kernel. 1.86GHz Pentium M.
Dex wrote: My OS takes less 0.4 seconds to assemble on a old P2 PC.
IIRC your OS is quite modular (with lots of loadable programs etc.). Is this the build time for just the kernel or for everything?
robos
Member
Member
Posts: 33
Joined: Sun Apr 06, 2008 7:04 pm
Location: Southern California

Post by robos »

CmpXchg wrote: 'make' is standard in Linux, not in Windows, unfortunately.
...
What maketool would you advice to use under Windows?
nmake? comes standard with Visual Studio 2003 / 2005 (assuming that you're using the Microsoft tools)... I assume it (or something else) also comes with 2008.

I'm pretty sure there are also third party build tools available if nmake wouldn't suffice for some reason.
- Rob
Post Reply