ReactOS Project - reactos.git/atom - boot/freeldr/freeldr/CMakeLists.txt history A free Windows-compatible Operating System https://git.reactos.org/?p=reactos.git ReactOS Project static/git-favicon.png static/git-logo.png 2023-03-19T19:13:16Z gitweb [FREELDR] Support compiling freeldr as a UEFI loader + Implement UI functions (#5171) 2023-03-19T19:13:16Z Justin Miller justinmiller100@gmail.com GitHub noreply@github.com 2023-03-19T19:13:16Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=150f7212736bfb5da500cbafa58c0671d0cc8122
[FREELDR] Support compiling freeldr as a UEFI loader + Implement UI functions (#5171)

First batch of changes to implement a UEFI version of freeldr:
- Compile freeldr as EFI binary on top of the existing loader.
- Stub out various functions so we can create a UEFI machine-type in freeldr.
- Implement all of the video output functions so we can display a pretty freeldr BSoD :)
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR] Fix missing exports and .edata section after commit 728694f6. 2023-03-19T16:46:00Z Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 2023-03-19T16:46:00Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=995630cceca4c86dc51587c30fc8bc7367b0c7ca
[FREELDR] Fix missing exports and .edata section after commit 728694f6.
CORE-18880
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR] Move platform-specific build targets into dedicated .cmake files. (#5141) 2023-03-09T16:30:34Z Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 2023-03-09T16:30:34Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=728694f60fa7209f4c1c676b571ba58ee4aa4c8a
[FREELDR] Move platform-specific build targets into dedicated .cmake files. (#5141)

- Keep the common definitions and file lists in CMakeLists.txt
- Move PC-AT & compatibles (PC-98, XBOX) definitions in pcat.cmake
- Future UEFI-specific definitions will be in an uefi.cmake
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR] Move common x64 runtime-specific ASM helpers to a misc file. 2023-03-09T16:26:38Z Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 2023-03-09T16:26:38Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7a2aca423e7a8093bc1132ae3a6efb4c7d131ac2
[FREELDR] Move common x64 runtime-specific ASM helpers to a misc file.

Co-authored-by: Justin Miller <justinmiller100@gmail.com>
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[BOOT][SDK:CMLIB] Compile a CMLIB for FreeLdr / NT bootloader with correct definition... 2022-08-21T19:17:05Z Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 2022-08-21T19:17:05Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5cadc268ef4056b6ce08283b5d95604e37e02f27
[BOOT][SDK:CMLIB] Compile a CMLIB for FreeLdr / NT bootloader with correct definitions. (#4619)

This also allows using the CMLIB with any reduced functionality
that could be required at boot-time.
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[CMAKE] Do not use USE_CLANG_CL variable in CMake scripts 2022-05-25T23:03:50Z Victor Perevertkin victor.perevertkin@reactos.org Victor Perevertkin victor.perevertkin@reactos.org 2022-05-25T23:03:50Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=447ef2aa4a15adfb4060b72383a34001a14d13ac
[CMAKE] Do not use USE_CLANG_CL variable in CMake scripts
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR:NTLDR] Use NTOS kernel's CMBOOT functions to enumerate and build the boot... 2022-03-22T03:14:35Z Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 2022-03-22T03:14:35Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=94874baf198fb86536ee41a71e016a47e37799b4
[FREELDR:NTLDR] Use NTOS kernel's CMBOOT functions to enumerate and build the boot-time driver list.

They are correct and are more performant.

- Rewrite WinLdrAddDriverToList() on the model of CmpAddDriverToList()
  with support for CmpIsDriverInList().

- Disable RegEnumKey() as it is now unused.
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[BOOT][SDK:RTL] Compile a reduced RTL library for FreeLdr / NT bootloader... 2022-03-21T20:06:52Z Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 2022-03-21T20:06:52Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=24cb57fdead78f88236d2e92e4293c4fc6c9c48f
[BOOT][SDK:RTL] Compile a reduced RTL library for FreeLdr / NT bootloader...

... as it should have always been done (and must be done for NTDLL
and NTOS kernel as well). This allows using the RTL with the correct
definitions and the reduced functionality available at boot-time.

+ Make the RTL main header compatible.

In addition, this will permit re-using existing code that already
uses the RTL (mostly string conversions).

See commits 427c90af3 (r36761) and b46e8cc18 (r36980) for some
background.
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR:UI] Disable GUI code from compilation as it is currently stubbed. 2022-01-05T03:15:41Z Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 2022-01-05T03:15:41Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=06fc2e72a6d0bb20ec183211bd3efb4f0e1d782c
[FREELDR:UI] Disable GUI code from compilation as it is currently stubbed.

Rename "ShowGui" -> "ShowUi" as this variable was actually unrelated
to *graphical* aspects of the UI.
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[CMAKE] Replace custom scripts in compilerflags with standard ones 2021-09-13T16:51:08Z Victor Perevertkin victor.perevertkin@reactos.org Victor Perevertkin victor.perevertkin@reactos.org 2021-09-13T16:51:08Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8e1fa03456a68bc6773d4f49ab8c18debe61d1c6
[CMAKE] Replace custom scripts in compilerflags with standard ones

