Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows: Remove all dependencies on MSYS2 #4687

Closed
9 tasks done
SebastianBoe opened this issue Nov 2, 2017 · 11 comments
Closed
9 tasks done

Windows: Remove all dependencies on MSYS2 #4687

SebastianBoe opened this issue Nov 2, 2017 · 11 comments
Assignees
Labels
area: Build System Feature A planned feature with a milestone priority: high High impact/importance bug
Milestone

Comments

@SebastianBoe
Copy link
Collaborator

SebastianBoe commented Nov 2, 2017

Definition Of Done: Windows users must be able to use all officially supported build system features without having a dependency on any form of unix emulation layer; MinGW/MSYS2/Cygwin/WSL.

Informally; Windows users should not need to install unix tools, the Zephyr host-side infrastructure should purely have portable dependencies such as python.

Blockers

@SebastianBoe SebastianBoe added area: Build System Feature Request A request for a new feature labels Nov 2, 2017
@SebastianBoe SebastianBoe self-assigned this Nov 2, 2017
@mbolivar
Copy link
Contributor

mbolivar commented Nov 3, 2017

Flashing and debugging bash scripts are done

@andrewboie
Copy link
Contributor

gperf might be a really tough one, it is used to generate perfect hash tables of kernel object pointers which are needed by memory protection features, if you don't want to use it we would have to re-implement it in Python.
@lpereira you were looking at this at one point?

@lpereira
Copy link
Collaborator

lpereira commented Nov 3, 2017

@andrewboie I was. I might return to it sometime if there's a real need.

I'm working on dtc right now.

@lpereira
Copy link
Collaborator

lpereira commented Nov 3, 2017

A dtc implemented in Python is here: #4728

Some error checking should be introduced, but overall, this should work fine. Review appreciated.

I'll look into gperf next week. The prototype I have isn't working well in some cases; I might implement the same algorithm that gperf uses instead.

@mbolivar
Copy link
Contributor

mbolivar commented Nov 4, 2017

gperf might be a really tough one, it is used to generate perfect hash tables of kernel object pointers which are needed by memory protection features, if you don't want to use it we would have to re-implement it in Python.

The perfect hash table algorithm itself is not that complicated. What is the concern here that makes it a "really tough one"?

@mbolivar
Copy link
Contributor

mbolivar commented Nov 4, 2017

Example, not vetted extensively: https://github.com/eddieantonio/perfection

@lpereira
Copy link
Collaborator

lpereira commented Nov 6, 2017

There are many perfect hashes out there; we just need to find one that lets us build a hash function that do not require the use of a modulus operator (as integer division is quite costly). Making the table size a power of two will help, but it's not always easy to do depending on the perfect hashing algorithm. gperf isn't a perfect minimal hash table because of this.

But, yeah, I'm sure that if we shop around we'll find a suitable library.

@carlescufi carlescufi added this to the v1.11.0 milestone Dec 12, 2017
@nashif nashif added Feature A planned feature with a milestone priority: high High impact/importance bug and removed Feature Request A request for a new feature labels Dec 12, 2017
@nashif
Copy link
Member

nashif commented Dec 12, 2017

merge_config.sh (?) (There is a minor bug in merge_config.py)

what is the bug? Can we open a new issue with more details, seems like a low hanging fruit :)

@SebastianBoe
Copy link
Collaborator Author

Will do.

@SebastianBoe
Copy link
Collaborator Author

merge_config now has a bugreport: #5374

@carlescufi
Copy link
Member

Closing this since Kconfig is now Python, gperf is a native Windows executable and we have an MSYS2-wrapped version of dtc that works reliably.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Build System Feature A planned feature with a milestone priority: high High impact/importance bug
Projects
None yet
Development

No branches or pull requests

6 participants