diff mbox series

[bug#61765] custom toolchain blog post

Message ID e0a66bab-2bca-cbd2-2e3b-c893c0391a1d@librem.one
State New
Headers show
Series [bug#61765] custom toolchain blog post | expand

Commit Message

Mitchell Schmeisser March 13, 2023, 1:52 p.m. UTC
Here are two patches with minor fixes.

Sorry about the code formatting... Does anyone have any tips for getting 
emacs to format scheme code in markdown?


Thanks,

Mitchell


On 3/11/23 07:11, Ludovic Courtès wrote:
> Hi Mitchel,
>
> (Please keep the issue Cc’d.)
>
> Apologies for the delay!
>
> Mitchell Schmeisser <mitchellschmeisser@librem.one> skribis:
>
>>> One thing that’s not clear to me: with this in place, can you do “guix
>>> build --target=arm-zephyr-eabi hello”, for instance?  If not, what’s
>>> missing to support it?
>> You cannot. I do not know how to describe it in a succinct way but
>> suffice to say the applications need to know they are targeting Zephyr
>> when they are written. The application will include a `prj.conf` which
>> is analogous to a custom defconfig in the Linux kernel.
>> Either in this file, or somewhere in the CMakeLists.txt a `BOARD`
>> variable is set to specify a specific board definition.
>> These board definitions contain information about the architecture and
>> the CMake scripts themselves pick the toolchain.
>>
>> It's not that it's impossible to implement something like `guix build
>> --target=arm-zephyr-eabi k64f-hello-world` but the k64f-hello-world
>> would be written in such a way that the target is implicit in the
>> package.
> OK.  To put it differently, a typical POSIX program won’t work on
> Zephyr; programs have to target the Zephyr interfaces, right?
>
>> The way I envision the `--target/system` flags being used in this
>> context is `guix build --target=arm-linux-gnueabihf k64f-hello-world`
>> which will still produce the correct firmware but will allow the
>> firmware to be staged to another machine which will be responsible for
>> the final deployment over some transport.
> Or rather:
>
>    guix build --target=arm-zephyr-eabi k64f-hello-world
>
> ?
>
>>> I wonder if it would be worth mentioning
>>> <https://guix.gnu.org/manual/en/html_node/Platforms.html> too, and how
>>> one would go about adding a  module.  WDYT?
>> I considered trying to add Zephyr platforms but I'm not sure it's worth
>> the effort.
>> In addition to the patch to the website I attached another post(in org)
>> which describes how I integrated this toolchain into the Guix
>> infrastructure to allow defining firmware packages.
>> Maybe there will be additional information in there which can help you
>> understand where I'm going with all of this.
>>
>> There will be a part 3 (and possibly more) about how to practically use
>> this stuff in a real project.
> Woow.  :-)
>
>>  From 0920ec7d951354c94c3da277d58e54b587522622 Mon Sep 17 00:00:00 2001
>> From: Mitchell Schmeisser <mitchellschmeisser@librem.one>
>> Date: Mon, 27 Feb 2023 10:20:32 -0500
>> Subject: [PATCH] website: Add toolchain blog post
>>
>> website/blog/custom-toolchains-with-guix.md: New file
> I pushed it under the drafts directory for now, to leave others a bit
> more time to comment before we publish.  I followed up with a commit
> editing things a bit, mostly fixing typographical issues,
> spelling/capitalization, code formatting, and removing tabs.
>
>    https://git.savannah.gnu.org/cgit/guix/guix-artwork.git/tree/website/drafts/custom-toolchains-with-guix.md
>
> (BTW, I made slight modifications to some of the code snippets to!  One
> package was using (append (list …) (package-native-inputs …)), which
> really works “by chance” I guess; you should use ‘modify-inputs’
> instead.)
>
> Let me know if anything’s amiss!
>
> Thanks,
> Ludo’.

Comments

Ludovic Courtès March 15, 2023, 2:45 p.m. UTC | #1
Hi,

Mitchell Schmeisser <mitchellschmeisser@librem.one> skribis:

> Sorry about the code formatting... Does anyone have any tips for
> getting emacs to format scheme code in markdown?

No tips, other than making sure to untabify.  :-)

