Recently there has been a discussion to change how the kernel version is handled:
https://discord.com/channels/6312867737 ... 3474416653
Currently the build system takes the highest SVN $Revision$ number for any kernel source file, e.g. 1234, and makes that the Kernel revision.
This system does not work under Git.
The proposal is to move the Kernel version over to a semantic system: major.minor.patch. See: https://semver.org.
This would only affect the Kernel, and the OS would continue to be versioned as currently.
Any breaking changes to the ABI would increment the major version of the kernel. Despite some recent breaking changes, we would probably start with the current version as `0.7.7`. This kernel version would be held in a variable in the source code, requiring manual intervention, when a new kernel release is determined.
This change may, in addition, require an update to the system function(s) for storing and providing the version.
Please provide feedback on this change! Feel free to even just post 'Ok' to indicate you have read the proposal.
Many thanks.
Kernel revision numbering moving to semantic versioning
We have discussed a plan for a backwards compatible change to sf18.13:
Current draft https://discord.com/channels/6312867737 ... 2426486846 :
Current draft https://discord.com/channels/6312867737 ... 2426486846 :
Code: Select all
db a,b,c,d
; OS version, e.g. 0.7.7.0 (unchanged - but now extracted from the git tag during build).
; The formatting and semantic meaning of the 4 bytes may be distro specific.
; It may not be relied upon to identify the feature set (recommendation is to use the Kernel ABI version instead).
db 0
; reserved byte (unchanged)
db minor
; (NEW) Kernel ABI version, minor. Starting from `0`.
; The lower byte of the old `REV` revision field
dw major
; (NEW) Kernel ABI version, major. Starting from `40` (for backwards compatibility with historic REV field).
; The two middle bytes of the old `REV` revision field
dw 12345
; (NEW) VCS commit offset from the last release.
; The lower byte of this field is the higher byte of the old `REV` revision field.
rb 5
; (NEW) Last VCS commit ID truncated to first 5 bytes,
; e.g. first 10 hexadecimal digits of git commit hash (ca fe f0 0d 01)
db 0
; (NEW) reserved byte.
;; <--- 16 bytes total.
Who is online
Users browsing this forum: No registered users and 0 guests