- add_target_link_flags changed to target_link_options
- add_target_property changed to set_property(... APPEND ...)
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[CMAKE:GCC] Produce RosSym data even when building with separate debug symbols 2021-06-22T13:31:18Z Jérôme Gardou jerome.gardou@reactos.org Jérôme Gardou zefklop@users.noreply.github.com 2021-06-22T13:31:18Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=54ecf703f21001b58d8f781c5043451de1733d9b
[CMAKE:GCC] Produce RosSym data even when building with separate debug symbols
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[CMAKE] Get rid of freeldr_pe_dbg target 2021-06-21T12:57:45Z Jérôme Gardou jerome.gardou@reactos.org Jérôme Gardou zefklop@users.noreply.github.com 2021-06-21T12:57:45Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5c332f6d36eed16ecbd424719eaf291a738f682b
[CMAKE] Get rid of freeldr_pe_dbg target

objcopy bug is now solved and I can't remember how this used to work anyway.
Use strip instead.
If you need to debug freeldr
 - set SEPARATE_DBG cmake var to TRUE
 - use qemu GDB stub
 - In GDB : add-symbol-file <build_dir>/symbols/freeldr_pe.exe
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR] Force alignment of .text section on disk 2021-04-12T12:15:33Z Jérôme Gardou jerome.gardou@reactos.org Jérôme Gardou zefklop@users.noreply.github.com 2021-04-12T12:15:33Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2bf116359b5eadb163d2fee475cf2deff268eaeb
[FREELDR] Force alignment of .text section on disk

Fixes boot for clang & GCC-amd64 build
Also rename freeldr_i386.lds to freeldr_gcc.lds for better clarity
  • [D] boot/freeldr/freeldr/CMakeLists.txt
this seem to be the only combination which works on msbuild-msvc 2021-03-03T02:00:33Z Victor Perevertkin victor.perevertkin@reactos.org Jérôme Gardou zefklop@users.noreply.github.com 2021-03-03T02:00:33Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f82eb0fede4c3d93fde6122aafe0dd50600126fb
this seem to be the only combination which works on msbuild-msvc
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR] Use target_link_options instead of add_target_link_flags 2021-02-03T19:07:57Z Jérôme Gardou jerome.gardou@reactos.org Jérôme Gardou zefklop@users.noreply.github.com 2021-02-03T19:07:57Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1ea6157cbfb7f6c613c589eaf6f6b01f71f14f08
[FREELDR] Use target_link_options instead of add_target_link_flags

CORE-17423
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR] Use decimal numbers for section & file alignment 2021-02-03T16:20:41Z Jérôme Gardou jerome.gardou@reactos.org Jérôme Gardou zefklop@users.noreply.github.com 2021-02-03T16:20:41Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e7f08b3e30fdabe05686a693d87d97d8eb4642b6
[FREELDR] Use decimal numbers for section & file alignment

CORE-17423
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR] Disable SSE instructions for GCC x64 2021-01-30T17:51:07Z Hervé Poussineau hpoussin@reactos.org Hervé Poussineau hpoussin@reactos.org 2021-01-30T17:51:07Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bfedf9760cb464aaa1a55b19bc6899c02edba96d
[FREELDR] Disable SSE instructions for GCC x64

Even if all x64 CPUs can handle SSE instructions, prevent GCC x64 to
generate them, as FreeLoader is not ready to handle them.
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[CMAKE] Fix GCC -fstack-protector usage 2020-12-31T16:56:39Z Jérôme Gardou jerome.gardou@reactos.org Jérôme Gardou jerome.gardou@reactos.org 2020-12-31T16:56:39Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c8d07514c8e0bc235e180f6990f914ee86880f8c
[CMAKE] Fix GCC -fstack-protector usage
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[FREELDR] Parse NT kernel load options in a consistent manner. 2020-11-03T00:16:14Z Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 2020-11-03T00:16:14Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d887308b2f604ae020887b5a403be8a3eabd52a0
[FREELDR] Parse NT kernel load options in a consistent manner.

- Introduce a set of NtLdrGet(Next)Option(Ex) helpers that allow
  retrieving respectively, the "next" option in an options string,
  and retrieving a given named option in such an options string,
  by correctly parsing that string.

  Valid syntaxes:
      /OPTION1 /OPTION2/OPTION3 OPTION4 /OPTION5(=...) ...

  Options separators are slashes, or whitespace (space, tab), mandatory
  if no slash is used, and otherwise optional.

- Use these functions wherever NT load options are being parsed.

- Simplify the parsing of /DEBUGPORT=... using these functions.

- When parsing the /HAL=... or /KERNEL=... options, only the first
  encountered one is taken into account, any other ones are discarded.

- When parsing the other load options, only their first occurrences are
  taken into account, any other repetitions are discarded.
  * The NOPAE option overrides any previous PAE option.
  * Any NOEXECUTE(=) option should override any previous
    NOEXECUTE=ALWAYSOFF (or equivalently, EXECUTE) option.
  • [D] boot/freeldr/freeldr/CMakeLists.txt
[CMAKE] Get rid of add_compile_flags 2020-09-21T10:16:02Z Jérôme Gardou jerome.gardou@reactos.org Jérôme Gardou zefklop@users.noreply.github.com 2020-09-21T10:16:02Z https://git.reactos.org/?p=reactos.git;a=commitdiff;h=00ed72d7e850a5bfec98023ad3821a81a5f77ccc
[CMAKE] Get rid of add_compile_flags

Use add_compile_options and the like instead
  • [D] boot/freeldr/freeldr/CMakeLists.txt