> From 0f6c28345a51e20004bc16b73bda1c0e5ccb7f4c Mon Sep 17 00:00:00 2001
> From: Mitchell Schmeisser <mitchellschmeisser@librem.one>
> Date: Mon, 13 Mar 2023 09:36:36 -0400
> Subject: [PATCH 1/2] website: custom-toolchains-with-guix: Code fix
>
> * website/drafts/custom-toolchains-with-guix.md: Removed unnecessary
> native-inputs from gcc-arm-zephyr-eabi-toolchain code block.

[...]

> From 25a65c6ace2a3df43d6c3c6d6e23062a51419025 Mon Sep 17 00:00:00 2001
> From: Mitchell Schmeisser <mitchellschmeisser@librem.one>
> Date: Mon, 13 Mar 2023 09:39:22 -0400
> Subject: [PATCH 2/2] website: custom-toolchains-with-guix: Update reference
>  URL
>
> * website/drafts/custom-toolchains-with-guix.md: Changed url from
> "latest" to 3.1 which was the current version at the time of writting.

Applied, and finally published:

  https://guix.gnu.org/en/blog/2023/building-toolchains-with-guix/

Thank you!

Ludo’.
Mitchell Schmeisser March 16, 2023, 1:55 a.m. UTC | #2
Ah I’m so honored, thank you for the encouragement!

-Mitchell 

> On Mar 15, 2023, at 10:46 AM, Ludovic Courtès <ludo@gnu.org> wrote:
> 
> Hi,
> 
> Mitchell Schmeisser <mitchellschmeisser@librem.one> skribis:
> 
>> Sorry about the code formatting... Does anyone have any tips for
>> getting emacs to format scheme code in markdown?
> 
> No tips, other than making sure to untabify.  :-)
> 
>> From 0f6c28345a51e20004bc16b73bda1c0e5ccb7f4c Mon Sep 17 00:00:00 2001
>> From: Mitchell Schmeisser <mitchellschmeisser@librem.one>
>> Date: Mon, 13 Mar 2023 09:36:36 -0400
>> Subject: [PATCH 1/2] website: custom-toolchains-with-guix: Code fix
>> 
>> * website/drafts/custom-toolchains-with-guix.md: Removed unnecessary
>> native-inputs from gcc-arm-zephyr-eabi-toolchain code block.
> 
> [...]
> 
>> From 25a65c6ace2a3df43d6c3c6d6e23062a51419025 Mon Sep 17 00:00:00 2001
>> From: Mitchell Schmeisser <mitchellschmeisser@librem.one>
>> Date: Mon, 13 Mar 2023 09:39:22 -0400
>> Subject: [PATCH 2/2] website: custom-toolchains-with-guix: Update reference
>> URL
>> 
>> * website/drafts/custom-toolchains-with-guix.md: Changed url from
>> "latest" to 3.1 which was the current version at the time of writting.
> 
> Applied, and finally published:
> 
>  https://guix.gnu.org/en/blog/2023/building-toolchains-with-guix/
> 
> Thank you!
> 
> Ludo’.
diff mbox series

Patch

From 25a65c6ace2a3df43d6c3c6d6e23062a51419025 Mon Sep 17 00:00:00 2001
From: Mitchell Schmeisser <mitchellschmeisser@librem.one>
Date: Mon, 13 Mar 2023 09:39:22 -0400
Subject: [PATCH 2/2] website: custom-toolchains-with-guix: Update reference
 URL

* website/drafts/custom-toolchains-with-guix.md: Changed url from
"latest" to 3.1 which was the current version at the time of writting.
---
 website/drafts/custom-toolchains-with-guix.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/website/drafts/custom-toolchains-with-guix.md b/website/drafts/custom-toolchains-with-guix.md
index fb491c6..ffc3b1a 100644
--- a/website/drafts/custom-toolchains-with-guix.md
+++ b/website/drafts/custom-toolchains-with-guix.md
@@ -447,7 +447,7 @@  for a given board.
 
 There are standard locations the build system will look for the SDK. We are not using any of them.
 Our SDK lives in the store, immutable forever.
-According to [the Zephyr documentation](https://docs.zephyrproject.org/latest/develop/west/without-west.html), the variable `ZEPHYR_SDK_INSTALL_DIR` needs to point to our custom spot.
+According to [the Zephyr documentation](https://docs.zephyrproject.org/3.1.0/develop/west/without-west.html), the variable `ZEPHYR_SDK_INSTALL_DIR` needs to point to our custom spot.
 
 We also need to grab the CMake files from the
 [repository](https://github.com/zephyrproject-rtos/sdk-ng)
-- 
2.39.1