-
Notifications
You must be signed in to change notification settings - Fork 907
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
Fix for WindowsApps permission denied with run_command(). #4863
Conversation
I improved the handling for when process_line is null to be more like
I don't know enough about how this is used elsewhere to make a good decision on how this should be handled. |
…haviour where possible.
I updated the code so it only uses the new function when needed. This preserves the shell behavior everywhere else. |
Without the use of a shell, wouldn't this argument (however the redirection is done) be passed to
Can you please confirm that running |
Are you aware that you can link abc into the main Yosys executable, avoiding the use of |
That would likely fix it. Can it be done using the oss-cad-suite-build? I'm using this to build the tools for windows/linux/mac. Using In my latest code change I remove the redirection argument if present before running the command. |
Sorry, I'm not familiar with oss-cad-suite-build. I maintain YoWASP tool builds and that's been my primary deployment target since 2020. In order to enable linking in abc you need to set in
|
I believe I was able to add this by adding
This lead me to line 86 of Adding EDIT: Adding the following two lines to the yosys.sh file got it to compile for windows with ABC linked. This solves my problem without modification to yosys.
|
That should probably be done as a part of the main Yosys makefile. |
I've been integrating Yosys into an application (Alchitry Labs) and it fails to run on Windows when installed to WindowsApps. The original error was reported here.
I found that my program could run
yosys
but whenyosys
would startyosys-abc
it would simply returnAccess is denied.
After two days of pulling my hair out, I discovered that using
CreateProcessA()
instead ofpopen()
orsystem()
makes it work. I don't know exactly what the difference is but Windows must be passing something along that doesn't happen otherwise.This is a Windows only problem and a Windows only solution so a lot was added in an
#ifdef
block. I couldn't find a way to make it work using the more standard functions.