<feed xmlns='http://www.w3.org/2005/Atom'>
<title>objective.git, branch cmake</title>
<subtitle>Objective Kernel source code
</subtitle>
<id>https://git.objectiveos.org/objective/objective.git/atom?h=cmake</id>
<link rel='self' href='https://git.objectiveos.org/objective/objective.git/atom?h=cmake'/>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/'/>
<updated>2026-04-02T12:04:08Z</updated>
<entry>
<title>Correct CRTXBUNDLE static targets into separate objects</title>
<updated>2026-04-02T12:04:08Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2026-04-02T11:52:26Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=b0bb74c25d3a2caab032e5facfd9608724de3e05'/>
<id>urn:sha1:b0bb74c25d3a2caab032e5facfd9608724de3e05</id>
<content type='text'>
This correct refers to a wrong order of linking CRT objects.
When targets are separates into 4: CRTI, CRTBEGIN, CRTEND, CRTN
    the order became a little bit correct.

TODO
- Image with grub bootloader creation
- Build under window platform (optional)

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Move to CHECK_START messages</title>
<updated>2026-03-30T10:54:13Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2026-03-30T10:54:13Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=6cdf09f651586135b7cf7a8a05ba4a96cb6b3b97'/>
<id>urn:sha1:6cdf09f651586135b7cf7a8a05ba4a96cb6b3b97</id>
<content type='text'>
More convenient requirements checks way by CHECK_START message
    argument.

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Cmake status information output</title>
<updated>2026-03-30T10:50:25Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2026-03-30T10:50:25Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=e5eb32a5123920d18a55819bcea8a23b3a3e0f4d'/>
<id>urn:sha1:e5eb32a5123920d18a55819bcea8a23b3a3e0f4d</id>
<content type='text'>
Reinforce of compiler, C runtime, architecture checks at cmake
    configuration.

Compiler check means continue building at the cmake configure
    stage only for supported compilers. Use unsupported compiler
    involves immediate build process stopping.

C runtime check means finding of runtime objects. Especially for
    *crtbegin.o* and *crtend.o* files.

Architecture means *ObjectiveProject_ARCHITECTURE* variable is set.
    That variable configure at toolchain file by default and cannot
    override if toolchain file is passed.

    TODO
    - Image creation
    - Build under window platform (optional)

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Set architecture bitness in nasm files</title>
<updated>2026-03-28T08:29:22Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2026-03-28T08:11:43Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=256b2c871a0f3ac0175de298b78c6ea527f42f60'/>
<id>urn:sha1:256b2c871a0f3ac0175de298b78c6ea527f42f60</id>
<content type='text'>
Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Cmake build type at the generation stage</title>
<updated>2026-03-28T07:55:53Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2026-03-28T07:55:53Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=378972285342f52bb71822d87ba261b76b4a42ed'/>
<id>urn:sha1:378972285342f52bb71822d87ba261b76b4a42ed</id>
<content type='text'>
Fix in *nasm* files - set architecture bitness.

Move compiler flags from *toolchain* file to *requirements target*
    considering cmake files. This solution allows available of
    multi-configurations generators to pass compiler options
    without affecting on single-configuration generators.

TODO
- Debug information
- Image creation
- Build under window platform (optional)

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Cmake build generator support: toolchain file</title>
<updated>2026-03-28T04:36:06Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2026-03-28T04:36:06Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=c62baf8bca986d493e1caf441ea7a6b9d1c1823f'/>
<id>urn:sha1:c62baf8bca986d493e1caf441ea7a6b9d1c1823f</id>
<content type='text'>
Two toolchain files for clang and gcc compilers under x86 platform.
Debug flags also passed at the configure time.

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Cmake build generator support: build stage</title>
<updated>2026-03-27T07:03:55Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2026-03-27T07:03:55Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=6ffe96d1e3f0289c2070e050cf8e1a30288e6d91'/>
<id>urn:sha1:6ffe96d1e3f0289c2070e050cf8e1a30288e6d91</id>
<content type='text'>
Multi-target architecture implementation:
    each root source code directory presents the one
    *INTERFACE* target to it's subdirectory subtargets
    that link only as *STATIC* library.
    For instance, *arch* directory presents *Architecture* target
    then *Architecture* target has *CPUID*, *IO*, *PORT*
    and etc. dependencies

Exact order of linking targets is: boot.o CRTIBUNDLE &lt;TARGETS&gt; CRTNBUNDLE.
Sequence destruction cause to UB. Please to pay attention to this.

TODO
- Debug information
- Build type
- Toolchain file
- Image creation
- Build by WinGW compiler on Windows platform (optional)

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Global variables initialization implementation</title>
<updated>2025-12-20T12:39:05Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2025-12-20T12:39:05Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=a4dea4148157a94a9143dbbd92fdd88b4358676c'/>
<id>urn:sha1:a4dea4148157a94a9143dbbd92fdd88b4358676c</id>
<content type='text'>
User implementation of C runtime library objects (`crti.s` and `crtn.s`)
    for initialization (termination functionality are ignored).

Changing files order passed to the linker. Rough order is:
    boot.s crti.o crtbegin.o other-link-objects.o crtend.o crtn.o

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Linker script refactor</title>
<updated>2025-12-20T08:56:06Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2025-12-20T08:56:06Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=a72c27d948ee8cf542f8d38c7026876af4875e6b'/>
<id>urn:sha1:a72c27d948ee8cf542f8d38c7026876af4875e6b</id>
<content type='text'>
In general this update touching sections for initialization and destruction of
    global variables.

DISCARD sections added (.fini and .comment) and particular sections
(.ctors, .dtors, .init, .fini) moved into more common sections (.rodata
and .text) accordingly. This decision allows to save a some RAM.

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
<entry>
<title>Linker script rework</title>
<updated>2025-12-20T07:16:47Z</updated>
<author>
<name>Alexey Gavrilov</name>
<email>alexey.gavrilov@mail.com</email>
</author>
<published>2025-12-17T07:13:08Z</published>
<link rel='alternate' type='text/html' href='https://git.objectiveos.org/objective/objective.git/commit/?id=eb6a12e18d45879ec383921f0c7378120b71d159'/>
<id>urn:sha1:eb6a12e18d45879ec383921f0c7378120b71d159</id>
<content type='text'>
`memory.ld` is a architecture-dependent ld config provides some general
    symbols which every `memory.ld` config must assign
    and memory regions associated with each output section.

'linker.ld' config file presents segments configuration.

Multiboot section filling move in the 'linker.ld' file.

Recommendation for further patches: controlled logic implementation for multiboot
    version and header/entries in build configuration tool (CMake or
    make). For instance, multiboot version and video mode selection
    through variable passing in build system:
    `cmake ... -DMULTIBOOT_VERSION=2 -DMULTIBOOT_VIDEO_MODE=TEXT_VIDEO_MODE`
    or
    'export MULTIBOOT_VERSION=2; export MULTIBOOT_VIDEO_MODE=TEXT_VIDEO_MODE'.
    Then build system do proper filling of `.multiboot` section depends
    on passing variables.

Signed-off-by: Alexey Gavrilov &lt;alexey.gavrilov@mail.com&gt;
</content>
</entry>
</feed>
