Skip to content

uVisor: Fix 'publish' and core libs dependencies #3906

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

Merged
merged 1 commit into from
Mar 9, 2017

Conversation

rjpdasilva
Copy link
Contributor

Description

Fix uvisor build issues observed with GNU Make 4.2.1, caused by missing dependencies and wildcard patterns in core libs targets' pre-requisites.

Fixes issue #3905.

Tested successfully for building uvisor and mbed-os with GNU Make versions 4.2.1 and 3.81, with GCC_ARM toolchain version 6.3.0.

Status

READY

Migrations

NO

Related PRs

None

Todos

  • Tests

Deploy notes

None

Steps to test or reproduce

Refer to issue #3905.

The 'TARGET_M%' rules depend on files generated by the 'rsync' target,
so make this dependency explicit by setting 'rsync' as a pre-requisite
of 'TARGET_M%'. The 'rsync' dependency was removed from 'publish' to
avoid the case where make would select one of the 'TARGET' rules before
completing 'rsync', which would cause the build to fail.

Additionally, also moved the core libs selection in the 'TARGET_M%'
pattern rule from the pre-requisites into the rule's recipe. This is
required because when the wildcard expression used before as a
pre-requisite is expanded (make's 1st phase), it won't find any files
(not built yet via 'rsync' target), so it won't create the associated
'TARGET_M%' rules, finally causing the 'publish' target building to fail
due to missing rules for 'TARGET_M3' and 'TARGET_M4'.

With this change and the previous one, it is ensured that 'rsync' is
done before executing the recipe for 'TARGET_M%', so the required core
libs are already available and can be used from withing the recipe. The
same wildcard pattern is used as before.

The issues being fixed are visible with GNU Make 4.2.1, but not seen
with GNU Make 3.81.

Fixes issue ARMmbed#3905.
@0xc0170
Copy link
Contributor

0xc0170 commented Mar 8, 2017

@AlessandroA @Patater

Copy link
Contributor

@Patater Patater left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Thanks for the fix.

Copy link
Contributor

@AlessandroA AlessandroA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the fix! Tested locally by @Patater

@0xc0170
Copy link
Contributor

0xc0170 commented Mar 8, 2017

/morph test-nightly

@mbed-bot
Copy link

mbed-bot commented Mar 8, 2017

Result: SUCCESS

Your command has finished executing! Here's what you wrote!

/morph test-nightly

Output

mbed Build Number: 1655

All builds and test passed!

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

Successfully merging this pull request may close these issues.

5 participants