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

[wip] gcc 4.9.4 package #4469

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Conversation

th0ma7
Copy link
Contributor

@th0ma7 th0ma7 commented Mar 4, 2021

Motivation: Intention is to provide an initial gcc package in hope of eventually providing a newer version of the full gcc suite. This provides other opportunities such as replacing entware gcc and ability to build perl bindings using cpan requiring a C compiler.
Linked issues:

Checklist

  • Build rule all-supported completed successfully
  • Package upgrade completed successfully
  • New installation of package completed successfully

Note that due to the large amount of resource files needing to be provided I've create a new PLIST.auto functionality. I allows using an empty PLIST.auto in cross/<package> where, when captured, the spksrc.plist.mk will look at files provided by $(WORK_DIR)/$(PACK_NAME).plist using file to determine its type and automatically create PLIST entries for it.

This should be quite useful for very large packages. Changes are in commit c303564

@th0ma7
Copy link
Contributor Author

th0ma7 commented Mar 4, 2021

@publicarray you might be interested by this as a starting point... Although road is quite long ahead.

My understanding is that (and feel free to let me know how off I may be):

  1. using this approach we could, in theory, now create a C compiler using host=x86_64 and target=$(TC_TARGET)
  2. using this new C compiler we should be able to create a full gcc suite to be used as a) target native package (e.g. enhance this package PR) and b) as host=x86_64 and target=$(TC_TARGET) set of compiler tools for subsequent steps.
  3. using the full gcc suite in host=x86_64 and target=$(TC_TARGET) we should now be able to build a newer version of gcc. Again, we might have to iterate steps 2 and 3 a few times to increase gcc versions to meet the minimal requirements as we progress towards the latest available gcc.

@hgy59
Copy link
Contributor

hgy59 commented Mar 4, 2021

This is a candidate for another synocli package synocli-dev (or synocli-devel or synocli-develop) as proposed in #3253.

@hgy59
Copy link
Contributor

hgy59 commented Mar 4, 2021

I was working on synocli-develop some time ago.
The progess was until

cross/bc cross/jq cross/binutils cross/make cross/bison cross/flex

but then I struggled with cross/glibc.

It would be awsome to have develop tools on the target devices. For some extreme situations it would allow to create native binaries directly on the devices.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Mar 5, 2021

@hgy59 that really is an excellent idea...

To get glibc going you most probably need the gcc part first.

I was thinking about the feasibility of creating a new dev mk helper in order to build updated toolchain (host=x86_64 and target=$(TC_TARGET)). Then use that to build the updated synocli-dev environment for target only environment.

@publicarray
Copy link
Member

Hi @th0ma7 thanks so much for your work on this. At the moment I'm focused on getting the .net packages (*arr) out the door, but will look at this after.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Mar 13, 2021

Hi @publicarray as an FYI I started preliminary work on recreating gcc cross-compiler. But I'm also working on getting the kernel module packages out of the door so hoping to resume work on this after.

@th0ma7 th0ma7 mentioned this pull request Sep 19, 2021
3 tasks
@th0ma7 th0ma7 mentioned this pull request Jun 21, 2022
10 tasks
@hgy59 hgy59 added the new-package PR/WIP for a new package label Apr 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants