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

Problem with make on windows? #84

Open
mdavidsaver opened this issue Oct 22, 2023 · 8 comments
Open

Problem with make on windows? #84

mdavidsaver opened this issue Oct 22, 2023 · 8 comments

Comments

@mdavidsaver
Copy link
Member

GHA builds of epics-base revisions which previously built successfully, have started failing with errors which might be related to make --output-sync. I have seen a couple of variations:

  make: *** invalid output sync mutex: --.  Stop.
   make: *** invalid output sync mutex: �����.  Stop.
  make: *** invalid output sync mutex: �*V8��.  Stop.

This looks like corruption. Could this be a gnumake bug?

 $ make --version
GNU Make 4.4.1
Built for x86_64-w64-mingw32
...

This is somewhat different than a successful build from a couple of weeks ago.

$ make --version
GNU Make 4.4.1
Built for Windows32
...
@mdavidsaver
Copy link
Member Author

make from chocolatey was last updated in May 2023.

The GHA windows-2019 image was updated last week.

@mdavidsaver
Copy link
Member Author

mdavidsaver commented Oct 22, 2023

Switching to the windows-2022 image has the same failure. But shows the same "Built for" as older successful builds.

$ make --version
GNU Make 4.4.1
Built for x86_64-w64-mingw32
...

Appveyor builds continue to (slowly) succeed, and show:

$ make --version
GNU Make 4.4.1
Built for Windows32
...

I guess that difference does not mean anything.

@mdavidsaver
Copy link
Member Author

... Could this be a gnumake bug?

Reported as https://savannah.gnu.org/bugs/index.php?64806

@mdavidsaver
Copy link
Member Author

I have gone ahead of committed 899b183 as a workaround.

@mdavidsaver
Copy link
Member Author

mdavidsaver commented Oct 23, 2023

After applying 899b183, I had to make another epics-base/pvDataCPP@5387fac to fix what was either a make or perl issue where print.obj somehow became PRINT.obj sometimes.

I am now wondering if our windows builds are actually using make+perl from the GHA image instead of chocolatey as intended. This might explain why an update of the GHA image could have such effects.

@mdavidsaver
Copy link
Member Author

@pheest points out that strawberryperl 5.38.0.1 includes "make.exe" (previous releases only installed "gmake.exe"). This version appeared on October 2, 2023. I guess this, not the GHA image update, was the initiating event.

Found exec make at 'C:\\Strawberry\\c\\bin\\make.EXE' 
$ make --version
GNU Make 4.4.1
Built for x86_64-w64-mingw32

The current PATH manipulations put this "make.exe" first.

ci-scripts/cue.py

Lines 690 to 696 in 899b183

if os.path.exists(r'C:\Strawberry\perl\bin'):
# Put strawberry perl in front of the PATH (so that Git Perl is further behind)
logger.debug('Adding Strawberry Perl in front of the PATH')
os.environ['PATH'] = os.pathsep.join([r'C:\Strawberry\c\bin',
r'C:\Strawberry\perl\site\bin',
r'C:\Strawberry\perl\bin',
os.environ['PATH']])

@mdavidsaver
Copy link
Member Author

@mdavidsaver
Copy link
Member Author

mdavidsaver commented Oct 28, 2023

fyi. the shifting sands of GHA have shifted back. The current windows image reverts strawberryperl back to 5.32.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant