-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Update framework archs #4320
Update framework archs #4320
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking good.
Going through the code why not drop entirely the S
?
With that in mind, toolchains
is still something that would need renaming to toolchain
...
Overall a lot of comments for consideration. Not that they all need to be actionned (some may be for discussion or for a later PR)
eb11281
to
d7353cf
Compare
Wow this is massive: close to 500 file changed... (most of it due to the |
It seems somehow my intent was to propose a change but it got pushed in... no wonder why I prefer command lines to web interface... sigh. Sorry for that. I think you'll get what the intent is. As we are often using the exact same combination of "LEGACY" archs that a flagged as unsupported might be worth flagging them as legacy? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So last bit of comments:
- Overall looking quite good
- Really much like the reworking of the archs.mk, should be more flexible and easier to maintain
- Much like the new patch/arch-DSMVER.patch funcionality. Should help for DSM7 migration.
Proposals:
- Rename OLD_PPC_ARCHS into LEGACY_PPC_ARCHS
- Add a LEGACY_ARCHS that might include ARM5 + potentially also hi3535
- Document the GENERIC_ARCHS which is I recall had an implication over GO related builds
Quick question, could the github-action be modified so hi3535 builds are done? perhaps instead of armv7-1.2 for instance thus aligning the |
I wanted to suggest that too 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not rename x86 to pineview so it is consistent?
mk/spksrc.wheel.mk
Outdated
@@ -59,7 +59,7 @@ pre_wheel_target: wheel_msg_target | |||
|
|||
build_wheel_target: $(PRE_WHEEL_TARGET) | |||
@if [ ! -z "$(WHEELS)" ] ; then \ | |||
$(foreach e,$(shell cat $(WORK_DIR)/python-cc.mk),$(eval $(e))) \ | |||
$(foreach e,$(shell cat $(WORK_DIR)/python-cc.mk 2> /dev/null),$(eval $(e))) \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't be echoed somewhere somehow? Even perhaps in $(WORK_DIR)/python-cc.mk.error.log
. Otherwise redirecting it to /dev/null
will complexity debugging.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is boring me for a long time, that it looks like an error for packages without python-wheels and regularly no python-cc.mk file.
===> Processing wheels of {package-name}
cat: /spksrc/spk/{package-name}/work-{arch}-6.1/python-cc.mk: No such file or directory
The only error output that cat
might produce is No such file or directory
.
The real problem might be that $(WHEELS)
is not empty. But anyway this should be moved to a dedicated PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
indeed that is the only side effect but at least we know when it is happening. Why not simply redirect it to stdout (2>&1
)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So really much like the idea of managing at TC_* level the GLIB, GCC and KERNEL which should in theory remove all the UNSUPPORTED and the likes. Proposal's left in my review are:
- GENERIC_ARCHS vs GO build support - is it handled with your changes?
- python error redirection to /dev/null
- renaming x86 to pineview and include it in x64 I guess?
@th0ma7 as you introduced the Edit: |
No, please not. The name pineview appears only in the toolchain file name. And the |
This will have to be revisited. In order for the modules to properly load it requires a perfect
I'll check if there is a way to compile the kernel and passing a |
I was hoping we would aim towards automating the kernel, gcc and glibc version by pulling it out from the source... But I know that kernel pre-3.something is not easy to reference (e.g. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You forgot to modify spksrc.tc.mk
in order to echo the new variables:
TC_KERNEL
TC_GCC
TC_GLIBC
Of all my diskstations only the 4.x kernels have the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch!
@ymartin59 @publicarray please have a look at this PR. As all toolchain makefiles are modified you might have additional ideas for future requirements, particularly related to DSM7. |
- build hi3535-6.1 (armv7l) - remove admv7-1.2 from build actions
- x86 (pineview) is for 64-bit atom cpu found in DS411 etc. - keep i686 as evansport is the only 32-bit intel (atom) cpu so far - remove LEGACY*_ARCHS definitions
- add variable TC_GCC containing the gcc version of toolchains - add variable TC_GLIBC containting the glibc version of toolchains - add missing TC_KERNEL variables to toolchains - use exact kernel version of toolchain (omit trailing +)
- diskstations models with ppc853x arch are end of life now - remove ppc853x-5.2 from github build action
50bef28
to
969067d
Compare
- enable hi3535 builds for golang
- followup of SynoCommunity#4320
- followup of SynoCommunity#4320
Just in case it's not obvious: to migrate to the singular toolchain and without redownloading them |
* framework: redesign arch handling - extract archs to spksrc.archs.mk - add x64-4.3 toolchain - rename AVAILABLE_ARCHS to AVAILABLE_TOOLCHAINS as it defines available arch-tc - remove GENERIC_ARCHS and ARM7 generic arch as we support generic armv7 - include spksrc.archs.mk instead of spksrc.common.mk for arch definitions - replace *_ARCHES by *_ARCHS and update all Makefiles for updated ARCHS definitions - define OLD_PCC_ARCHS and use for unsupported archs where applicable * adjust and enhance arch specific patch detection * use 1.2 as legacy version for SRM packages * add armv7-5.2 toolchain to enable legacy builds * take default TCVERSION independent of available versions for all-supported target * fix all-legacy builds - exclude generic archs from legacy - remove ARCHS_WITH_KERNEL_SUPPORT as it is the same as LEGACY_ARCHS * introduce DEPRECATED_ARCHS * rename spksrc/toolchains to spksrc/toolchain (open issue from SynoCommunity#4143) * use ARM family names for ARM*_ARCHS - add hi3535-6.1 (armv7l) to github build action - remove admv7-1.2 from build action - keep i686 as evansport is the only 32-bit intel (atom) cpu so far * remove non existing toolchain armada37xx-6.2 * add toolchain variables for gcc and glibc versions - add variable TC_GCC containing the gcc version of toolchains - add variable TC_GLIBC containting the glibc version of toolchains - add missing TC_KERNEL variables to toolchains - use exact kernel version of toolchain (omit trailing +) * add ppc853x to deprecated archs - diskstations models with ppc853x arch are end of life now - remove ppc853x-5.2 from github build action * cleanup for SynoCommunity#4307 * enable cross/libaom for qoriq * enable hi3535 builds for golang Co-authored-by: Vincent Fortier <th0ma7@users.noreply.github.com>
- followup of SynoCommunity#4320
Motivation: Improve the ARCH-TC handling and make it more readable
Linked issues: #4200, #4143
Checklist
all-supported
completed successfully-
make all-supported
restored to behave as before make all-supported and all-default #4200Remove the x86 toolchains as never used (was just a copy of x86_64 / pineview)make all-supported
withDEFAULT_TC=6.1
should build x64-6.1 and not x64-7.0)Remarks
mk/spksrc.archs.mk
so Makefiles need to include this file for arch specific rules only (beforespksrc.common.mk
had to be used)Wiki variables for review:
Results
make all-supported
├── work-88f6281-6.1
├── work-aarch64-6.1
├── work-armv7-6.1
├── work-evansport-6.1
├── work-hi3535-6.1
├── work-qoriq-6.1
└── work-x64-6.1
make all-legacy
├── work-88f6281-5.2
├── work-alpine-5.2
├── work-armada370-5.2
├── work-armada375-5.2
├── work-armada38x-5.2
├── work-armadaxp-5.2
├── work-avoton-5.2
├── work-braswell-5.2
├── work-bromolow-5.2
├── work-cedarview-5.2
├── work-comcerto2k-5.2
├── work-dakota-1.2
├── work-evansport-5.2
├── work-ipq806x-1.2
├── work-monaco-5.2
├── work-northstarplus-1.2
├── work-ppc853x-5.2
├── work-qoriq-5.2
└── work-x86-5.2
make all-latest
├── work-88f6281-6.2.3
├── work-aarch64-6.2.3
├── work-armv7-6.2.3
├── work-evansport-6.2.3
├── work-hi3535-6.2.3
├── work-qoriq-6.2.3
└── work-x64-6.2.3