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

Fix IFS build inconsistencies #2774

Merged
merged 2 commits into from
May 27, 2024
Merged

Fix IFS build inconsistencies #2774

merged 2 commits into from
May 27, 2024

Conversation

mikee47
Copy link
Contributor

@mikee47 mikee47 commented May 26, 2024

This PR addresses a couple of issues which have arisen in testing.

Globally define _POSIX_C_SOURCE

Value set by Sming to 200809L making available functionality from the 2008 edition of the POSIX standard (IEEE Standard 1003.1-2008). See https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html.

We should expect those features to be available generally.
IFS library no longer needs to defined this.

Fix IFS issues

  • Fix README links

  • Build images using environment variables with regular Windows paths require 'fixing', e.g. "/C/dir/path" -> "C:/dir/path"

  • Remove TimeStamp::String() operator completely: it's ambiguous

TimeStamp has implicit time_t cast, which is appropriate.
Calling String(timestamp) could yield the numeric value or the string value. Instead, call toString() method.

For example, when calling Serial.println(timestamp); GCC 10.2 calls TimeStamp::String(), whereas GCC 14.1 uses String(time_t).

mikee47 added 2 commits May 26, 2024 09:52
We should expect those features to be available generally
IFS library no longer needs to defined this.
- Fix README links
- Build images using environment variables with regular Windows paths require 'fixing', e.g. "/C/dir/path" -> "C:/dir/path"

- Remove `TimeStamp::String()` operator completely: it's ambiguous

TimeStamp has implicit `time_t` cast, which is appropriate.
Calling `String(timestamp)` could yield the numeric value or the string value. Instead, call `toString()` method.

For example, when calling `Serial.println(timestamp);` GCC 10.2 calls `TimeStamp::String()`, whereas GCC 14.1 uses `String(time_t)`.
Copy link

what-the-diff bot commented May 26, 2024

PR Summary

  • Modification to 'hostlib.h' File
    Remove _POSIX_C_SOURCE definition, no longer required.

  • Addition of a Flag in 'build.mk' File
    A new flag has been put into the file -D_POSIX_C_SOURCE=200809L and was added to the CPPFLAGS variable. This change specifies the version of POSIX standard we are using during the building process. Adopting newer standards helps reduce issues related to compatibility and functionality caused by old, outdated guidelines.

  • Update to the 'IFS' Subproject Commit
    The commit ID in the 'IFS' file has been altered from 1b4e2f04d4308f0dc966e4d59ee2d6fe5ffd4c2e to af9ddbc666a29b582cd3f1f4ed40a9848a91fe0a. This is an internal identifier change, signifying that we have moved to a newer version of this subproject. This change will likely include bug fixes, feature enhancements, or other improvements made in that newer version.

@slaff slaff added this to the 5.2.0 milestone May 27, 2024
@slaff slaff merged commit 7d69a58 into SmingHub:develop May 27, 2024
46 checks passed
@mikee47 mikee47 deleted the fix/ifs-win branch May 27, 2024 07:13
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

Successfully merging this pull request may close these issues.

2 participants