├── .github ├── FUNDING.yml └── workflows │ ├── body-github-pre-releases-test.md │ ├── build-linux-arm64.yml │ ├── build-linux-x64.yml │ ├── build-win32-x64.yml │ ├── deep-clean.yml │ ├── publish-github-pages.yml │ ├── publish-release.yml │ ├── test-docker-linux-arm.yml │ ├── test-docker-linux-intel.yml │ ├── test-prime.yml │ ├── test-sourceforge-downloads.yml │ └── test-xpm.yml ├── .gitignore ├── .gitmodules ├── .npmignore ├── .vscode └── settings.json ├── CHANGELOG.md ├── LICENSE ├── NOTES.md ├── README.md ├── build-assets ├── README-DEVELOPER.md ├── maintenance-scripts │ └── download-sourceforge.sh ├── package-lock.json ├── package.json ├── patches │ └── README.md ├── scripts │ ├── README-OUT.md │ ├── VERSION │ ├── application.sh │ ├── build.sh │ ├── test.sh │ ├── tests │ │ ├── run.sh │ │ └── update.sh │ └── versioning.sh └── templates │ └── body-github-release-liquid.md ├── package-lock.json ├── package.json └── website ├── .gitignore ├── README.md ├── _xpack.github.io ├── _posts │ └── releases │ │ └── gcc │ │ ├── 2021-05-24-gcc-v8-5-0-1-released.md │ │ ├── 2021-10-20-gcc-v11-2-0-1-released.md │ │ ├── 2022-02-11-gcc-v11-2-0-3-released.md │ │ ├── 2022-05-31-gcc-v11-3-0-1-released.md │ │ ├── 2022-06-16-gcc-v12-1-0-1-released.md │ │ ├── 2022-08-30-gcc-v12-2-0-1-released.md │ │ ├── 2022-12-27-gcc-v12-2-0-2-released.md │ │ ├── 2023-08-31-gcc-v12-3-0-1-released.md │ │ ├── 2023-08-31-gcc-v13-2-0-1-released.md │ │ ├── 2023-12-05-gcc-v11-4-0-1-released.md │ │ ├── 2024-02-23-gcc-v11-4-0-2-released.md │ │ ├── 2024-02-24-gcc-v12-3-0-2-released.md │ │ ├── 2024-02-24-gcc-v13-2-0-2-released.md │ │ ├── 2024-05-31-gcc-v14-1-0-1-released.md │ │ ├── 2024-06-05-gcc-v13-3-0-1-released.md │ │ ├── 2024-06-26-gcc-v12-4-0-1-released.md │ │ └── 2024-07-22-gcc-v11-5-0-1-released.md └── pages │ └── gcc │ ├── faq.md │ ├── index.md │ ├── install.md │ ├── predefined-macros.md │ ├── releases.md │ ├── support.md │ └── tests │ ├── 11.5.0-1.md │ ├── 12.4.0-1.md │ ├── 13.3.0-1.md │ ├── 14.1.0-1.md │ └── README ├── authors.yml ├── babel.config.js ├── blog ├── 2021-05-24-gcc-v8-5-0-1-released.mdx ├── 2021-10-20-gcc-v11-2-0-1-released.mdx ├── 2022-02-11-gcc-v11-2-0-3-released.mdx ├── 2022-05-31-gcc-v11-3-0-1-released.mdx ├── 2022-06-16-gcc-v12-1-0-1-released.mdx ├── 2022-08-30-gcc-v12-2-0-1-released.mdx ├── 2022-12-27-gcc-v12-2-0-2-released.mdx ├── 2023-08-31-gcc-v12-3-0-1-released.mdx ├── 2023-08-31-gcc-v13-2-0-1-released.mdx ├── 2023-12-05-gcc-v11-4-0-1-released.mdx ├── 2024-02-23-gcc-v11-4-0-2-released.mdx ├── 2024-02-24-gcc-v12-3-0-2-released.mdx ├── 2024-02-24-gcc-v13-2-0-2-released.mdx ├── 2024-05-31-gcc-v14-1-0-1-released.mdx ├── 2024-06-05-gcc-v13-3-0-1-released.mdx ├── 2024-06-26-gcc-v12-4-0-1-released.mdx ├── 2024-07-22-gcc-v11-5-0-1-released.mdx ├── 2024-08-08-gcc-v14-2-0-1-released.mdx ├── 2024-09-18-web-site.mdx ├── 2025-02-12-gcc-v14-2-0-2-released.mdx ├── 2025-02-13-xbb.mdx ├── 2025-02-16-gcc-v13-3-0-2-released.mdx ├── 2025-02-17-gcc-v11-5-0-2-released.mdx ├── 2025-02-17-gcc-v12-4-0-2-released.mdx ├── _common │ ├── _deprecation-notices-glib-2.27.mdx │ ├── _deprecation-notices-glib-2.28.mdx │ ├── _download-analytics.mdx │ ├── _prerequisites-glib-2.27.mdx │ └── _prerequisites-glib-2.28.mdx ├── _macos-clt-16-issue.mdx ├── _templates │ ├── blog-post-release-part-1-liquid.mdx │ └── blog-post-release-part-2-liquid.mdx ├── authors.yml └── tags.yml ├── customFields.ts ├── docs ├── _common │ ├── _branches-details.mdx │ ├── _build-website-locally.mdx │ ├── _code-formatting.mdx │ ├── _continuous-integration.mdx │ ├── _gcc-release-schedule.mdx │ ├── _generate-top-commons.mdx │ ├── _generate-website-commons.mdx │ ├── _get-helper-sources-details.mdx │ ├── _get-project-sources.mdx │ ├── _manual-tests.mdx │ ├── _prepare-website.mdx │ ├── _prerequisites.mdx │ ├── _publish-website.mdx │ ├── _release-schedule-continuous.mdx │ ├── _start-local-web-server.mdx │ └── _xpm-clean-ups.mdx ├── _project │ ├── _development-durations.mdx │ ├── _documentation.mdx │ ├── _folders-hierarchies-linux.mdx │ ├── _folders-hierarchies-macos.mdx │ ├── _folders-hierarchies-windows.mdx │ ├── _github-actions-durations.mdx │ └── _release-schedule.mdx ├── developer │ ├── _common │ │ ├── _content.mdx │ │ ├── _platform-docker-section.mdx │ │ └── _platform-native-section.mdx │ ├── _project │ │ ├── _more.mdx │ │ └── _other-repositories.mdx │ └── index.mdx ├── faq │ ├── _common │ │ ├── _flatpack-snap.mdx │ │ └── _nixos.mdx │ ├── _project │ │ └── _content.mdx │ └── index.mdx ├── getting-started │ ├── _common │ │ ├── _benefits.mdx │ │ ├── _change-log.mdx │ │ ├── _content.mdx │ │ ├── _credits-mac-stadium.mdx │ │ ├── _details-reproducible-operations.mdx │ │ ├── _enjoyed-using.mdx │ │ ├── _features.mdx │ │ ├── _install-preamble.mdx │ │ ├── _license.mdx │ │ ├── _releases.mdx │ │ ├── _support-and-feedback.mdx │ │ ├── _user-developer-maintainer.mdx │ │ └── _what-are-xpm-packages.mdx │ ├── _project │ │ ├── _compatibility.mdx │ │ ├── _more-credits.mdx │ │ ├── _more-licenses.mdx │ │ ├── _other-benefits.mdx │ │ ├── _overview.mdx │ │ ├── _status.mdx │ │ └── _upgrade-notice.mdx │ └── index.mdx ├── install │ ├── _common │ │ ├── _automatic-install-quick-test.mdx │ │ ├── _content.mdx │ │ ├── _initialise-the-project.mdx │ │ ├── _installation-details.mdx │ │ ├── _manual-install-quick-test.mdx │ │ ├── _prerequisites.mdx │ │ ├── _reproducibility-and-dependencies.mdx │ │ ├── _uninstall.mdx │ │ └── _xpm-package-refresher.mdx │ ├── _project │ │ ├── _automatic-install-quick-test.mdx │ │ ├── _manual-install-quick-test.mdx │ │ ├── _miscellaneous.mdx │ │ └── _testing.mdx │ └── index.mdx ├── maintainer │ ├── _common │ │ ├── _analytics.mdx │ │ ├── _check-git.mdx │ │ ├── _ci-tests.mdx │ │ ├── _close-milestone.mdx │ │ ├── _close-open-issues.mdx │ │ ├── _content.mdx │ │ ├── _fix-open-issues.mdx │ │ ├── _gcc-check-upstream-release.mdx │ │ ├── _increase-version.mdx │ │ ├── _platform-docker-build.mdx │ │ ├── _platform-native-build.mdx │ │ ├── _prepare-new-blog-post.mdx │ │ ├── _prepare-release.mdx │ │ ├── _publish-release.mdx │ │ ├── _set-new-version.mdx │ │ ├── _share-on-twitter.mdx │ │ ├── _tag-npm-latest.mdx │ │ ├── _update-changelog.mdx │ │ ├── _update-main-branch.mdx │ │ └── _update-website-config.mdx │ ├── _functional-tests.mdx │ ├── _project │ │ ├── _check-upstream-release.mdx │ │ ├── _first-development-run.mdx │ │ ├── _first-production-run.mdx │ │ ├── _more-repos.mdx │ │ ├── _more-tests.mdx │ │ ├── _more.mdx │ │ ├── _patches.mdx │ │ ├── _share-custom.mdx │ │ └── _update-version-specific.mdx │ └── index.mdx ├── project │ ├── about │ │ ├── _common │ │ │ ├── _intro-primary.mdx │ │ │ ├── _intro-secondary.mdx │ │ │ ├── _the-author.mdx │ │ │ ├── _the-project-history.mdx │ │ │ ├── _the-project.mdx │ │ │ ├── _website-docusaurus-doxygen-template.mdx │ │ │ ├── _website-docusaurus-migration.mdx │ │ │ ├── _website-docusaurus-template.mdx │ │ │ └── _website-jekyll.mdx │ │ ├── _project │ │ │ ├── _more-intro.mdx │ │ │ └── _website.mdx │ │ └── index.mdx │ └── history │ │ ├── _common │ │ ├── History32bitDiscontinued │ │ │ └── index.tsx │ │ ├── HistoryAppleSiliconAdded │ │ │ └── index.tsx │ │ ├── HistoryArmLinuxAdded │ │ │ └── index.tsx │ │ ├── HistoryPlatformsAdded │ │ │ └── index.tsx │ │ ├── HistoryRenameXpack │ │ │ └── index.tsx │ │ ├── HistoryWindowsUcrt │ │ │ └── index.tsx │ │ ├── HistoryXpm │ │ │ └── index.tsx │ │ ├── HistoryZipAdded │ │ │ └── index.tsx │ │ ├── _history-gnu-arm-eclipse.mdx │ │ ├── _history-rename-xpack.mdx │ │ ├── _history-restructuring.mdx │ │ ├── _history-setup-discontinued.mdx │ │ └── _history-xbb-v5.mdx │ │ ├── _project │ │ └── _content.mdx │ │ └── index.mdx ├── releases │ └── index.mdx ├── support │ └── index.mdx ├── test │ └── index.mdx ├── tests │ ├── 11.5.0-1.md │ ├── 11.5.0-2.md │ ├── 12.4.0-1.md │ ├── 12.4.0-2.md │ ├── 13.3.0-1.md │ ├── 13.3.0-2.md │ ├── 14.1.0-1.md │ ├── 14.2.0-1.md │ ├── 14.2.0-2.md │ └── index.md └── user │ ├── _common │ ├── _content.mdx │ ├── _libraries-and-rpath.mdx │ └── _versioning.mdx │ ├── _project │ ├── _more.mdx │ ├── _use-in-testing.mdx │ └── _versioning.mdx │ ├── index.mdx │ └── predefined-macros │ └── index.mdx ├── docusaurus-config-redirects.ts ├── docusaurus.config.ts ├── doxygen └── .gitignore ├── package-lock.json ├── package.json ├── sidebar-docs-user-custom.js ├── sidebar-user.js ├── sidebars.ts ├── src ├── components │ ├── HeadTitle │ │ └── index.tsx │ ├── HomepageFeatures │ │ ├── FeatureItem.tsx │ │ ├── FeatureList.tsx │ │ ├── index.tsx │ │ └── styles.module.css │ ├── InstallWithCopy │ │ └── index.tsx │ ├── LinksVsForwarders │ │ └── index.tsx │ └── ReleasesList │ │ └── index.tsx ├── css │ └── custom.css ├── libs │ ├── customField.ts │ ├── dateYYYYMMDD.ts │ ├── isXpackSubversionDouble.js │ ├── versionMajor.js │ ├── versionMajor.ts │ ├── versionMinor.js │ └── versionMinor.ts ├── pages │ ├── index.module.css │ └── index.tsx └── plugins │ └── SelectReleasesPlugin.js ├── static ├── .gitignore ├── .nojekyll ├── favicons │ ├── apple-touch-icon.png │ ├── favicon-48x48.png │ ├── favicon.ico │ ├── favicon.svg │ ├── site.webmanifest │ ├── web-app-manifest-192x192.png │ └── web-app-manifest-512x512.png ├── img │ ├── README.md │ ├── apple-svgrepo-com-dark.svg │ ├── apple-svgrepo-com.svg │ ├── bulb-on-svgrepo-com-dark.svg │ ├── bulb-on-svgrepo-com.svg │ ├── check-badge.svg │ ├── components-256.png │ ├── download-icon.png │ ├── favicon.ico │ ├── globe.svg │ ├── linux-svgrepo-com-dark.svg │ ├── linux-svgrepo-com.svg │ ├── logo-256.png │ ├── mosaic.svg │ ├── pdf-24.png │ ├── sunrise-og-image.jpg │ ├── web-dark.svg │ ├── web-globe-dark.svg │ ├── web-globe.svg │ ├── web.svg │ ├── windows-svgrepo-com-dark.svg │ └── windows-svgrepo-com.svg └── robots.txt └── tsconfig.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: ilegeul 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 12 | polar: # Replace with a single Polar username 13 | buy_me_a_coffee: # Replace with a single Buy Me a Coffee username 14 | thanks_dev: # Replace with a single thanks.dev username 15 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 16 | -------------------------------------------------------------------------------- /.github/workflows/body-github-pre-releases-test.md: -------------------------------------------------------------------------------- 1 | Binaries that are expected to be fully functional, to be tested before publishing. 2 | 3 | Warning: Do not use them in production, since occasionally they may be broken. 4 | -------------------------------------------------------------------------------- /.github/workflows/test-sourceforge-downloads.yml: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # 3 | # This file is part of the xPack project (http://xpack.github.io). 4 | # Copyright (c) 2025 Liviu Ionescu. All rights reserved. 5 | # 6 | # Permission to use, copy, modify, and/or distribute this software 7 | # for any purpose is hereby granted, under the terms of the MIT license. 8 | # 9 | # If a copy of the license was not distributed with this file, it can 10 | # be obtained from https://opensource.org/licenses/MIT. 11 | # 12 | # ----------------------------------------------------------------------------- 13 | 14 | name: 'Test SourceForge downloads' 15 | 16 | on: 17 | schedule: 18 | - cron: '1 13 * * 6' # every Sunday 19 | workflow_dispatch: 20 | 21 | jobs: 22 | test: 23 | runs-on: ubuntu-latest 24 | steps: 25 | - name: Checkout 26 | uses: actions/checkout@v2 27 | with: 28 | repository: xpack-dev-tools/xbb-helper-xpack 29 | ref: 'xpack-development' 30 | 31 | - name: Show environment 32 | run: | 33 | ls -lLA 34 | env | sort | grep -E '^[^ \t]+=' 35 | 36 | - name: Run test 37 | run: | 38 | #!/usr/bin/env bash 39 | set -e 40 | 41 | # The script is in the xbb-helper-xpack repo. 42 | source maintenance-scripts/download-sourceforge-source.sh 43 | 44 | date 45 | 46 | # https://sourceforge.net/projects/gcc-xpack/files/ 47 | name="gcc" 48 | threshold=16383 # (50%) 49 | 50 | # 2025-no-darwin 51 | platforms="win32-x64,linux-x64,linux-arm64" 52 | 53 | download_sourceforge "${name}" "11.5.0-2" ${threshold} "${platforms}" 54 | download_sourceforge "${name}" "12.4.0-2" ${threshold} "${platforms}" 55 | download_sourceforge "${name}" "13.3.0-2" ${threshold} "${platforms}" 56 | download_sourceforge "${name}" "14.2.0-2" ${threshold} "${platforms}" 57 | 58 | # 2024-2022 59 | platforms="win32-x64,linux-x64,linux-arm64,linux-arm,darwin-x64,darwin-arm64" 60 | 61 | download_sourceforge "${name}" "14.1.0-1" ${threshold} "${platforms}" 62 | download_sourceforge "${name}" "13.2.0-2" ${threshold} "${platforms}" 63 | download_sourceforge "${name}" "12.3.0-2" ${threshold} "${platforms}" 64 | download_sourceforge "${name}" "11.4.0-2" ${threshold} "${platforms}" 65 | download_sourceforge "${name}" "12.2.0-2" ${threshold} "${platforms}" 66 | download_sourceforge "${name}" "11.3.0-1" ${threshold} "${platforms}" 67 | download_sourceforge "${name}" "11.2.0-3" ${threshold} "${platforms}" 68 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | 132 | # ----- custom ----- 133 | 134 | xpacks/ 135 | 136 | .tap 137 | 138 | cjs/ 139 | **/*.js.map 140 | **/*.d.ts 141 | **/*.d.ts.map 142 | 143 | # /docs/ 144 | 145 | tsconfig.tsbuildinfo 146 | 147 | tmp/ 148 | 149 | .vscode/c_cpp_properties.json 150 | 151 | build*/ 152 | !build-assets/ 153 | 154 | Thumbs.db 155 | .DS_Store 156 | 157 | tests/top 158 | 159 | website/.docusaurus 160 | website/build 161 | website/html 162 | 163 | # ----- end ----- 164 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/.gitmodules -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # https://docs.npmjs.com/files/package.json#files 2 | # Certain files are always included, regardless of settings: 3 | # - package.json 4 | # - README 5 | # - CHANGES / CHANGELOG / HISTORY 6 | # - LICENSE / LICENCE 7 | # - NOTICE 8 | # - The file in the "main" field 9 | # README, CHANGES, LICENSE & NOTICE can have any case and extension. 10 | # 11 | # Conversely, some files are always ignored: 12 | # - .git 13 | # - CVS 14 | # - .svn 15 | # - .hg 16 | # - .lock-wscript 17 | # - .wafpickle-N 18 | # - .*.swp 19 | # - .DS_Store 20 | # - ._* 21 | # - npm-debug.log 22 | # - .npmrc 23 | # - node_modules 24 | # - config.gypi 25 | # - *.orig 26 | # ----------------------------------------------------------------------------- 27 | # .gitignore is not automatically included, add relevant lines again. 28 | 29 | .DS_Store 30 | .git/ 31 | .github/ 32 | .gitignore 33 | .gitmodules 34 | .clang-* 35 | .cmake-format 36 | 37 | # npm pack archives 38 | /*.tgz 39 | 40 | # tap 41 | coverage/ 42 | tests/ 43 | .tap/ 44 | 45 | # nyc test coverage 46 | .nyc_output/ 47 | 48 | # VS Code 49 | .vscode/ 50 | 51 | # CI 52 | .travis.yml 53 | .appveyor.yml 54 | 55 | README-*.md 56 | LICENSE-* 57 | !LICENSE-XPACK 58 | !LICENSE-liquid 59 | CONTRIBUTING** 60 | NOTES.md 61 | 62 | *.ts 63 | lib/**/*.ts 64 | # The above removes all TypeScript including the .d.ts files. 65 | # Bring those later back. 66 | !*.d.ts 67 | !lib/*.d.ts 68 | 69 | **/tsconfig*.json 70 | typedoc.json 71 | tsconfig.tsbuildinfo 72 | src/ 73 | xpacks/ 74 | node_modules/ 75 | docs/ 76 | # /assets/ # keep it, xpm needs it. 77 | scripts/ 78 | website/ 79 | tmp/ 80 | patches/ 81 | pkgconfig/ 82 | ci/ 83 | example*/ 84 | test*/ 85 | build*/ 86 | docs/ 87 | build-assets/ 88 | wrappers/ 89 | extras/ 90 | inspiration/ 91 | 92 | #end 93 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.tabSize": 2, 3 | "editor.detectIndentation": false, 4 | "editor.stablePeek": true, 5 | "files.watcherExclude": { 6 | "**/.git/**": true, 7 | "**/node_modules/*/**": true, 8 | "**/build/**": true 9 | }, 10 | "markdownlint.config": { 11 | "MD041": false 12 | }, 13 | "spellright.language": [ 14 | "en_GB" 15 | ], 16 | "spellright.notificationClass": "warning", 17 | "cSpell.ignoreWords": [ 18 | "Ionescu", 19 | "Liviu", 20 | "MSYS2", 21 | "RPATH", 22 | "Somsubhra", 23 | "UCRT", 24 | "aarch", 25 | "armhf", 26 | "armv", 27 | "binutils", 28 | "caffeinate", 29 | "cleanall", 30 | "cleanlibs", 31 | "cleanups", 32 | "coffdump", 33 | "dlltool", 34 | "dllwrap", 35 | "dylib", 36 | "elfedit", 37 | "endraw", 38 | "filt", 39 | "gcore", 40 | "gcov", 41 | "gendef", 42 | "gfortran", 43 | "gprof", 44 | "ilegeul", 45 | "libasan", 46 | "libatomic", 47 | "libcc", 48 | "libexec", 49 | "libexpat", 50 | "libgcc", 51 | "libgfortran", 52 | "libgmp", 53 | "libgomp", 54 | "libiconv", 55 | "libisl", 56 | "libitm", 57 | "libmpc", 58 | "libmpfr", 59 | "libncursesw", 60 | "libquadmath", 61 | "libsanitizer", 62 | "libssp", 63 | "libstdc", 64 | "libsupc", 65 | "libubsan", 66 | "libz", 67 | "libzstd", 68 | "liquidjs", 69 | "loglevel", 70 | "multilib", 71 | "nonshared", 72 | "npmignore", 73 | "npmjs", 74 | "objcopy", 75 | "objdump", 76 | "patchelf", 77 | "postversion", 78 | "preinit", 79 | "ranlib", 80 | "readelf", 81 | "runpath", 82 | "srconv", 83 | "sysdump", 84 | "userdel", 85 | "widl", 86 | "windmc", 87 | "windres", 88 | "wksi", 89 | "workdir", 90 | "writable", 91 | "xattr", 92 | "xbbla", 93 | "xbbli", 94 | "xbbma", 95 | "xbbmi", 96 | "xpack", 97 | "xpacks" 98 | ] 99 | } 100 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Liviu Ionescu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /NOTES.md: -------------------------------------------------------------------------------- 1 | # NOTES 2 | 3 | ## GCC 11 on macOS 14 4 | 5 | /Users/ilg/Work/xpack-dev-tools-build/gcc-11.4.0-2/darwin-x64/sources/gdb-13.2/missing: line 81: makeinfo: command not found 6 | WARNING: 'makeinfo' is missing on your system. 7 | You should only need it if you modified a '.texi' file, or 8 | any other file indirectly affecting the aspect of the manual. 9 | You might want to install the Texinfo package: 10 | 11 | The spurious makeinfo call might also be the consequence of 12 | using a buggy 'make' (AIX, DU, IRIX), in which case you might 13 | want to install GNU make: 14 | 15 | make[2]: *** [doc/bfd.info] Error 127 16 | make[1]: *** [info-recursive] Error 1 17 | make: *** [all-bfd] Error 2 18 | make: *** Waiting for unfinished jobs.... 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![GitHub package.json version](https://img.shields.io/github/package-json/v/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/package.json) 2 | [![GitHub release (latest by date)](https://img.shields.io/github/v/release/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/releases) 3 | [![NPM Version](https://img.shields.io/npm/v/@xpack-dev-tools/gcc?color=blue)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 4 | [![license](https://img.shields.io/github/license/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/LICENSE) 5 | 6 | # The xPack GCC 7 | 8 | A standalone, cross-platform (Windows, GNU/Linux) binary 9 | distribution of GCC, 10 | intended for reproducible builds. 11 | 12 | ## Project documentation 13 | 14 | For information on how to install and use this project, please refer to the 15 | [project website](https://xpack-dev-tools.github.io/gcc-xpack/). 16 | 17 | ## Project source 18 | 19 | The source code of the current release is available on 20 | [GitHub tag v14.2.0-2.1 tree](https://github.com/xpack-dev-tools/gcc-xpack/tree/v14.2.0-2.1). 21 | 22 | ## License 23 | 24 | Unless otherwise stated, the original content is released under the terms of the 25 | [MIT License](https://opensource.org/licenses/MIT), 26 | with all rights reserved to 27 | [Liviu Ionescu](https://github.com/ilg-ul). 28 | -------------------------------------------------------------------------------- /build-assets/README-DEVELOPER.md: -------------------------------------------------------------------------------- 1 | # Developer info 2 | 3 | ## Static libraries on RedHat & SUSE 4 | 5 | RedHat & SUSE require explicit install of static libraries, they 6 | do not come with the common development packages. 7 | 8 | ``` 9 | docker run -it redhat/ubi8 10 | docker run -it fedora:37 11 | 12 | yum update --assumeyes 13 | yum install --assumeyes git curl tar gzip redhat-lsb-core binutils which 14 | yum install --assumeyes gcc-c++ gcc-c++ glibc glibc-common glibc-static libstdc++ libstdc++-static libatomic libgfortran 15 | yum install --assumeyes libgcc*i686 libstdc++*i686 glibc*i686 libatomic*i686 libgfortran*i686 16 | 17 | docker run -it opensuse/leap:15.4 18 | 19 | zypper --no-gpg-checks update --no-confirm 20 | zypper --no-gpg-checks install --no-confirm git-core curl tar gzip lsb-release binutils findutils util-linux 21 | zypper --no-gpg-checks install --no-confirm gcc-c++ glibc glibc-devel-static 22 | zypper --no-gpg-checks install --no-confirm gcc-32bit gcc-c++-32bit glibc-devel-32bit glibc-devel-static-32bit 23 | 24 | find / -name 'libstdc++*' 25 | 26 | cat <<__EOF__ >hello.cpp 27 | #include 28 | 29 | int 30 | main(int argc, char* argv[]) 31 | { 32 | std::cout << "Hello" << std::endl; 33 | 34 | return 0; 35 | } 36 | __EOF__ 37 | 38 | 39 | g++ hello.cpp -o hello -v 40 | ldd -v hello 41 | 42 | g++ hello.cpp -o sl-hello -static-libstdc++ -static-libgcc -v -Wl,-v,-t 43 | ldd -v sl-hello 44 | 45 | g++ hello.cpp -o s-hello -static -v -Wl,-v,-t 46 | ldd -v s-hello 47 | 48 | 49 | g++ hello.cpp -o hello-32 -v -m32 50 | ldd -v hello-32 51 | 52 | g++ hello.cpp -o sl-hello-32 -static-libstdc++ -static-libgcc -v -Wl,-v,-t -m32 53 | ldd -v sl-hello-32 54 | 55 | g++ hello.cpp -o s-hello-32 -static -v -Wl,-v,-t -m32 56 | ldd -v s-hello-32 57 | ``` 58 | 59 | ## Buggy Apple linker in macos-14 60 | 61 | The default Xcode that comes with macos-14 is buggy: 62 | 63 | ```console 64 | [/Users/runner/work/gcc-xpack/gcc-xpack/build/darwin-arm64/aarch64-apple-darwin23.5.0/tests/gcc-xpack/xpacks/.bin/g++ simple-exception.cpp -o simple-exception] 65 | 0 0x102c7b648 __assert_rtn + 72 66 | 1 0x102baffac ld::AtomPlacement::findAtom(unsigned char, unsigned long long, ld::AtomPlacement::AtomLoc const*&, long long&) const + 1204 67 | 2 0x102bc5924 ld::InputFiles::SliceParser::parseObjectFile(mach_o::Header const*) const + 15164 68 | 3 0x102bd2e30 ld::InputFiles::parseAllFiles(void (ld::AtomFile const*) block_pointer)::$_7::operator()(unsigned long, ld::FileInfo const&) const + 420 69 | 4 0x19c4b6428 _dispatch_client_callout2 + 20 70 | 5 0x19c4ca850 _dispatch_apply_invoke3 + 336 71 | 6 0x19c4b63e8 _dispatch_client_callout + 20 72 | 7 0x19c4b7c68 _dispatch_once_callout + 32 73 | 8 0x19c4caeec _dispatch_apply_invoke_and_wait + 372 74 | 9 0x19c4c9e9c _dispatch_apply_with_attr_f + 1212 75 | 10 0x19c4ca08c dispatch_apply + 96 76 | 11 0x102c4d3b8 ld::AtomFileConsolidator::parseFiles(bool) + 292 77 | 12 0x102bee170 main + 9048 78 | ld: Assertion failed: (resultIndex < sectData.atoms.size()), function findAtom, file Relocations.cpp, line 1336. 79 | collect2: error: ld returned 1 exit status 80 | ``` 81 | 82 | The solution is to switch to a newer one: 83 | 84 | ```sh 85 | sudo xcode-select --switch /Applications/Xcode_15.4.app 86 | ``` 87 | 88 | - 89 | -------------------------------------------------------------------------------- /build-assets/maintenance-scripts/download-sourceforge.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # ----------------------------------------------------------------------------- 3 | # DO NOT EDIT! 4 | # Automatically generated from npm-packages-helper/templates/*. 5 | # 6 | # This file is part of the xPack project (http://xpack.github.io). 7 | # Copyright (c) 2020 Liviu Ionescu. All rights reserved. 8 | # 9 | # Permission to use, copy, modify, and/or distribute this software 10 | # for any purpose is hereby granted, under the terms of the MIT license. 11 | # 12 | # If a copy of the license was not distributed with this file, it can 13 | # be obtained from https://opensource.org/licenses/MIT. 14 | # 15 | # ----------------------------------------------------------------------------- 16 | 17 | # ----------------------------------------------------------------------------- 18 | # Safety settings (see https://gist.github.com/ilg-ul/383869cbb01f61a51c4d). 19 | 20 | if [[ ! -z ${DEBUG} ]] 21 | then 22 | set ${DEBUG} # Activate the expand mode if DEBUG is anything but empty. 23 | else 24 | DEBUG="" 25 | fi 26 | 27 | set -o errexit # Exit if command failed. 28 | set -o pipefail # Exit if pipe failed. 29 | set -o nounset # Exit if variable not set. 30 | 31 | # Remove the initial space and instead use '\n'. 32 | IFS=$'\n\t' 33 | 34 | # ----------------------------------------------------------------------------- 35 | # Identify the script location, to reach, for example, the helper scripts. 36 | 37 | script_path="$0" 38 | if [[ "${script_path}" != /* ]] 39 | then 40 | # Make relative path absolute. 41 | script_path="$(pwd)/$0" 42 | fi 43 | 44 | script_name="$(basename "${script_path}")" 45 | 46 | script_folder_path="$(dirname "${script_path}")" 47 | script_folder_name="$(basename "${script_folder_path}")" 48 | 49 | # ============================================================================= 50 | 51 | argv="$@" 52 | 53 | helper_folder_path="$(dirname ${script_folder_path})/xpacks/@xpack-dev-tools/xbb-helper" 54 | 55 | source "${helper_folder_path}/maintainance-scripts/download-sourceforge-source.sh" 56 | 57 | # ----------------------------------------------------------------------------- 58 | 59 | # Redefine to skip macOS binaries. 60 | function download_sourceforge_2025() 61 | { 62 | local name="$1" 63 | local version="$2" 64 | local threshold=$3 65 | 66 | download_sourceforge_one "${name}" "${version}" "win32-x64" ${threshold} 67 | download_sourceforge_one "${name}" "${version}" "linux-x64" ${threshold} 68 | download_sourceforge_one "${name}" "${version}" "linux-arm64" ${threshold} 69 | } 70 | 71 | # ----------------------------------------------------------------------------- 72 | 73 | percentage=50 74 | threshold=$(( 32767 * ( 100 - percentage ) / 100 )) 75 | # echo "Threshold: ${threshold}" 76 | 77 | download_sourceforge_2025 "gcc" "14.2.0-1" ${threshold} 78 | download_sourceforge_2025 "gcc" "13.3.0-1" ${threshold} 79 | download_sourceforge_2025 "gcc" "12.4.0-1" ${threshold} 80 | download_sourceforge_2025 "gcc" "11.5.0-1" ${threshold} 81 | 82 | rm -rf "${HOME}/tmp/sourceforge" 83 | 84 | echo 85 | echo "Done." 86 | 87 | # ----------------------------------------------------------------------------- 88 | 89 | -------------------------------------------------------------------------------- /build-assets/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "build-assets", 3 | "version": "0.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "build-assets", 9 | "version": "0.0.0", 10 | "devDependencies": { 11 | "liquidjs": "^10.20.1" 12 | } 13 | }, 14 | "node_modules/commander": { 15 | "version": "10.0.1", 16 | "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", 17 | "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", 18 | "dev": true, 19 | "license": "MIT", 20 | "engines": { 21 | "node": ">=14" 22 | } 23 | }, 24 | "node_modules/liquidjs": { 25 | "version": "10.20.3", 26 | "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.20.3.tgz", 27 | "integrity": "sha512-lSrPyIKT/ft0BJuZsz+QaWLclj4LY0v8X11K/VDTze4MrHGUedXSn3xuLL1MssBuaA49tNI+ZGI72fRpYSTLFg==", 28 | "dev": true, 29 | "license": "MIT", 30 | "dependencies": { 31 | "commander": "^10.0.0" 32 | }, 33 | "bin": { 34 | "liquid": "bin/liquid.js", 35 | "liquidjs": "bin/liquid.js" 36 | }, 37 | "engines": { 38 | "node": ">=14" 39 | }, 40 | "funding": { 41 | "type": "opencollective", 42 | "url": "https://opencollective.com/liquidjs" 43 | } 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /build-assets/patches/README.md: -------------------------------------------------------------------------------- 1 | # Patches 2 | 3 | Moved to the helper project. 4 | 5 | Always use Iain's branches for macOS builds. 6 | -------------------------------------------------------------------------------- /build-assets/scripts/README-OUT.md: -------------------------------------------------------------------------------- 1 | # The xPack GNU Compiler Collection (GCC) 2 | 3 | **The xPack GNU Compiler Collection** is the **xPack** version of 4 | the **GNU Compiler Collection**, an open source project. 5 | 6 | For more details, please read the corresponding release pages: 7 | 8 | - 9 | - 10 | 11 | Thank you for using open source software, 12 | 13 | Liviu Ionescu 14 | -------------------------------------------------------------------------------- /build-assets/scripts/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0-2 2 | -------------------------------------------------------------------------------- /build-assets/scripts/application.sh: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # 3 | # This file is part of the xPack project (http://xpack.github.io). 4 | # Copyright (c) 2020 Liviu Ionescu. All rights reserved. 5 | # 6 | # Permission to use, copy, modify, and/or distribute this software 7 | # for any purpose is hereby granted, under the terms of the MIT license. 8 | # 9 | # If a copy of the license was not distributed with this file, it can 10 | # be obtained from https://opensource.org/licenses/MIT. 11 | # 12 | # ----------------------------------------------------------------------------- 13 | 14 | # ----------------------------------------------------------------------------- 15 | # Application specific definitions. Included with source. 16 | 17 | # Used to display the application name in branding strings. 18 | XBB_APPLICATION_NAME=${XBB_APPLICATION_NAME:-"GCC"} 19 | 20 | # Used as part of file/folder paths. 21 | XBB_APPLICATION_LOWER_CASE_NAME=${XBB_APPLICATION_LOWER_CASE_NAME:-"gcc"} 22 | 23 | XBB_APPLICATION_DISTRO_NAME=${XBB_APPLICATION_DISTRO_NAME:-"xPack"} 24 | XBB_APPLICATION_DISTRO_LOWER_CASE_NAME=${XBB_APPLICATION_DISTRO_LOWER_CASE_NAME:-"xpack"} 25 | XBB_APPLICATION_DISTRO_TOP_FOLDER=${XBB_APPLICATION_DISTRO_TOP_FOLDER:-"xPacks"} 26 | 27 | XBB_APPLICATION_DESCRIPTION="${XBB_APPLICATION_DISTRO_NAME} ${XBB_APPLICATION_NAME}" 28 | 29 | declare -a XBB_APPLICATION_DEPENDENCIES=( ) 30 | declare -a XBB_APPLICATION_COMMON_DEPENDENCIES=( libunistring libffi gc libtool guile autogen libiconv zlib gmp mpfr mpc isl zstd ncurses expat xz binutils gcc-mingw mingw gcc gdb ) 31 | 32 | XBB_APPLICATION_HAS_FLEX_PACKAGE="y" 33 | 34 | # XBB_APPLICATION_BOOTSTRAP_ONLY="y" 35 | 36 | # To download from the dedicated git branch instead of the released archive. 37 | # XBB_APPLICATION_TEST_PRERELEASE="y" 38 | 39 | # XBB_APPLICATION_ENABLE_GCC_CHECK="y" 40 | 41 | # Skip using MACOSX_DEPLOYMENT_TARGET on the 42 | # development machine which uses a very new CLT. 43 | XBB_APPLICATION_SKIP_MACOSX_DEPLOYMENT_TARGET="y" 44 | 45 | # Since the toolchain is used only in the bootstrap stage, on macOS 46 | # the toolchain library path is added only to `--with-stage1-ldflags`. 47 | XBB_APPLICATION_SKIP_MACOS_TOOLCHAIN_LIBRARY_PATHS="y" 48 | 49 | # XBB_APPLICATION_USE_GCC_FOR_GCC_ON_MACOS="y" 50 | 51 | # https://learn.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt 52 | # Windows 7 53 | XBB_APPLICATION_WIN32_WINNT="0x0601" 54 | 55 | # ----------------------------------------------------------------------------- 56 | 57 | XBB_GITHUB_ORG="${XBB_GITHUB_ORG:-"xpack-dev-tools"}" 58 | XBB_GITHUB_REPO="${XBB_GITHUB_REPO:-"${XBB_APPLICATION_LOWER_CASE_NAME}-xpack"}" 59 | XBB_GITHUB_PRE_RELEASES="${XBB_GITHUB_PRE_RELEASES:-"pre-releases"}" 60 | 61 | XBB_NPM_PACKAGE="${XBB_NPM_PACKAGE:-"@xpack-dev-tools/${XBB_APPLICATION_LOWER_CASE_NAME}@${XBB_NPM_PACKAGE_VERSION:-"next"}"}" 62 | 63 | # ----------------------------------------------------------------------------- 64 | -------------------------------------------------------------------------------- /build-assets/scripts/tests/run.sh: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # 3 | # This file is part of the xPack project (http://xpack.github.io). 4 | # Copyright (c) 2020 Liviu Ionescu. All rights reserved. 5 | # 6 | # Permission to use, copy, modify, and/or distribute this software 7 | # for any purpose is hereby granted, under the terms of the MIT license. 8 | # 9 | # If a copy of the license was not distributed with this file, it can 10 | # be obtained from https://opensource.org/licenses/MIT. 11 | # 12 | # ----------------------------------------------------------------------------- 13 | 14 | # ----------------------------------------------------------------------------- 15 | 16 | function tests_run_all() 17 | { 18 | echo 19 | echo "[${FUNCNAME[0]} $@]" 20 | 21 | local test_bin_path="$1" 22 | 23 | # Call the functions defined in the build code. 24 | if [ "${XBB_HOST_PLATFORM}" != "darwin" ] 25 | then 26 | binutils_test "${test_bin_path}" 27 | fi 28 | 29 | gcc_test "${test_bin_path}" 30 | 31 | if [ "${XBB_HOST_PLATFORM}" != "darwin" ] 32 | then 33 | gdb_test "${test_bin_path}" 34 | fi 35 | } 36 | 37 | # ----------------------------------------------------------------------------- 38 | -------------------------------------------------------------------------------- /build-assets/scripts/tests/update.sh: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------- 2 | # 3 | # This file is part of the xPack project (http://xpack.github.io). 4 | # Copyright (c) 2020 Liviu Ionescu. All rights reserved. 5 | # 6 | # Permission to use, copy, modify, and/or distribute this software 7 | # for any purpose is hereby granted, under the terms of the MIT license. 8 | # 9 | # If a copy of the license was not distributed with this file, it can 10 | # be obtained from https://opensource.org/licenses/MIT. 11 | # 12 | # ----------------------------------------------------------------------------- 13 | 14 | # ----------------------------------------------------------------------------- 15 | 16 | function tests_update_system() 17 | { 18 | echo 19 | echo "[${FUNCNAME[0]} $@]" 20 | 21 | local image_name="$1" 22 | 23 | # Make sure that the minimum prerequisites are met. 24 | if [[ ${image_name} == github-actions-ubuntu* ]] 25 | then 26 | : 27 | elif [[ ${image_name} == *ubuntu* ]] || [[ ${image_name} == *debian* ]] 28 | then 29 | : 30 | elif [[ ${image_name} == *raspbian* ]] 31 | then 32 | : export XBB_SKIP_32_BIT_TESTS="y" 33 | elif [[ ${image_name} == *centos* ]] || [[ ${image_name} == *redhat* ]] || [[ ${image_name} == *fedora* ]] 34 | then 35 | : # export XBB_SKIP_32_BIT_TESTS="y" 36 | elif [[ ${image_name} == *suse* ]] 37 | then 38 | : # export XBB_SKIP_32_BIT_TESTS="y" 39 | elif [[ ${image_name} == *manjaro* ]] 40 | then 41 | export XBB_SKIP_32_BIT_TESTS="y" 42 | elif [[ ${image_name} == *archlinux* ]] 43 | then 44 | export XBB_SKIP_32_BIT_TESTS="y" 45 | else 46 | export XBB_SKIP_32_BIT_TESTS="y" 47 | fi 48 | 49 | # echo 50 | # echo "The system C/C++ libraries..." 51 | # find /usr/lib* /lib -name 'libc.*' -o -name 'libstdc++.*' -o -name 'libgcc_s.*' -name 'libm.*' 52 | } 53 | 54 | # ----------------------------------------------------------------------------- 55 | -------------------------------------------------------------------------------- /build-assets/templates/body-github-release-liquid.md: -------------------------------------------------------------------------------- 1 | ![Github Releases (by Release)](https://img.shields.io/github/downloads/xpack-dev-tools/gcc-xpack/v{{releaseVersion}}/total.svg) 2 | 3 | TODO: select one 4 | 5 | Version **{{releaseVersion}}** is a maintenance release of the **xPack GCC** package; it updates to the latest upstream master. 6 | 7 | Version **{{releaseVersion}}** is a new release of the **xPack GCC** package, following the official GNU GCC [release](https://gcc.gnu.org/releases.html). 8 | 9 | [Continue reading »](will-be-updated-shortly) 10 | 11 | _At this moment the binaries are provided for tests only!_ 12 | -------------------------------------------------------------------------------- /website/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Generated files 8 | .docusaurus 9 | .cache-loader 10 | 11 | # Misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | -------------------------------------------------------------------------------- /website/README.md: -------------------------------------------------------------------------------- 1 | # Website 2 | 3 | This website is built using [Docusaurus](https://docusaurus.io/), 4 | a modern static website generator. 5 | 6 | The folder was created with: 7 | 8 | ```sh 9 | npx create-docusaurus website classic --typescript 10 | ``` 11 | -------------------------------------------------------------------------------- /website/_xpack.github.io/pages/gcc/faq.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: The xPack GNU Compiler Collection Frequently Asked Questions 4 | permalink: /dev-tools/gcc/faq/ 5 | 6 | comments: true 7 | toc: false 8 | 9 | date: 2021-05-22 00:27:00 +0300 10 | 11 | redirect_to: https://xpack-dev-tools.github.io/gcc-xpack/docs/faq/ 12 | 13 | --- 14 | 15 |
16 | 17 | {% capture question_10 %} 18 | Warum? 19 | {% endcapture %} 20 | 21 | {% capture answer_10 %} 22 | Darum! ;-) (to be added) 23 | {% endcapture %} 24 | 25 | {% include div-panel-group.html %} 26 | {% include faq-panel.html id="collapse-10" question=question_10 answer=answer_10 %} 27 | {% include div-end.html %} 28 | -------------------------------------------------------------------------------- /website/_xpack.github.io/pages/gcc/releases.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: The xPack GNU Compiler Collection releases 4 | permalink: /dev-tools/gcc/releases/ 5 | 6 | search: exclude 7 | github_editme: false 8 | 9 | comments: false 10 | toc: false 11 | 12 | date: 2021-05-22 00:27:00 +0300 13 | 14 | redirect_to: https://xpack-dev-tools.github.io/gcc-xpack/docs/releases/ 15 | 16 | --- 17 | 18 | ___ 19 | {% for post in site.posts %}{% if post.categories contains "releases" %}{% if post.categories contains "gcc" %} 20 | * [{{ post.title }}]({{ site.baseurl }}{{ post.url }}) [(download)]({{ post.download_url }}){% endif %}{% endif %}{% endfor %} 21 | -------------------------------------------------------------------------------- /website/_xpack.github.io/pages/gcc/support.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: How to get help for xPack GNU Compiler Collection 4 | permalink: /dev-tools/gcc/support/ 5 | 6 | comments: true 7 | 8 | date: 2021-05-22 00:27:00 +0300 9 | 10 | redirect_to: https://xpack-dev-tools.github.io/gcc-xpack/docs/support/ 11 | 12 | --- 13 | 14 | ## Quicklinks 15 | 16 | The quick answer is to use the GitHub 17 | [Discussions](https://github.com/xpack-dev-tools/gcc-xpack/discussions/). 18 | 19 | ## Check the documentation 20 | 21 | The original GNU GCC documentation is available 22 | [online](https://gcc.gnu.org/onlinedocs/). 23 | 24 | ## Check the FAQ 25 | 26 | Check the [FAQ]({{ site.baseurl }}/gcc/faq/) 27 | for similar problems. 28 | 29 | ## Check the GitHub Discussions 30 | 31 | Check the GitHub [Discussions](https://github.com/xpack-dev-tools/gcc-xpack/discussions/) for 32 | similar problems. 33 | 34 | ## Check the GitHub Issues 35 | 36 | Check the GitHub 37 | [Issues](https://github.com/xpack-dev-tools/gcc-xpack/issues/) 38 | tracker for similar problems. 39 | 40 | ## Ask questions in GitHub Discussions 41 | 42 | If you still could not find a solution, if you have interesting use 43 | cases, if you have custom configurations, and generally if you have 44 | any experience that you want to share with others, use the GitHub 45 | [Discussions](https://github.com/xpack-dev-tools/gcc-xpack/discussions/), 46 | and enter a **New discussion** in the **Q&A** category. 47 | 48 | ## Register a new support ticket only if necessary 49 | 50 | If you are convinced that you identified a bug (if you have doubts, 51 | use the GitHub Discussions), 52 | or you have a pertinent suggestion how to enhance the **xPack GNU Compiler Collection** 53 | distribution, register a **New Issue** in the GitHub 54 | [Issues](https://github.com/xpack-dev-tools/gcc-xpack/issues/) 55 | tracker. 56 | 57 | {% include tip.html content="**DO NOT** use the GitHub Issues tracker 58 | for questions and support, **use the GitHub Discussions**." %} 59 | 60 | ## Use of private e-mail 61 | 62 | {% include important.html content="Please, please, please: **do not use 63 | private e-mail** for support, **use the GitHub 64 | [Discussions](https://github.com/xpack-dev-tools/gcc-xpack/discussions/)**." %} 65 | 66 | Sending private messages will be automatically replied with 67 | a link to this page. 68 | The reason for this rude behaviour is simply an attempt to use 69 | the time more efficiently; since discussions are archived, other people 70 | having similar problems might benefit from the answers. 71 | -------------------------------------------------------------------------------- /website/_xpack.github.io/pages/gcc/tests/README: -------------------------------------------------------------------------------- 1 | # README 2 | 3 | ## Trigger xpm tests for various versions 4 | 5 | ```bash 6 | bash xpacks/@xpack-dev-tools/xbb-helper/github-actions/trigger-workflow-test-xpm.sh --package-version 14.1.0-1.1 7 | ``` 8 | 9 | The results are in the artefacts associated to tests: 10 | 11 | - 12 | -------------------------------------------------------------------------------- /website/authors.yml: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT! 2 | # Automatically generated from xbb-helper/templates/docusaurus/common. 3 | 4 | ilg-ul: 5 | name: Liviu Ionescu (ilg) 6 | email: ilg@livius.net 7 | url: https://github.com/ilg-ul 8 | image_url: https://github.com/ilg-ul.png 9 | page: true 10 | socials: 11 | x: ilegeul 12 | github: ilg-ul 13 | linkedin: https://www.linkedin.com/in/liviu-ionescu/ 14 | wordpress: https://ilgthegeek.wordpress.com 15 | -------------------------------------------------------------------------------- /website/babel.config.js: -------------------------------------------------------------------------------- 1 | // DO NOT EDIT! 2 | // Automatically generated from docusaurus-template-liquid/templates/docusaurus. 3 | 4 | module.exports = { 5 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 6 | }; 7 | -------------------------------------------------------------------------------- /website/blog/2024-09-18-web-site.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: The project has a new web site 3 | seo_title: New web site 4 | description: The new site is built with Docusaurus. 5 | keywords: 6 | - xpack 7 | - gcc 8 | - website 9 | 10 | date: 2024-09-18 13:21:00 +0300 11 | 12 | authors: ilg-ul 13 | 14 | tags: 15 | - web 16 | 17 | --- 18 | 19 | import {PageMetadata} from '@docusaurus/theme-common'; 20 | 21 | After some experimentation with modern site generators, 22 | the **xPack GCC** project has a new web site. 23 | 24 | 25 | 26 | 27 | 28 | ## MDX 29 | 30 | The _new kid on the block_ is [MDX](https://mdxjs.com), that is a solution 31 | to integrate [JSX](https://react.dev/learn/writing-markup-with-jsx) with 32 | markdown. 33 | 34 | The result is a static site (kind of), enhanced with lots of JavaScript 35 | code, specific to [React](https://react.dev) components. 36 | 37 | ## Docusaurus 38 | 39 | The tool used to generate the site is [Docusaurus](https://docusaurus.io), 40 | a highly successful open source project. 41 | 42 | ## Minimal README 43 | 44 | The content of the `README.md` file was migrated to the 45 | [Getting Started](/docs/getting-started/) page 46 | -------------------------------------------------------------------------------- /website/blog/2025-02-13-xbb.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: The project was upgraded to use XBB v6.0.0 7 | seo_title: Upgrade to XBB v6.0.0 8 | description: The project was upgraded to use XBB v6.0.0 based on Debian 10 and macOS 11.0. 9 | keywords: 10 | - xpack 11 | - gcc 12 | - website 13 | 14 | date: 2025-02-13 13:21:00 +0300 15 | 16 | authors: ilg-ul 17 | 18 | tags: 19 | - xbb 20 | 21 | --- 22 | 23 | import {PageMetadata} from '@docusaurus/theme-common'; 24 | 25 | The project configuration was upgraded to use **XBB v6.0.0** based 26 | on **Debian 10** and **macOS 11** 27 | and **support for Arm 32-bit was discontinued**. 28 | 29 | Therefore, all future builds will use XBB v6.0.0 or later. 30 | 31 | 32 | 33 | 34 | 35 | ## GLIBC 2.28 36 | 37 | The GNU/Linux base was raised to GLIBC 2.28, with builds performed on **Debian 10**. 38 | The resulting binaries should run on Ubuntu 20 or later, RedHat 8 or later, 39 | Fedora 29 or later, etc. 40 | 41 | ## MacOS 11.0 42 | 43 | The macOS base was raised to 11.0, with builds performed on** macOS 11.7** with 44 | `MACOSX_DEPLOYMENT_TARGET="11.0"`. The resulting binaries, both x64 and arm64, 45 | should run on any macOS 11 or later. 46 | 47 | ## Support for Arm 32-bit discontinued 48 | 49 | With regret for the inconvenience caused to some Raspberry Pi users, 50 | due to the extremely high burdon on maintenance (toolchain builds took 51 | more than half a day), support for Arm 32-bit GNU/Linux had to be discontinued. 52 | 53 | This allowed all arm64 GNU/Linux builds to be performed on the Oracle Ampere 54 | machine, which is many times faster than the Raspberry Pi 4 machines. 55 | 56 | ## Website updates 57 | 58 | The website was also updated to reflect the new changes, and references to 59 | **arm GNU/Linux**, **linux-arm** and **xbbla32** were removed. 60 | -------------------------------------------------------------------------------- /website/blog/_common/_deprecation-notices-glib-2.27.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Deprecation notices 7 | 8 | ### GNU/Linux minimum requirements 9 | 10 | The minimum requirement is **GLIBC 2.27**, available starting 11 | with Ubuntu 18, Debian 10 and RedHat 8. 12 | Support for RedHat 7 was dropped in 2022. 13 | 14 | ### 32-bit support 15 | 16 | Support for 32-bit x86 GNU/Linux and x86 Windows was 17 | dropped in 2022. 18 | 19 | ### Pre-deprecation notice for 32-bit Arm GNU/Linux 20 | 21 | Due to the large user base of 32-bit Raspberry Pi systems, 22 | support for 32-bit Arm GNU/Linux (armv7l) will be preserved 23 | for a little while, but expect it to be dropped by 2025, 24 | so it is recommended to consider an upgrade to a RPi 4 or 5 with 25 | at least 4 GB (preferably 8 GB) of RAM. 26 | 27 | ## Pre-deprecation notice for Ubuntu 18.04 28 | 29 | Ubuntu 18.04 LTS _Bionic Beaver_ reached the end of the standard five-year 30 | maintenance window for Long-Term Support (LTS) release on 31 May 2023. 31 | 32 | As a courtesy, the xPack GNU/Linux releases will continue to be based on 33 | Ubuntu 18.04 for another year. 34 | 35 | From 2025 onwards, the GNU/Linux binaries will be built on **Debian 10**, 36 | (**GLIBC 2.28**), and are also expected to run on RedHat 8. 37 | 38 | Users are urged to update their build and test infrastructure to 39 | ensure a smooth transition to the next xPack releases. 40 | -------------------------------------------------------------------------------- /website/blog/_common/_deprecation-notices-glib-2.28.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Deprecation notices 7 | 8 | ### GNU/Linux minimum requirements 9 | 10 | The minimum requirement is **GLIBC 2.28**, available starting 11 | with Ubuntu 20, Debian 10 and RedHat 8. 12 | Support for RedHat 7 was dropped in 2022. 13 | Support for Ubuntu 18 was dropped in 2025. 14 | 15 | ### 32-bit support 16 | 17 | Support for 32-bit x86 GNU/Linux and x86 Windows was 18 | dropped in 2022 and for 32-bit Arm GNU/Linux in 2025. 19 | -------------------------------------------------------------------------------- /website/blog/_common/_download-analytics.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Image from '@theme/IdealImage'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | ## Analytics 9 | 10 | 11 | - GitHub [xpack-dev-tools/gcc-xpack](https://github.com/xpack-dev-tools/gcc-xpack/) 12 | - this release Github Release 13 | - all xPack releases [![Github All Releases](https://img.shields.io/github/downloads/xpack-dev-tools/gcc-xpack/total)](https://github.com/xpack-dev-tools/gcc-xpack/releases) 14 | - [individual file counters](https://somsubhra.github.io/github-release-stats/?username=xpack-dev-tools&repository=gcc-xpack) (grouped by release) 15 | - npmjs.com [@xpack-dev-tools/gcc](https://www.npmjs.com/package/@xpack-dev-tools/gcc) 16 | - last month downloads [![NPM Downloads](https://img.shields.io/npm/dm/%40xpack-dev-tools%2Fgcc?color=green)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 17 | - total downloads [![NPM Downloads](https://img.shields.io/npm/d18m/%40xpack-dev-tools%2Fgcc?color=green)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 18 | 19 | Credit to [Shields IO](https://shields.io) for the badges and to 20 | [Somsubhra/github-release-stats](https://github.com/Somsubhra/github-release-stats) 21 | for the individual file counters. 22 | -------------------------------------------------------------------------------- /website/blog/_common/_prerequisites-glib-2.27.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Prerequisites 7 | 8 | - x64 Windows: Windows 7 with the Universal C Runtime 9 | ([UCRT](https://support.microsoft.com/en-us/topic/update-for-universal-c-runtime-in-windows-c0514201-7fe6-95a3-b0a5-287930f3560c)), 10 | Windows 8, Windows 10, Windows 11 11 | - x64 GNU/Linux: any system with **GLIBC 2.27** or higher 12 | (like Ubuntu 18 or later, Debian 10 or later, RedHat 8 or later, 13 | Fedora 29 or later, etc) 14 | - arm64/arm GNU/Linux: any system with **GLIBC 2.27** or higher 15 | (like Raspberry Pi OS, Ubuntu 18 or later, Debian 10 or later, 16 | RedHat 8 or later, Fedora 29 or later, etc) 17 | -------------------------------------------------------------------------------- /website/blog/_common/_prerequisites-glib-2.28.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Prerequisites 7 | 8 | - x64 Windows: Windows 7 with the Universal C Runtime 9 | ([UCRT](https://support.microsoft.com/en-us/topic/update-for-universal-c-runtime-in-windows-c0514201-7fe6-95a3-b0a5-287930f3560c)), 10 | Windows 8, Windows 10, Windows 11 11 | - x64 GNU/Linux: any system with **GLIBC 2.28** or higher 12 | (like Ubuntu 20 or later, Debian 10 or later, RedHat 8 or later, 13 | Fedora 29 or later, etc) 14 | - arm64 GNU/Linux: any system with **GLIBC 2.28** or higher 15 | (like Raspberry Pi OS, Ubuntu 20 or later, Debian 10 or later, 16 | RedHat 8 or later, Fedora 29 or later, etc) 17 | -------------------------------------------------------------------------------- /website/blog/_macos-clt-16-issue.mdx: -------------------------------------------------------------------------------- 1 | 2 | :::caution 3 | 4 | Recent macOS SDK (Xcode/CLT 16) introduced an incompatibility in the 5 | standard C header files and compilation ends with errors like: 6 | 7 | ``` 8 | .../include-fixed/stdio.h:80:14: error: expected ';' before 'extern' 9 | ``` 10 | 11 | The error is also encountered when running tests with GitHub Actions, 12 | since the `macos` runners were already upgraded to CLT 16. 13 | 14 | ::: 15 | -------------------------------------------------------------------------------- /website/blog/_templates/blog-post-release-part-2-liquid.mdx: -------------------------------------------------------------------------------- 1 | 2 | ## Folders hierarchy 3 | 4 | After install, the package creates a hierarchy of folders like the following 5 | (only the first two depth levels are shown): 6 | 7 | {%- assign platforms_array = platforms | split: "," %} 8 | 9 | {%- assign names_array = "" | split: "" %} 10 | 11 | {%- for platform in platforms_array %} 12 | {%- case platform %} 13 | {%- when "win32-x64" %} 14 | {%- assign names_array = names_array | concat: "Windows" %} 15 | {%- when "darwin-x64", "darwin-arm64" %} 16 | {%- assign names_array = names_array | concat: "macOS" %} 17 | {%- when "linux-x64", "linux-arm64", "linux-arm" %} 18 | {%- assign names_array = names_array | concat: "GNU/Linux" %} 19 | {%- endcase %} 20 | {%- endfor %} 21 | 22 | {%- assign names_array = names_array | uniq %} 23 | 24 | 25 | 26 | {%- for name in names_array %} 27 | {%- case name %} 28 | {%- when "Windows" %} 29 | 30 | 31 | 32 | { 33 | `C:\> tree /f %USERPROFILE%\\AppData\\Roaming\\xPacks\\@{{packageScope}}\\{{packageName}}\\${frontMatter.version}.${frontMatter.npm_subversion}\\.content 34 | Folder PATH listing 35 | Volume serial number is B02D-925C 36 | ├── README.md 37 | ├── bin 38 | TODO 39 | `} 40 | 41 | 42 | 43 | {%- when "macOS" %} 44 | 45 | 46 | 47 | { 48 | `$ tree -L 2 ~/Library/xPacks/\{{packageScopedName}}/${frontMatter.version}.${frontMatter.npm_subversion}/.content/ 49 | /Users/ilg/Library/xPacks/\{{packageScopedName}}/${frontMatter.version}.${frontMatter.npm_subversion}/.content/ 50 | ├── README.md 51 | ├── bin 52 | TODO 53 | `} 54 | 55 | 56 | 57 | {%- when "GNU/Linux" %} 58 | 59 | 60 | 61 | { 62 | `$ tree -L 2 ~/.local/xPacks/\{{packageScopedName}}/${frontMatter.version}.${frontMatter.npm_subversion}/.content/ 63 | /home/ilg/.local/xPacks/\{{packageScopedName}}/${frontMatter.version}.${frontMatter.npm_subversion}/.content/ 64 | ├── README.md 65 | ├── bin 66 | TODO 67 | `} 68 | 69 | 70 | 71 | {%- endcase %} 72 | {%- endfor %} 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /website/blog/authors.yml: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT! 2 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 3 | 4 | ilg-ul: 5 | name: Liviu Ionescu (ilg) 6 | email: ilg@livius.net 7 | url: https://github.com/ilg-ul 8 | image_url: https://github.com/ilg-ul.png 9 | page: true 10 | socials: 11 | x: ilegeul 12 | github: ilg-ul 13 | linkedin: https://www.linkedin.com/in/liviu-ionescu/ 14 | wordpress: https://ilgthegeek.wordpress.com 15 | -------------------------------------------------------------------------------- /website/blog/tags.yml: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT! 2 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 3 | 4 | releases: 5 | 6 | web: 7 | 8 | xbb: 9 | -------------------------------------------------------------------------------- /website/customFields.ts: -------------------------------------------------------------------------------- 1 | // DO NOT EDIT! 2 | // Automatically generated from docusaurus-template-liquid/templates/docusaurus. 3 | 4 | import { fileURLToPath } from 'node:url'; 5 | import path from 'node:path'; 6 | import fs from 'node:fs'; 7 | 8 | // ---------------------------------------------------------------------------- 9 | 10 | export function getCustomFields() { 11 | const pwd = fileURLToPath(import.meta.url); 12 | // console.log(pwd); 13 | 14 | // First get the version from the top package.json. 15 | const topFilePath = path.join(path.dirname(path.dirname(pwd)), 'package.json'); 16 | // console.log(filePath); 17 | const topFileContent = fs.readFileSync(topFilePath); 18 | 19 | const topPackageJson = JSON.parse(topFileContent.toString()); 20 | const packageVersion = topPackageJson.version; 21 | // Remove the pre used during development. 22 | const releaseVersion = packageVersion.replace(/[.-]pre.*/, ''); 23 | // Remove the pre-release. 24 | const releaseSemver = releaseVersion.replace(/[-].*$/, ''); 25 | 26 | let upstreamVersion = releaseSemver; 27 | 28 | let versionFields = { 29 | packageVersion, 30 | releaseVersion, 31 | releaseSemver, 32 | upstreamVersion, 33 | } 34 | 35 | console.log(`package version: ${topPackageJson.version}`); 36 | 37 | if (topPackageJson.xpack && !releaseVersion.startsWith('0.0.0')) { 38 | 39 | // Remove the first part, up to the last dot. 40 | const npmSubversion = releaseVersion.replace(/^.*[.]/, ''); 41 | 42 | // Remove from the last dot to the end. 43 | const xpackVersion = releaseVersion.replace(/[.][0-9]*$/, ''); 44 | 45 | // Remove the first part, up to the dash. 46 | const xpackSubversion = xpackVersion.replace(/^.*[-]/, ''); 47 | 48 | versionFields = { 49 | ...versionFields, 50 | xpackVersion, 51 | xpackSubversion, 52 | npmSubversion, 53 | } 54 | } 55 | 56 | let engineVersionFields; 57 | 58 | if (topPackageJson?.engines?.node) { 59 | const enginesNodeVersion = topPackageJson.engines.node.replace(/[^0-9]*/, '') || ''; 60 | const enginesNodeVersionMajor = enginesNodeVersion.replace(/[.].*/, ''); 61 | engineVersionFields = { 62 | enginesNodeVersion, 63 | enginesNodeVersionMajor 64 | } 65 | } else { 66 | engineVersionFields = {}; 67 | } 68 | 69 | const docusaurusFields = { 70 | docusaurusVersion: require('@docusaurus/core/package.json').version, 71 | buildTime: new Date().getTime(), 72 | } 73 | 74 | let websiteFields = {}; 75 | try { 76 | const websiteFilePath = path.join(path.dirname(path.dirname(pwd)), 'website', 'package.json'); 77 | // console.log(filePath); 78 | const websiteFileContent = fs.readFileSync(websiteFilePath); 79 | const websitePackageJson = JSON.parse(websiteFileContent.toString()); 80 | websiteFields = websitePackageJson?.websiteConfig?.customFields ?? {}; 81 | } catch (error) { 82 | // Most probably there is no website/package.json. 83 | } 84 | 85 | return { 86 | ...versionFields, 87 | ...engineVersionFields, 88 | ...docusaurusFields, 89 | ...websiteFields, 90 | } 91 | } 92 | 93 | // ---------------------------------------------------------------------------- 94 | -------------------------------------------------------------------------------- /website/docs/_common/_branches-details.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 |
7 | Branches 8 | 9 | The project uses multiple branches: 10 | 11 | - `master`, not actively used 12 | - `xpack`, with the latest stable version (default) 13 | - `xpack-development`, with the current development version 14 | - `website`, with the current content of the website; pushes to this branch automatically trigger publishes the main website 15 | - `development`, with the current content of the preview website; pushes to this branch automatically trigger publishes the preview website 16 | 17 | All development is done in the `xpack-development` branch, and contributions via 18 | Pull Requests should be directed to this branch. 19 | 20 | When new releases are published, the `xpack-development` branch is merged 21 | into `xpack`. 22 | 23 |
24 | -------------------------------------------------------------------------------- /website/docs/_common/_build-website-locally.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Build the static website locally 7 | 8 | Validate the website content in a local build via the npm **build** script: 9 | 10 | ```sh 11 | npm run build -C website 12 | ``` 13 | 14 | Fix any broken links, if any. 15 | -------------------------------------------------------------------------------- /website/docs/_common/_code-formatting.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Code formatting 7 | 8 | As formatting style, the library uses a 9 | [.clang-format](https://clang.llvm.org/docs/ClangFormat.html) 10 | configuration file based on the GNU style. 11 | 12 | Code formatting is done using `clang-format --style=file`, either manually 13 | from a script, or automatically from Visual Studio Code, or the Eclipse 14 | CppStyle plug-in. 15 | 16 | :::info 17 | 18 | Visual Studio Code can directly utilise the `.clang-format` file in the 19 | **Format Document** command. 20 | 21 | ::: 22 | 23 | :::tip 24 | 25 | Always reformat the source files that were changed before committing 26 | them to the repository. 27 | 28 | ::: 29 | -------------------------------------------------------------------------------- /website/docs/_common/_continuous-integration.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | The library is 7 | CI tested on every push via 8 | [GitHub Actions](https://github.com/xpack-dev-tools/gcc-xpack/actions), 9 | on Ubuntu, macOS, and Windows. 10 | 11 | The tests run on 32 and 64-bit bare-metal platforms (Arm Cortex-M0, 12 | Cortex-M3, Cortex-M4F, Cortex-M7F, Cortex-A15, Cortex-A72, RISC-V RV32IMAC, 13 | RV64IMAFDC), and natively, with GCC and LLVM/clang. 14 | -------------------------------------------------------------------------------- /website/docs/_common/_gcc-release-schedule.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import versionMajor from '@site/src/libs/versionMajor'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | ## Release schedule 9 | 10 | This distribution generally follows the official 11 | [GCC release](https://gcc.gnu.org/releases.html) timeline. 12 | 13 | For each major version there are 2 releases, like **{versionMajor()}.1** 14 | in the first part of the year (tentatively April-May) and 15 | **{versionMajor()}.2** in the second part 16 | (tentatively in August-September). 17 | 18 | Previous versions are maintained for 3 more years, and, around midyear, 19 | GNU releases updates for the previous 3 versions, 20 | (like **{versionMajor() - 1}.3**, **{versionMajor() - 2}.4**, **{versionMajor() - 3}.5**). 21 | -------------------------------------------------------------------------------- /website/docs/_common/_generate-top-commons.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Generate the top commons 7 | 8 | Run the top **generate-top-commons** npm script to update the 9 | `build-assets/package.json` and the GitHub workflow files. 10 | 11 | ```sh 12 | (cd ~/Work/xpack-dev-tools/gcc-xpack.git; npm run generate-top-commons) 13 | ``` 14 | 15 | ### Commit the top changes 16 | 17 | - stage GitHub workflows and `package.json` files (top and from `build-assets`) 18 | - **commit** with the message _**re-generate top commons to bump deps**_ 19 | -------------------------------------------------------------------------------- /website/docs/_common/_generate-website-commons.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Update the website commons 7 | 8 | Run the **generate-website-commons** npm script from `website/package.json` 9 | in the project folder. 10 | 11 | ```sh 12 | npm run generate-website-commons -C website 13 | ``` 14 | -------------------------------------------------------------------------------- /website/docs/_common/_get-helper-sources-details.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 |
9 | Get the writable helper sources (optional, for development purposes) 10 | 11 | The project has a dependency to a common helper, that is normally installed 12 | as a read-only dependency; for development purposes, to be able to make 13 | changes to the scripts located inside the helper, clone the 14 | {props.helperBranchName} branch and link it to the 15 | user's global xPacks store: 16 | 17 | { 18 | `rm -rf ~/Work/${props.helperOrganizationName}/${props.helperProjectName}.git && \\ 19 | mkdir -p ~/Work/${props.helperOrganizationName} && \\ 20 | git clone \\ 21 | \ --branch ${props.helperBranchName} \\ 22 | \ https://github.com/${props.helperOrganizationName}/${props.helperProjectName}.git \\ 23 | \ ~/Work/${props.helperOrganizationName}/${props.helperProjectName}.git \ 24 | `} 25 | 26 | Or, if the repo was already cloned: 27 | 28 | { 29 | `git -C ~/Work/${props.helperOrganizationName}/${props.helperProjectName}.git pull 30 | `} 31 | 32 | If a writable instance of this library is needed in another project, 33 | add a link from the user's global xPacks store to it: 34 | 35 | { 36 | `xpm link -C ~/Work/${props.helperOrganizationName}/${props.helperProjectName}.git 37 | `} 38 | 39 |
40 | -------------------------------------------------------------------------------- /website/docs/_common/_get-project-sources.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import BranchesDetails from './_branches-details.mdx' 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | ## Get project sources 9 | 10 | The project is hosted on GitHub: 11 | 12 | - https://github.com/xpack-dev-tools/gcc-xpack.git 13 | 14 | 15 | 16 | To clone the stable branch (`xpack`), run the following commands in a 17 | terminal (on Windows use the _Git Bash_ console): 18 | 19 | ```sh 20 | rm -rf ~/Work/xpack-dev-tools/gcc-xpack.git && \ 21 | mkdir -p ~/Work/xpack-dev-tools && \ 22 | git clone \ 23 | --branch xpack \ 24 | https://github.com/xpack-dev-tools/gcc-xpack.git \ 25 | ~/Work/xpack-dev-tools/gcc-xpack.git 26 | ``` 27 | 28 |
29 | For development purposes, clone the `xpack-development` branch. 30 | 31 | ```sh 32 | rm -rf ~/Work/xpack-dev-tools/gcc-xpack.git && \ 33 | mkdir -p ~/Work/xpack-dev-tools && \ 34 | git clone \ 35 | --branch xpack-development \ 36 | https://github.com/xpack-dev-tools/gcc-xpack.git \ 37 | ~/Work/xpack-dev-tools/gcc-xpack.git 38 | ``` 39 | 40 |
41 | 42 | Or, if the repo was already cloned: 43 | 44 | ```sh 45 | git -C ~/Work/xpack-dev-tools/gcc-xpack.git pull 46 | ``` 47 | 48 | :::tip 49 | 50 | To contribute Pull Requests, fork the project and be sure the **Copy the master branch only** is **disabled**. 51 | 52 | Use the `xpack-development` branch and be sure you contribute the 53 | Pull Requests back to the `xpack-development` branch. 54 | 55 | ::: 56 | 57 | ## Add links for development 58 | 59 | During development, it is convenient to have a writable instance of the 60 | library to make changes in parallel with the parent project. 61 | 62 | To facilitate the use of a writable instance of this library in other 63 | projects, add a link from the user's global xPacks store to this local 64 | development folder: 65 | 66 | ```sh 67 | xpm link -C ~/Work/xpack-dev-tools/gcc-xpack.git 68 | ``` 69 | 70 | And in the projects referring it: 71 | 72 | ```sh 73 | xpm link @xpack-dev-tools/gcc 74 | ``` 75 | 76 | -------------------------------------------------------------------------------- /website/docs/_common/_manual-tests.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CommonXpmCleanUps from '@site/docs/_common/_xpm-clean-ups.mdx'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | ### Manual tests 9 | 10 | There are predefined xpm actions available to manually run various 11 | tests on the local development machine. 12 | 13 | It is recommended to begin by performing some clean-ups (not necessary 14 | after the initial `git clone`): 15 | 16 | ```sh 17 | npm install -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 18 | xpm run deep-clean -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 19 | ``` 20 | 21 | :::tip 22 | 23 | During the initial run, the installation step may take a considerable 24 | amount of time, as it needs to download the toolchain archives, which 25 | can be relatively large, up to several hundred megabytes. 26 | 27 | ::: 28 | 29 | To run the tests with the system compiler (usually not available on Windows): 30 | 31 | ```sh 32 | xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 33 | xpm run test -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 34 | ``` 35 | 36 | To run a selection of tests with the latest versions of toolchains: 37 | 38 | ```sh 39 | xpm run install-selected -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 40 | xpm run test-selected -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 41 | ``` 42 | 43 | To run all tests with the latest versions of toolchains: 44 | 45 | ```sh 46 | xpm run install-latest -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 47 | xpm run test-latest -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 48 | ``` 49 | 50 | To run all tests with all toolchain versions: 51 | 52 | ```sh 53 | xpm run install-all -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 54 | xpm run test-all -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 55 | ``` 56 | 57 | ### Clean-ups 58 | 59 | Running all tests may require several gigabytes of space. 60 | 61 | To clean up the tests folder, use: 62 | 63 | ```sh 64 | npm install -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 65 | xpm run deep-clean -C ~/Work/xpack-dev-tools/gcc-xpack.git/tests 66 | ``` 67 | 68 | A considerable amount of space may also be used by the toolchains. 69 | When no longer needed, they can be removed with `xpm uninstall`. 70 | 71 |
72 | xpm clean-ups 73 | 74 | 75 | 76 |
77 | -------------------------------------------------------------------------------- /website/docs/_common/_prepare-website.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Prepare the website 7 | 8 | The documentation site is built with [Docusaurus](https://docusaurus.io) and 9 | published in the project 10 | [GitHub Pages](https://xpack-dev-tools.github.io/gcc-xpack/). 11 | 12 | - switch to the `xpack-development` branch 13 | - run the **website-generate-commons** npm script in the `website/package.json` 14 | ```sh 15 | npm run website-generate-commons -C website 16 | ``` 17 | - **commit** all changes 18 | -------------------------------------------------------------------------------- /website/docs/_common/_prerequisites.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | ## Prerequisites 9 | 10 | **@xpack-dev-tools/gcc** is 11 | a portable Node.js module; 12 | development can be 13 | carried out on macOS, GNU/Linux and even Windows (although some npm scripts 14 | must be executed in a Git Bash terminal). 15 | 16 | The prerequisites are: 17 | 18 | - git 19 | - node >= {props.nodeVersion || 'N.N.N'} 20 | - npm 21 | 22 | 23 | To ensure compatibility with older node, preferably revert to an older one: 24 | 25 | { 26 | `nvm use --lts ${props.nodeVersionMajor || 'NN'} 27 | code 28 | `} 29 | -------------------------------------------------------------------------------- /website/docs/_common/_publish-website.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Publish the website 7 | 8 | The website deployment is performed automatically when pushing to the 9 | `website` branch, by a dedicated workflow in 10 | [GitHub Actions](https://github.com/xpack-dev-tools/gcc-xpack/actions/workflows/publish-github-pages.yml). 11 | 12 | - open https://xpack-dev-tools.github.io/gcc-xpack/docs/maintainer/#publish-the-website in a separate window 13 | - stop the local web server 14 | - switch to the `website` branch 15 | - **merge** the `xpack-development` branch into the `website` branch 16 | - **push** the `website` branch to GitHub 17 | :::info 18 | At this moment an automated GitHub Action will generate and publish the website. 19 | ::: 20 | - checkout the `xpack-development` branch 21 | - wait for the publish to complete 22 | - refresh the web page 23 | - the new release blog post is 24 | in https://xpack-dev-tools.github.io/gcc-xpack/blog/ 25 | - remember the post URL, since it must be used to update the release page 26 | and the X/Twitter announcement 27 | 28 | The `website` branch may be subsequently updated, as long as the 29 | version in `package.json` is not changed. 30 | 31 | Check the result at https://xpack-dev-tools.github.io/gcc-xpack/. 32 | -------------------------------------------------------------------------------- /website/docs/_common/_release-schedule-continuous.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Release schedule 7 | 8 | There are no scheduled releases; the project adheres to a **continuous 9 | release** approach, with updates deployed as development progresses. 10 | -------------------------------------------------------------------------------- /website/docs/_common/_start-local-web-server.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Start the local web server 7 | 8 | Execute the npm script **clean** then **start** in the website sub-project, 9 | or run the following in the project folder: 10 | 11 | ```sh 12 | npm run clean -C website 13 | npm run start -C website 14 | ``` 15 | 16 | Navigate to the **Maintainer Info** page, 17 | the **[Start the local web server](http://localhost:3000/gcc-xpack/docs/maintainer/#start-the-local-web-server)** section. 18 | -------------------------------------------------------------------------------- /website/docs/_common/_xpm-clean-ups.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Tabs from '@theme/Tabs'; 5 | import TabItem from '@theme/TabItem'; 6 | 7 | {/* ------------------------------------------------------------------------ */} 8 | 9 | For a thorough clean-up, please note that **xpm** uses only two folders: 10 | 11 | 12 | 13 | 14 | 15 | - `%APPDATA%\Roaming\xPacks` 16 | - `%APPDATA%\Local\Caches\xPacks` 17 | 18 | 19 | 20 | 21 | 22 | - `${HOME}/.local/xPacks` 23 | - `${HOME}/.cache/xPacks` 24 | 25 | 26 | 27 | 28 | 29 | They can be removed at any time and space reclaimed; 30 | **xpm** will recreate them on new installs. 31 | 32 | However, projects linking to the user's global xPacks store will fail with 33 | broken paths. 34 | -------------------------------------------------------------------------------- /website/docs/_project/_development-durations.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | {/* Below 5 minutes use "Several TODO minutes later" */} 5 | export const developmentDurations = { 6 | "work": "about TODO minutes", 7 | "darwin-x64": "About TODO minutes later", 8 | "darwin-arm64": "About TODO minutes later", 9 | "linux-x64": "About 52 minutes later", 10 | "win32-x64": "About 85 minutes (1h25m) later", 11 | "linux-arm64": "About 101 minutes (1h41m) later", 12 | "linux-arm": "About TODO minutes later", 13 | } 14 | -------------------------------------------------------------------------------- /website/docs/_project/_documentation.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | The original GCC documentation is available from 5 | the project web site: 6 | 7 | - https://gcc.gnu.org/onlinedocs/ 8 | -------------------------------------------------------------------------------- /website/docs/_project/_folders-hierarchies-macos.mdx: -------------------------------------------------------------------------------- 1 | import CodeBlock from '@theme/CodeBlock'; 2 | 3 | import customField from '@site/src/libs/customField'; 4 | 5 | {/* ------------------------------------------------------------------------ */} 6 | 7 | { 8 | `$ tree -L 2 ~/Library/xPacks/\@xpack-dev-tools/gcc/${ customField('releaseVersion') }.${ customField('npmSubversion') }/.content/ 9 | /Users/ilg/Library/xPacks/\@xpack-dev-tools/gcc/${ customField('releaseVersion') }.${ customField('npmSubversion') }/.content/ 10 | TODO 11 | `} 12 | -------------------------------------------------------------------------------- /website/docs/_project/_github-actions-durations.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | The builds take almost 2 hours to complete: 5 | 6 | - `linux-x64`: 1h8m (amd) 7 | - `win32-x64`: 1h45m (amd) 8 | - `linux-arm64`: 1h48m (ampere) 9 | -------------------------------------------------------------------------------- /website/docs/_project/_release-schedule.mdx: -------------------------------------------------------------------------------- 1 | 2 | import GccReleaseSchedule from '../_common/_gcc-release-schedule.mdx'; 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | 7 | -------------------------------------------------------------------------------- /website/docs/developer/_common/_platform-docker-section.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | import {developmentDurations} from '@site/docs/_project/_development-durations.mdx'; 7 | 8 | {/* ------------------------------------------------------------------------ */} 9 | 10 | {/* Arguments: props.platform */} 11 | 12 | {props.platform === "win32-x64" ? (

The Windows builds run on GNU/Linux, using mingw-w64.

) : ''} 13 | 14 | To prepare the docker build: 15 | 16 | { 17 | `xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 18 | xpm run docker-prepare --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 19 | `} 20 | 21 |
22 | ... or, with the writable helper ... 23 | 24 | { 25 | `xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 26 | xpm run link-deps -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 27 | xpm run docker-prepare --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 28 | xpm run docker-link-deps --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 29 | `} 30 | 31 |
32 | 33 | To run the docker build: 34 | 35 | { 36 | `xpm run docker-build --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 37 | `} 38 | 39 | or, for more verbosity, run the similar development build: 40 | 41 | { 42 | `xpm run docker-build-development --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 43 | `} 44 | 45 | {developmentDurations[ props.platform ]}, the output of the build script is a compressed 46 | archive and its SHA signature, created in 47 | the build-assets/build/{props.platform}/deploy folder: 48 | 49 | - xpack-gcc-14.2.0-2-{props.platform}.tar.gz 50 | - xpack-gcc-14.2.0-2-{props.platform}.tar.gz.sha 51 | 52 | To rerun the build, invoke the **deep-clean** action and repeat from install: 53 | 54 | { 55 | `xpm run deep-clean --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 56 | `} 57 | -------------------------------------------------------------------------------- /website/docs/developer/_common/_platform-native-section.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | import {developmentDurations} from '@site/docs/_project/_development-durations.mdx'; 7 | 8 | {/* ------------------------------------------------------------------------ */} 9 | 10 | {/* Arguments: props.platform */} 11 | 12 | To prepare the native build: 13 | 14 | { 15 | `xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 16 | xpm install --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 17 | `} 18 | 19 |
20 | ... or, with the writable helper ... 21 | 22 | { 23 | `xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 24 | xpm run link-deps -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 25 | xpm install --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 26 | `} 27 | 28 |
29 | 30 | To run the native build: 31 | 32 | { 33 | `xpm run build --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 34 | `} 35 | 36 | or, for more verbosity, run the similar development build: 37 | 38 | { 39 | `xpm run build-development --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 40 | `} 41 | 42 | {developmentDurations[ props.platform ]}, the output of the build script is a compressed 43 | archive and its SHA signature, created in 44 | the build-assets/build/{props.platform}/deploy folder: 45 | 46 | - xpack-gcc-14.2.0-2-{props.platform}.tar.gz 47 | - xpack-gcc-14.2.0-2-{props.platform}.tar.gz.sha 48 | 49 | To rerun the build, invoke the **deep-clean** action and repeat from install: 50 | 51 | { 52 | `xpm run deep-clean --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 53 | `} 54 | -------------------------------------------------------------------------------- /website/docs/developer/_project/_more.mdx: -------------------------------------------------------------------------------- 1 | 2 | import CodeBlock from '@theme/CodeBlock'; 3 | 4 | import customField from '@site/src/libs/customField'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | -------------------------------------------------------------------------------- /website/docs/developer/_project/_other-repositories.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | ## Other repositories 5 | 6 | Other repositories in use are: 7 | 8 | - none 9 | -------------------------------------------------------------------------------- /website/docs/developer/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: Contributor's Guide 7 | description: Guidance for developers aiming to contribute new features or bug fixes, detailing how to build the binaries, including prerequisites, repositories utilised, and scripts. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - prerequisites 12 | - repositories 13 | - build 14 | 15 | date: 2024-10-25 13:10:00 +0300 16 | 17 | --- 18 | 19 | import CommonContent from './_common/_content.mdx'; 20 | 21 | {/* ------------------------------------------------------------------------ */} 22 | 23 | # How to contribute to the xPack GCC 24 | 25 | [![GitHub package.json version](https://img.shields.io/github/package-json/v/xpack-dev-tools/gcc-xpack?color=blue)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/package.json) 26 | [![NPM Version](https://img.shields.io/npm/v/%40xpack-dev-tools%2Fgcc?color=blue)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 27 | [![license](https://img.shields.io/github/license/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/LICENSE) 28 | [![GitHub issues](https://img.shields.io/github/issues/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/issues) 29 | [![GitHub pulls](https://img.shields.io/github/issues-pr/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/pulls/) 30 | [![license](https://img.shields.io/github/license/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/LICENSE) 31 | 32 | This page is designed for developers who plan to contribute new features 33 | or fix bugs in the 34 | **xPack GCC** 35 | project and provides documentation on how to build and test the package. 36 | 37 | 38 | -------------------------------------------------------------------------------- /website/docs/faq/_common/_flatpack-snap.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Link from '@docusaurus/Link'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 |
9 | Flatpack & Snap also promise universal packages, why not use them? 10 | 11 | The short answer is… _“because they run only on GNU/Linux”_. 12 | 13 | Both [Flatpack](https://flatpak.org) and [Snap](https://snapcraft.io) 14 | hold promise as the future of application distribution. While they may 15 | eventually achieve this, they are currently specific to GNU/Linux, with 16 | very little chance of expanding to other platforms. 17 | 18 |
19 | -------------------------------------------------------------------------------- /website/docs/faq/_common/_nixos.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Link from '@docusaurus/Link'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 |
9 | Nix also provides reproducible builds, why not use it? 10 | 11 | The short answer is… _“because of Windows”_. 12 | 13 | [Nix](https://nixos.org/) is a remarkable project that carefully 14 | controls versions down to individual libraries. However, it relies 15 | on file links, which are either unavailable or unreliable on Windows. 16 | 17 | As a result, Nix is currently only available on GNU/Linux and, with 18 | some limitations, on macOS. Additionally, mastering the Nix language 19 | requires significant effort. 20 | 21 |
22 | -------------------------------------------------------------------------------- /website/docs/faq/_project/_content.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 |
5 | Why support for macOS was discontinued? 6 | 7 | The short answer is because _GCC on macOS is not reproducible_. 8 | 9 | The main problem is that since Apple abandoned GCC and switched to clang, there is no official GCC support for macOS. 10 | 11 | macOS GCC updates are maintained by Iain Sandoe in https://github.com/iains/gcc-darwin-arm64, but his patches, also used by Homebrew, are not valid across multiple macOS releases (actually macOS SDK releases). 12 | 13 | In other words, this means that compiling the sources on an older macOS is not guaranteed to be functional on later versions. 14 | 15 | I do not know the full details behind this, but one of the reasons is that in order to compile the Apple SDK headers, the GCC headers need to be patched, and these patches must be updated for each SDK release and each GCC release. 16 | 17 | This works for rolling distributions like Homebrew, which recompile everything on each release, but does not work for reproducible distributions like xPack, which expect old binaries to still run on newer systems. 18 | 19 | Therefore, without reproducibility, a GCC for macOS is no longer a reasonable solution for the xPack project, and was discontinued. 20 | 21 |
22 | -------------------------------------------------------------------------------- /website/docs/faq/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: FAQ 7 | description: Answers to previously asked questions, so you can find solutions without having to ask again. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - frequently 12 | - asked 13 | - questions 14 | 15 | hide_table_of_contents: true 16 | 17 | date: 2020-07-21 17:49:00 +0300 18 | 19 | --- 20 | 21 | import CommonNixOs from './_common/_nixos.mdx'; 22 | import CommonFlatpackSnap from './_common/_flatpack-snap.mdx'; 23 | 24 | import ProjectContent from './_project/_content.mdx'; 25 | 26 | {/* ------------------------------------------------------------------------ */} 27 | 28 | # The xPack GCC Frequently Asked Questions 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_benefits.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Benefits 7 | 8 | The main advantages of using the **xPack GCC** are: 9 | 10 | - A convenient, uniform and portable install/uninstall/upgrade 11 | procedure; the same procedure is used for all major 12 | platforms (**x64 Windows**, **x64 GNU/Linux**, **arm64 GNU/Linux**). 13 | - Multiple versions of the same package can be installed at the same time on 14 | the same system. 15 | - No need to worry about dependent libraries, they are all included. 16 | - Not affected by system updates that 17 | might change the versions of the dependent libraries. 18 | - Significantly lighter and easier to use than Docker images that provide 19 | similar functionality and are GNU/Linux centric. 20 | - Projects can be tied to specific tools versions; this provides a good 21 | reproducibility, especially useful in **CI/CD** environments. 22 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_change-log.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Change log 7 | 8 | The release and change log is available in the repository 9 | [`CHANGELOG.md`](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/CHANGELOG.md) file. 10 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_content.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CommonDetailsReproducibleBuilds from '../_common/_details-reproducible-operations.mdx'; 5 | import CommonWhatAreXpmPackages from '../_common/_what-are-xpm-packages.mdx'; 6 | import CommonFeatures from '../_common/_features.mdx'; 7 | import CommonBenefits from '../_common/_benefits.mdx'; 8 | import CommonInstallPreamble from '../_common/_install-preamble.mdx'; 9 | 10 | import ProjectOverview from '../_project/_overview.mdx'; 11 | import ProjectOtherBenefits from '../_project/_other-benefits.mdx'; 12 | import ProjectUpgradeNotice from '../_project/_upgrade-notice.mdx'; 13 | import ProjectCompatibility from '../_project/_compatibility.mdx'; 14 | 15 | {/* ------------------------------------------------------------------------ */} 16 | 17 | 18 | ## Overview 19 | 20 | **xPack GCC** is a 21 | standalone, cross-platform (Windows, GNU/Linux) binary 22 | distribution of GCC, 23 | aimed at reproducible builds. 24 | 25 | 26 | 27 | 28 | 29 | The open source **xPack GCC** project is hosted on GitHub as 30 | [`xpack-dev-tools/gcc-xpack`](https://github.com/xpack-dev-tools/gcc-xpack/); 31 | it provides the platform specific binaries as 32 | [release assets](https://github.com/xpack-dev-tools/gcc-xpack/releases). 33 | 34 | In addition to the binary archives and the package metadata, 35 | this project also includes the 36 | [build scripts](https://github.com/xpack-dev-tools/gcc-xpack/tree/xpack/build-assets/scripts). 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | ## Install 51 | 52 | 53 | 54 | The details for installing the **xPack GCC** on different platforms are 55 | provided in the 56 | [Install Guide](/docs/install/) on the project's website. 57 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_credits-mac-stadium.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Link from '@docusaurus/Link'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | MacStadium 9 | 10 | ## Credits 11 | 12 | Special thanks to **MacStadium**, for providing the Apple Silicon 13 | development infrastructure as part of their generous 14 | [Free and Open Source Software](https://www.macstadium.com/company/opensource) 15 | program. 16 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_details-reproducible-operations.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 |
7 | What are reproducible operations? 8 | 9 | To be **reproducible**, an operation must remain stable over time and 10 | across different environments. In other words, if the same operation is repeated 11 | after some time, possibly on a different machine or platform, the 12 | resulting behaviour must be functionally equivalent. 13 | 14 |
15 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_enjoyed-using.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Enjoyed Using This Project? Let Us Know! 7 | 8 | If you enjoyed using this project, please let us know! Here are some ways you can show your support: 9 | 10 | - **Donate**: Your contributions, whether small or generous, help us keep the 11 | xPack 12 | projects thriving. [![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/donate/?hosted_button_id=5MFRG9ZRBETQ8) 13 | - **Star** the project on [GitHub](https://github.com/xpack-dev-tools/gcc-xpack/): It helps others discover our work. 14 | - **Follow** us on [X/Twitter](https://twitter.com/xpack_project/): Stay updated with our latest releases and news. 15 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_features.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Features 7 | 8 | All binaries are: 9 | 10 | - **Self-contained** (include all required libraries). 11 | - **File-system relocatable** (can be installed in any location). 12 | - Built on slightly older systems (to ensure compatibility with both 13 | old and new systems). 14 | 15 |
16 | Compatibility with older systems 17 | 18 | Given that most operating systems maintain significant compatibility 19 | with older versions, building an application on an older system ensures 20 | that the same binary can run on newer versions. Conversely, building an 21 | application on a newer system may utilize library features that are 22 | not available in older versions, making backward compatibility less 23 | feasible. 24 | 25 |
26 | 27 | Similarly to [flatpacks](https://flatpak.org) or [snap](https://snapcraft.io), 28 | but significantly simpler, xpm packages include all dependent shared libraries 29 | within the distributed archives, making the binaries independent of 30 | any similar libraries installed on the system. This ensures they 31 | can run on any system without needing specific libraries to be 32 | installed. 33 | 34 | Also the builds are configured so that the binaries do not depend on 35 | being installed in specific folders, and can be installed in any 36 | location, including in user folders. 37 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_install-preamble.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | The executables and other related files can be installed automatically with 7 | **xpm** or manually by downloading the 8 | **platform specific archives**. 9 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_license.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## License 7 | 8 | Unless otherwise stated, the original content is released under the terms of the 9 | [MIT License](https://opensource.org/license/mit/), 10 | with all rights reserved by 11 | [Liviu Ionescu](https://github.com/ilg-ul). 12 | 13 | The binary distributions include several open-source components; the 14 | corresponding licenses are available in each archive in the 15 | `distro-info/licenses` folder. 16 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_releases.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Releases 7 | 8 | The list of releases is available in the [Releases](/docs/releases/) pages. 9 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_support-and-feedback.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Support & feedback 7 | 8 | The quick advice for getting support and providing feedback is to use the 9 | [GitHub Discussions](https://github.com/xpack-dev-tools/gcc-xpack/discussions). 10 | 11 | For additional information, please refer to the 12 | [Help Centre](/docs/support/) page. 13 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_user-developer-maintainer.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | :::info Separate User/Contributor/Maintainer pages 7 | 8 | To address the specific needs of different 9 | audiences, this site features separate 10 | **[User's Guide](/docs/user/)**, 11 | **[Contributor's Guide](/docs/developer/)** and 12 | **[Maintainer's Guide](/docs/maintainer/)** 13 | pages. This way, each group can easily find the information and resources 14 | most relevant to them. 15 | 16 | ::: 17 | -------------------------------------------------------------------------------- /website/docs/getting-started/_common/_what-are-xpm-packages.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## What are xpm packages? (xPacks) {#xpm-packages} 7 | 8 | **xpm packages**, abbreviated as **xPacks**, are versatile, 9 | language-neutral software packages. They have been successfully 10 | utilised in C/C++ projects. 11 | 12 |
13 | What the heck are xpm packages (xPacks)? Please, do not introduce another package format! 14 | 15 | Although the initial appearance may seem complex, utilising 16 | xpm packages is, in fact, straightforward. 17 | The design rationale is to automate frequent 18 | operations that occur during software development, such as the 19 | installation of 20 | dependencies, and to ensure reproducibility. 21 | 22 | These packages are managed by **[xpm](https://xpack.github.io/xpm/)** 23 | (the xPack Project Manager), 24 | a programme that complements the **[npm](https://docs.npmjs.com/cli/)** CLI 25 | (the popular JavaScript package manager), with new language-neutral features. 26 | 27 | The xPacks Framework **does NOT introduce a new package format**; instead, 28 | it uses **the same format as npm packages**, which is a collection of 29 | files/folders and a `package.json` file with the package metadata. 30 | 31 | **xpm** can install packages from the 32 | same repositories as **npm**, whether public or private. 33 | 34 | The packages (usually regular archives, but also git repositories), 35 | are extracted into separate folders within the project. 36 | 37 | Based on the content, there are two types of xpm packages: 38 | 39 | - packages with source libraries (**source** xpm packages) 40 | - packages with executables, usually platform-specific binary 41 | tools (**binary** xpm packages) 42 | 43 | **Source xpm packages** are regular npm packages that include **library 44 | source files**, typically in **C/C++**, though there are no language 45 | restrictions. 46 | 47 | **Binary xpm packages** are also regular npm packages, but with minimal 48 | content, typically just the `package.json` file. Since these packages 49 | provide executables for multiple platforms, some of which are quite 50 | large, it is not practical to include all binaries within the npm 51 | package itself. Instead, the `package.json` file contains references 52 | (URLs) to platform-specific binary archives (e.g., `.tar.gz` for Unix or 53 | `.zip` for Windows). 54 | 55 | These archives are also expanded along with the package metadata. 56 | Links/forwarders to 57 | these executables are created in a `.bin` folder, 58 | eliminating the need to add multiple folders to the `PATH`. 59 | 60 | In summary, xpm packages can enhance and automate the installation 61 | process for source libraries and tools. 62 | 63 | In summary, xpm packages can streamline and automate the installation 64 | process for source libraries and tools. Further details are available on the 65 | [xpm Concepts](https://xpack.github.io/xpm/docs/guide/concepts/) page. 66 | 67 |
68 | -------------------------------------------------------------------------------- /website/docs/getting-started/_project/_compatibility.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | ## Compatibility 5 | 6 | The **xPack GCC** project is fully compatible with the upstream 7 | **GCC**. 8 | -------------------------------------------------------------------------------- /website/docs/getting-started/_project/_more-credits.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/getting-started/_project/_more-licenses.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/getting-started/_project/_other-benefits.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/getting-started/_project/_overview.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | [GCC](https://gcc.gnu.org), the **GNU Compiler Collection** 5 | is an open source project maintained by the 6 | [Free Software Foundation](https://www.fsf.org). 7 | -------------------------------------------------------------------------------- /website/docs/getting-started/_project/_status.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | ## Status 5 | 6 | The **xPack GCC** project is fully functional, 7 | stable, and suitable for use in production environments. 8 | -------------------------------------------------------------------------------- /website/docs/getting-started/_project/_upgrade-notice.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/getting-started/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: Getting Started 7 | description: The initial steps to explore the project, including what xpm packets are, the project's features, benefits, compatibility, and available documentation. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - overview 12 | - features 13 | - benefits 14 | - compatibility 15 | - documentation 16 | 17 | date: 2020-07-21 17:49:00 +0300 18 | 19 | --- 20 | 21 | import Link from '@docusaurus/Link'; 22 | 23 | import ProjectDocumentation from '@site/docs/_project/_documentation.mdx'; 24 | import ProjectReleaseSchedule from '@site/docs/_project/_release-schedule.mdx'; 25 | 26 | import CommonUserDeveloperMaintainer from './_common/_user-developer-maintainer.mdx'; 27 | import CommonLicense from './_common/_license.mdx'; 28 | import CommonEnjoyedUsing from './_common/_enjoyed-using.mdx'; 29 | import CommonSupportAndFeedback from './_common/_support-and-feedback.mdx'; 30 | import CommonChangeLog from './_common/_change-log.mdx'; 31 | import CommonReleases from './_common/_releases.mdx'; 32 | import CommonCreditsMacStadium from './_common/_credits-mac-stadium.mdx'; 33 | import ProjectMoreCredits from './_project/_more-credits.mdx'; 34 | import ProjectMoreLicenses from './_project/_more-licenses.mdx'; 35 | import ProjectStatus from './_project/_status.mdx'; 36 | 37 | import CommonContent from './_common/_content.mdx'; 38 | 39 | {/* ------------------------------------------------------------------------ */} 40 | 41 | # Getting Started with the xPack GCC 42 | 43 | [![license](https://img.shields.io/github/license/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/LICENSE) 44 | ![GitHub Repo stars](https://img.shields.io/github/stars/xpack-dev-tools/gcc-xpack) 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | ## Documentation 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | Thanks to [Shields IO](https://shields.io) for the badges. 73 | 74 | 75 | -------------------------------------------------------------------------------- /website/docs/install/_common/_automatic-install-quick-test.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | 8 | {/* ------------------------------------------------------------------------ */} 9 | 10 | ### Quick test 11 | 12 | To check if the {props.descriptiveName} installed by **xpm** starts properly, use something like: 13 | 14 | 15 | 16 | 17 | 18 | { 19 | `C:\\> %USERPROFILE%\\AppData\\Roaming\\xPacks\\@xpack-dev-tools\\${props.permalinkName}\\14.2.0-2.1\\.content\\bin\\${props.programName}.exe --version 20 | ${props.branding}14.2.0 21 | `} 22 | 23 | 24 | 25 | 26 | 27 | { 28 | `$ ~/.local/xPacks/@xpack-dev-tools/${props.permalinkName}/14.2.0-2.1/.content/bin/${props.programName} --version 29 | ${props.branding}14.2.0 30 | `} 31 | 32 | 33 | 34 | 35 | 36 | :::note 37 | 38 | The reported version is the upstream version, which is shorter than the xPack 39 | version, as the latter requires more digits to identify the releases. 40 | 41 | ::: 42 | -------------------------------------------------------------------------------- /website/docs/install/_common/_initialise-the-project.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Initialise the project 7 | 8 | Upon initial use, ensure that a `package.json` file is present in the 9 | project root folder. 10 | 11 | This can be achieved by running `xpm init` in the desired project folder 12 | (substitute `my-project` accordingly): 13 | 14 | ```sh 15 | cd my-project 16 | xpm init 17 | ``` 18 | 19 |
20 | Under the hood 21 | 22 | The main purpose of `xpm init` is to create a `package.json` file, if not 23 | already present. 24 | 25 | In addition to `name` & `version`, the minimal `package.json` must 26 | include a property named `xpacks`, even empty. This property is 27 | mandatory to identify the package as an **xpm package**. 28 | 29 |
30 | -------------------------------------------------------------------------------- /website/docs/install/_common/_installation-details.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 |
7 | Installation details 8 | 9 | The above `xpm install` command will do the following: 10 | 11 | * identify the platform specific archive for the desired version 12 | of @xpack-dev-tools/gcc, download it into a cache and unpack 13 | it into a versioned folder 14 | in the **user's global xPacks store** (if not already there); 15 | check the output of the `xpm install` command for the actual 16 | folder used on your platform; 17 | * create a local symbolic link 18 | like xpacks/@xpack-dev-tools/gcc pointing to the 19 | versioned folder in the user's global xPacks store 20 | * add links/forwarders into 21 | the local `xpacks/.bin` folder, referring to the binaries in 22 | xpacks/@xpack-dev-tools/gcc/.content/bin; 23 | 24 | * add @xpack-dev-tools/gcc to 25 | `package.json` as a 26 | development dependency; this associates a specific version of the xPack GCC with 27 | the current project (details below). 28 | 29 | :::tip 30 | 31 | The install location can be configured using the 32 | `XPACKS_STORE_FOLDER` environment variable; for more details please check the 33 | [xpm folders](https://xpack.github.io/xpm/folders/) page. 34 | 35 | ::: 36 | 37 |
38 | -------------------------------------------------------------------------------- /website/docs/install/_common/_manual-install-quick-test.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | 8 | {/* ------------------------------------------------------------------------ */} 9 | 10 | ### Quick test {#manual-install-quick-test} 11 | 12 | To check if the {props.descriptiveName} installed manually starts properly, use something like: 13 | 14 | 15 | 16 | 17 | 18 | { 19 | `C:\\> %USERPROFILE%\\AppData\\Roaming\\xPacks\\${props.permalinkName}\\xpack-${props.permalinkName}-14.2.0-2\\bin\\${props.programName}.exe --version 20 | ${props.branding}14.2.0 21 | `} 22 | 23 | 24 | 25 | 26 | 27 | { 28 | `$ ~/.local/xPacks/${props.permalinkName}/xpack-${props.permalinkName}-14.2.0-2/bin/${props.programName} --version 29 | ${props.branding}14.2.0 30 | `} 31 | 32 | 33 | 34 | 35 | 36 | :::note 37 | 38 | The reported version is the upstream version, which is shorter than the xPack 39 | version, as the latter requires more digits to identify the releases. 40 | 41 | ::: 42 | -------------------------------------------------------------------------------- /website/docs/install/_common/_reproducibility-and-dependencies.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 |
9 | Reproducibility and `devDependencies` 10 | 11 | To ensure reproducibility, it is essential for each project to always 12 | use the exact desired versions of the required tools, regardless of the 13 | tools installed in the system. 14 | 15 | To achieve this goal, **xpm** records all locally installed binary packages 16 | as development dependencies in the project `package.json` file. 17 | 18 | The result looks like this: 19 | 20 | { 21 | ` "xpack": { 22 | "minimumXpmRequired": "0.20.7", 23 | "dependencies": {}, 24 | "devDependencies": { 25 | "@xpack-dev-tools/gcc": { 26 | "specifier": "14.2.0-2.1", 27 | "local": "link", 28 | "platforms": "all" 29 | } 30 | }, 31 | "properties": {}, 32 | "actions": {}, 33 | "buildConfigurations": {} 34 | } 35 | `} 36 | 37 | If the `package.json` is saved in the revision system, the above 38 | definition acts as a hard reference to the specific version of 39 | the xPack GCC. 40 | 41 | After cloning the project into a different location, the command `xpm install` 42 | can be used to install all development dependencies. 43 | 44 | This is particularly useful for CI/CD environments. 45 | 46 |
47 | -------------------------------------------------------------------------------- /website/docs/install/_common/_uninstall.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Tabs from '@theme/Tabs'; 5 | import TabItem from '@theme/TabItem'; 6 | import CodeBlock from '@theme/CodeBlock'; 7 | 8 | import LinksVsForwarders from '@site/src/components/LinksVsForwarders'; 9 | 10 | import CommonXpmCleanUps from '@site/docs/_common/_xpm-clean-ups.mdx'; 11 | 12 | {/* ------------------------------------------------------------------------ */} 13 | 14 | ### Uninstall 15 | 16 | The xpm binaries do not use any form of system installer; instead they 17 | are distributed as 18 | portable (.zip or .tar.gz) archives; 19 | therefore they do not require to run any uninstaller; simply removing the 20 | links and possibly the user's global xPacks store folder and 21 | the user xPack cache folder is enough. 22 | 23 | To remove the links created by 24 | **xpm** in the current project, 25 | go to the project folder: 26 | 27 | ```sh 28 | cd my-project 29 | ``` 30 | 31 | and ask **xpm** to uninstall the package: 32 | 33 | { 34 | `xpm uninstall @xpack-dev-tools/gcc --verbose 35 | `} 36 | 37 | To completely remove the package from the user's global xPacks store: 38 | 39 | { 40 | `xpm uninstall --global @xpack-dev-tools/gcc --verbose 41 | `} 42 | 43 |
44 | Clean-ups 45 | 46 | 47 | 48 |
49 | -------------------------------------------------------------------------------- /website/docs/install/_common/_xpm-package-refresher.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 |
7 | xpm packages (xPacks) refresher 8 | 9 | **xpm packages**, abbreviated as **xPacks**, are general-purpose, 10 | language-neutral software packages. 11 | They use **the same format as npm packages**, 12 | which is a collection of files/folders 13 | and a `package.json` file with the package metadata. 14 | 15 | **xpm** can install source and binary packages. 16 | Binary packages include references to regular archives with the platform 17 | specific binaries (such as `.tar.gz` for Unix or `.zip` for Windows). 18 | These archives are unpacked and links/forwarders to 19 | the executables are created in a `.bin` folder. 20 | 21 | For more details, please see the previous explanation in the 22 | [Getting Started](/docs/getting-started/#xpm-packages) page. 23 | 24 |
25 | -------------------------------------------------------------------------------- /website/docs/install/_project/_automatic-install-quick-test.mdx: -------------------------------------------------------------------------------- 1 | 2 | import CommonAutomaticInstallQuickTest from '../_common/_automatic-install-quick-test.mdx'; 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | 12 | -------------------------------------------------------------------------------- /website/docs/install/_project/_manual-install-quick-test.mdx: -------------------------------------------------------------------------------- 1 | 2 | import CommonManualInstallQuickTest from '../_common/_manual-install-quick-test.mdx'; 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | 12 | -------------------------------------------------------------------------------- /website/docs/install/_project/_miscellaneous.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/install/_project/_testing.mdx: -------------------------------------------------------------------------------- 1 | 2 | import CodeBlock from '@theme/CodeBlock'; 3 | 4 | import customField from '@site/src/libs/customField'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | -------------------------------------------------------------------------------- /website/docs/install/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: Install Guide 7 | description: Explain the prerequisites, how to perform an automated or manual installation, how to uninstall, and the folder hierarchies. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - prerequisites 12 | - automated 13 | - install 14 | - uninstall 15 | 16 | date: 2024-10-24 23:57:00 +0300 17 | 18 | --- 19 | 20 | import CommonContent from './_common/_content.mdx'; 21 | 22 | {/* ------------------------------------------------------------------------ */} 23 | 24 | # How to install the xPack GCC 25 | 26 | [![GitHub package.json version](https://img.shields.io/github/package-json/v/xpack-dev-tools/gcc-xpack?color=blue)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/package.json) 27 | [![GitHub release (latest by date)](https://img.shields.io/github/v/release/xpack-dev-tools/gcc-xpack?color=blue)](https://github.com/xpack-dev-tools/gcc-xpack/releases) 28 | [![GitHub Release Date](https://img.shields.io/github/release-date/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/releases) 29 | [![NPM Version](https://img.shields.io/npm/v/%40xpack-dev-tools%2Fgcc?color=blue&label=xpm)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 30 | [![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/xpack-dev-tools/gcc-xpack/total)](https://somsubhra.github.io/github-release-stats/?username=xpack-dev-tools&repository=gcc-xpack) 31 | [![NPM Downloads](https://img.shields.io/npm/d18m/%40xpack-dev-tools%2Fgcc?color=green&label=xpm%20downloads)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 32 | [![NPM Downloads](https://img.shields.io/npm/dm/%40xpack-dev-tools%2Fgcc?color=green&label=xpm%20downloads)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 33 | [![license](https://img.shields.io/github/license/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/LICENSE) 34 | 35 | 36 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_analytics.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Analytics 7 | 8 | 9 | - GitHub [`xpack-dev-tools/gcc-xpack`](https://github.com/xpack-dev-tools/gcc-xpack/) repo 10 | - latest xPack release 11 | [![Github All Releases](https://img.shields.io/github/downloads/xpack-dev-tools/gcc-xpack/latest/total)](https://github.com/xpack-dev-tools/gcc-xpack/releases) 12 | - all xPack releases [![Github All Releases](https://img.shields.io/github/downloads/xpack-dev-tools/gcc-xpack/total)](https://github.com/xpack-dev-tools/gcc-xpack/releases) 13 | - [individual file counters](https://somsubhra.github.io/github-release-stats/?username=xpack-dev-tools&repository=gcc-xpack) (grouped by release) 14 | - npmjs.com [`@xpack-dev-tools/gcc`](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) package 15 | - latest release, per month 16 | [![NPM Version](https://img.shields.io/npm/v/%40xpack-dev-tools%2Fgcc?color=blue)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 17 | [![NPM Downloads](https://img.shields.io/npm/dm/%40xpack-dev-tools%2Fgcc?color=green)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 18 | - all releases [![NPM Downloads](https://img.shields.io/npm/dt/%40xpack-dev-tools%2Fgcc?color=green)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 19 | 20 | Credit to [Shields IO](https://shields.io) for the badges and to 21 | [Somsubhra/github-release-stats](https://github.com/Somsubhra/github-release-stats) 22 | for the individual file counters. 23 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_check-git.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Check Git 7 | 8 | In the `xpack-dev-tools/gcc-xpack` Git repo: 9 | 10 | - switch to the `xpack-development` branch 11 | - pull new changes 12 | - if necessary, **merge** the `xpack` branch 13 | - if necessary, **merge** the `website` branch 14 | 15 | :::caution 16 | 17 | This is really important, otherwise you will release the previous content again! 18 | 19 | ::: 20 | 21 | The `xpack` branch should be unchanged since the previous release 22 | and will be updated when the new release is out. 23 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_ci-tests.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### CI tests 7 | 8 | - **wait for CI tests to complete** 9 | - check [GitHub Actions](https://github.com/xpack-dev-tools/gcc-xpack/actions) 10 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_close-milestone.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Close milestone 7 | 8 | In https://github.com/xpack-dev-tools/gcc-xpack/milestones: 9 | 10 | - close the current milestone. 11 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_close-open-issues.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Close possible open issues 7 | 8 | Check GitHub Issues and Pull Requests: 9 | 10 | - https://github.com/xpack-dev-tools/gcc-xpack/issues 11 | - https://github.com/xpack-dev-tools/gcc-xpack/pulls 12 | 13 | Close those that were addressed. 14 | 15 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_fix-open-issues.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Fix possible open issues 7 | 8 | Check GitHub Issues and Pull Requests: 9 | 10 | - https://github.com/xpack-dev-tools/gcc-xpack/issues 11 | - https://github.com/xpack-dev-tools/gcc-xpack/pulls 12 | 13 | and fix them; assign them to a milestone 14 | (like 14.2.0-2.1). 15 | 16 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_gcc-check-upstream-release.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Check the latest upstream release 7 | 8 | The current release must be announced in the 9 | [GCC Timeline](https://gcc.gnu.org/releases.html) page. 10 | Compare the latest GCC release with the current xPack 11 | [release](https://github.com/xpack-dev-tools/gcc-xpack/releases). 12 | 13 | If necessary, update the triplet, otherwise increase the fourth number, 14 | as below. 15 | 16 | The actual version is in the `gcc.git/gcc/BASE-VER` file. 17 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_increase-version.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Increase the version and update the top `package.json` 7 | 8 | As required by npm modules, this one also uses [SemVer](https://semver.org). 9 | 10 | - determine the next version (like 14.2.0-2.1) 11 | - update the version in the top `package.json` file 12 | - use the new version, suffixed by `.pre`, 13 | like 14.2.0-2.1.pre. 14 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_platform-docker-build.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | import {developmentDurations} from '@site/docs/_project/_development-durations.mdx'; 7 | 8 | {/* ------------------------------------------------------------------------ */} 9 | 10 | To check the available space: 11 | 12 | ```sh 13 | xpm run check-space -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 14 | ``` 15 | 16 | To free the space used by all previous builds of all `xpack-dev-tools` packages: 17 | 18 | ```sh 19 | xpm run clear-all-projects-builds -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 20 | ``` 21 | 22 | To update the build scripts and build the development binaries: 23 | 24 | { 25 | `rm -rf ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets/package-lock.json && \\ 26 | git -C ~/Work/xpack-dev-tools/gcc-xpack.git pull && \\ 27 | xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 28 | git -C ~/Work/xpack-dev-tools/xbb-helper-xpack.git pull && \\ 29 | xpm link -C ~/Work/xpack-dev-tools/xbb-helper-xpack.git && \\ 30 | xpm run link-deps -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 31 | \\ 32 | xpm run deep-clean --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 33 | xpm run docker-prepare --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 34 | xpm run docker-link-deps --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 35 | xpm run docker-build-development --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 36 | `} 37 | 38 | {developmentDurations[ props.platform ]}, the output of the build script is a compressed 39 | archive and its SHA signature, created in 40 | the build-assets/build/{props.platform}/deploy folder: 41 | 42 | - xpack-gcc-14.2.0-2-{props.platform}.{props.platform === 'win32-x64' ? 'zip' : 'tar.gz'} 43 | - xpack-gcc-14.2.0-2-{props.platform}.{props.platform === 'win32-x64' ? 'zip' : 'tar.gz'}.sha 44 | 45 | To update the build scripts and build the release binaries: 46 | 47 | { 48 | `rm -rf ~/Work/xpack-dev-tools/gcc-xpack.git/package-lock.json && \\ 49 | git -C ~/Work/xpack-dev-tools/gcc-xpack.git pull && \\ 50 | xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 51 | \\ 52 | xpm run deep-clean --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 53 | xpm run docker-prepare --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 54 | xpm run docker-build-development --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 55 | `} 56 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_platform-native-build.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | import {developmentDurations} from '@site/docs/_project/_development-durations.mdx'; 7 | 8 | {/* ------------------------------------------------------------------------ */} 9 | 10 | To check the available space: 11 | 12 | ```sh 13 | xpm run check-space -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 14 | ``` 15 | 16 | To free the space used by all previous builds of all `xpack-dev-tools` packages: 17 | 18 | ```sh 19 | xpm run clear-all-projects-builds -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 20 | ``` 21 | 22 | To update the build scripts and build the development binaries: 23 | 24 | { 25 | `export XBB_ENVIRONMENT_MACOSX_DEPLOYMENT_TARGET='11.0' && \\ 26 | rm -rf ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets/package-lock.json && \\ 27 | git -C ~/Work/xpack-dev-tools/gcc-xpack.git pull && \\ 28 | xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 29 | git -C ~/Work/xpack-dev-tools/xbb-helper-xpack.git pull && \\ 30 | xpm link -C ~/Work/xpack-dev-tools/xbb-helper-xpack.git && \\ 31 | xpm run link-deps -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 32 | \\ 33 | xpm run deep-clean --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 34 | xpm install --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 35 | xpm run build-development --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 36 | `} 37 | 38 | {developmentDurations[ props.platform ]}, the output of the build script is a compressed 39 | archive and its SHA signature, created in 40 | the build-assets/build/{props.platform}/deploy folder: 41 | 42 | - xpack-gcc-14.2.0-2-{props.platform}.tar.gz 43 | - xpack-gcc-14.2.0-2-{props.platform}.tar.gz.sha 44 | 45 | To update the build scripts and build the release binaries: 46 | 47 | { 48 | `export XBB_ENVIRONMENT_MACOSX_DEPLOYMENT_TARGET='11.0' && \\ 49 | rm -rf ~/Work/xpack-dev-tools/gcc-xpack.git/package-lock.json && \\ 50 | git -C ~/Work/xpack-dev-tools/gcc-xpack.git pull && \\ 51 | xpm run install -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 52 | \\ 53 | xpm run deep-clean --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 54 | xpm install --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets && \\ 55 | xpm run build --config ${props.platform} -C ~/Work/xpack-dev-tools/gcc-xpack.git/build-assets 56 | `} 57 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_prepare-new-blog-post.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Prepare a new blog post 7 | 8 | - check and possibly update the `website/blog/_templates/blog-post*-release-liquid.mdx` 9 | - run the **generate-website-blog-post** npm script; this will add a file in the `website/blog` folder: 10 | ```sh 11 | npm run generate-website-blog-post -C website 12 | ``` 13 | - edit the front matter properties (the `description` property) 14 | - select the correct summary (maintenance vs. new release) 15 | - add entries in the **Bug fixes**; use the following syntax 16 | ``` 17 | - [[#N](https://github.com/xpack-dev-tools/gcc-xpack/issues/N)]: 18 | ``` 19 | - copy/paste the folders hierarchies from the install guide 20 | - **commit** with the message _**website: blog post release 14.2.0-2.1 published**_ 21 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_prepare-release.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Prepare the release 7 | 8 | 9 | - switch to the `xpack-development` branch 10 | - if there are changes, **commit** all changes into the `xpack-development` branch 11 | - check the latest commits `npm run git-log` 12 | - update `CHANGELOG.md`, add a line like _**\* v14.2.0-2.1 published on npmjs.com**_ 13 | - **commit** with the message _**CHANGELOG: publish npm v14.2.0-2.1**_ 14 | - check the list of files included in the npm package: 15 | ```sh 16 | npm run pack 17 | ``` 18 | - possibly update `.npmignore` 19 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_publish-release.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Publish the release to npmjs.com 7 | 8 | Run the following command in the project folder: 9 | 10 | ```sh 11 | npm publish --tag next 12 | ``` 13 | 14 | :::tip 15 | 16 | When publishing for the first time, use `--access public`. 17 | 18 | ::: 19 | 20 | After a few moments the version will be visible at 21 | npmjs.com, 22 | the **Versions** tab. 23 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_set-new-version.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | ### Set the new version 9 | 10 | Run the following in the project folder: 11 | 12 | { 13 | `npm version 14.2.0-2.1 14 | `} 15 | 16 | The `postversion` npm script should also update tags via 17 | `git push origin --tags`; this should also trigger CI tests. 18 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_share-on-twitter.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Share on X/Twitter 7 | 8 | - in a separate browser windows, open [X/Twitter](https://x.com/) 9 | - using the `@xpack_project` account 10 | - paste the release name like **GCC v14.2.0-2.1 released** 11 | - paste the link to the Web page 12 | [release](/docs/releases/) 13 | - click the **Tweet** button 14 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_tag-npm-latest.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CodeBlock from '@theme/CodeBlock'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | ### Check npm package tags 9 | 10 | Run the following command in a terminal: 11 | 12 | ```sh 13 | npm dist-tag ls @xpack-dev-tools/gcc 14 | ``` 15 | 16 | ### Tag the npm package as `latest` 17 | 18 | When the release is considered stable, promote it as `latest`: 19 | 20 | { 21 | `npm dist-tag add @xpack-dev-tools/gcc@14.2.0-2.1 latest 22 | `} 23 | 24 | Check the result: 25 | 26 | { 27 | `npm dist-tag ls @xpack-dev-tools/gcc 28 | `} 29 | 30 | In case the release proves problematic and needs to be unpublished: 31 | 32 | { 33 | `npm unpublish @xpack-dev-tools/gcc@14.2.0-2.1 34 | `} 35 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_update-changelog.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Update `CHANGELOG.md` 7 | 8 | - open the `CHANGELOG.md` file 9 | - check if all previous fixed issues are in 10 | - check the latest commits `npm run git-log`; if necessary, copy/paste lines, 11 | group by dates and edit them using the below regular expressions 12 | - to turn the dates into headings, change from: 13 | ```txt 14 | 15 | 16 | ([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]) [*] 17 | ``` 18 | to: 19 | ```txt 20 | 21 | 22 | ## $1 23 | 24 | * 25 | ``` 26 | - to remove the rest of the dates, change from: 27 | ```txt 28 | ^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [*] 29 | ``` 30 | to: 31 | ```txt 32 | * 33 | ``` 34 | - add a new entry like _**\* v14.2.0-2 prepared**_ 35 | - **commit** with the message _**prepare v14.2.0-2**_ 36 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_update-main-branch.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Update the stable branch 7 | 8 | In this Git repo: 9 | 10 | - select the `xpack` branch 11 | - **merge** the `xpack-development` branch into the `xpack` branch 12 | - **push** the `xpack` branch to GitHub 13 | - checkout the `xpack-development` branch 14 | 15 | :::note 16 | 17 | Avoid further updates to the `xpack` branch until the next release. 18 | 19 | ::: 20 | -------------------------------------------------------------------------------- /website/docs/maintainer/_common/_update-website-config.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ### Update the `websiteConfig` (if necessary) 7 | 8 | Check and possibly update the release specific properties (if any) 9 | in `website/package.json`. 10 | -------------------------------------------------------------------------------- /website/docs/maintainer/_functional-tests.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_check-upstream-release.mdx: -------------------------------------------------------------------------------- 1 | 2 | import GccCheckUpstreamRelease from '../_common/_gcc-check-upstream-release.mdx'; 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | 7 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_first-development-run.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_first-production-run.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_more-repos.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | Other repositories in use are: 5 | 6 | - https://github.com/iains, the gcc-*-branch forks, to create the macOS patches 7 | 8 | See the helper 9 | [README-GCC-MACOS](https://github.com/xpack-dev-tools/xbb-helper-xpack/blob/xpack/patches/README-GCC-MACOS.md) 10 | file for details on how to prepare the patches. 11 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_more-tests.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | ## Hacks 5 | 6 | GCC 11 & 12 fail to build on macOS 14 due to missing makeinfo 7 | (part of texinfo): 8 | 9 | ```sh 10 | ... sources/gdb-13.2/missing: line 81: makeinfo: command not found 11 | ``` 12 | 13 | A hack might be: 14 | 15 | ```sh 16 | cd /usr/local/bin 17 | sudo ln -s /usr/bin/true makeinfo 18 | ``` 19 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_more.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_patches.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | ### Patches 5 | 6 | For macOS builds, this project uses Iain's branches from: 7 | 8 | - https://github.com/iains/gcc-11-branch 9 | - https://github.com/iains/gcc-12-branch 10 | - https://github.com/iains/gcc-13-branch 11 | - https://github.com/iains/gcc-14-branch 12 | 13 | See the helper 14 | [README-GCC-MACOS](https://github.com/xpack-dev-tools/xbb-helper-xpack/blob/xpack/patches/README-GCC-MACOS.md) 15 | file for details on how to prepare the patches. 16 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_share-custom.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | -------------------------------------------------------------------------------- /website/docs/maintainer/_project/_update-version-specific.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | ### Update the version specific code 5 | 6 | - open the `build-assets/scripts/versioning.sh` file 7 | - add a new `if` with the new version before the existing code 8 | 9 | Prepare a patch for the macOS build, and store it in the helper 10 | (see the `patches/README-GCC-MACOS.md` file for details). 11 | 12 | -------------------------------------------------------------------------------- /website/docs/maintainer/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: Maintainer's Guide 7 | description: Assistance for project maintainers, including the release schedule, versioning scheme, and instructions on how to build, test, and publish. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - build 12 | - releases 13 | - publish 14 | - npmjs 15 | 16 | date: 2024-10-24 23:59:00 +0300 17 | 18 | --- 19 | 20 | import CommonContent from './_common/_content.mdx'; 21 | 22 | {/* ------------------------------------------------------------------------ */} 23 | 24 | # How to make new xPack GCC releases 25 | 26 | [![GitHub package.json version](https://img.shields.io/github/package-json/v/xpack-dev-tools/gcc-xpack?color=blue)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/package.json) 27 | [![NPM Version](https://img.shields.io/npm/v/%40xpack-dev-tools%2Fgcc?color=blue)](https://www.npmjs.com/package/@xpack-dev-tools/gcc/) 28 | [![GitHub issues](https://img.shields.io/github/issues/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/issues) 29 | [![GitHub pulls](https://img.shields.io/github/issues-pr/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/pulls) 30 | [![license](https://img.shields.io/github/license/xpack-dev-tools/gcc-xpack)](https://github.com/xpack-dev-tools/gcc-xpack/blob/xpack/LICENSE) 31 | 32 | This page is designed for maintainers of the 33 | **xPack GCC** 34 | project and provides documentation on how to create new releases. 35 | 36 | 37 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_intro-primary.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | The main goal of this project is to streamline the **development of embedded projects**. 7 | [µOS++](http://micro-os-plus.github.io) is the first cross-platform 8 | project to benefit from the xPack tools. 9 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_intro-secondary.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | This project currently functions as a supplementary tool for building 7 | the main xPack Development Tools. Since these tools are exclusively 8 | built on macOS and GNU/Linux, to reduce maintenance efforts, for now 9 | there are no Windows binaries. However, the project is versatile and can be 10 | used in any builds; if necessary, Windows binaries can be added in future 11 | releases. 12 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_the-author.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## The author 7 | 8 | This project is currently maintained by **Liviu Ionescu** 9 | ([ilg-ul](https://github.com/ilg-ul)), 10 | a senior computer engineer, with expertise in **C++/C embedded systems**, 11 | **RTOSes**, **build tools**, operating systems, compilers 12 | and Internet technologies. 13 | 14 | He can be reached at [``](mailto:ilg@livius.net). 15 | Please note, this email address is provided as a courtesy. 16 | For all correspondence related to the **xPack GCC** 17 | project, kindly use the project [support](/docs/support/) page. 18 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_the-project-history.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## The project history 7 | 8 | The **xPack GCC** history is presented 9 | in a separate [History](/docs/project/history/) page. 10 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_the-project.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## The project 7 | 8 | The **xPack GCC** project is part of the 9 | [xPack Reproducible Build Framework](https://xpack.github.io) 10 | and is hosted on GitHub as 11 | [`xpack-dev-tools/gcc-xpack`](https://github.com/xpack-dev-tools/gcc-xpack/), 12 | part of the [xPack Binary Development Tools](https://github.com/xpack-dev-tools/). 13 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_website-docusaurus-doxygen-template.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | In **{props.date || 'DATE'}**, as part of the project restructuring, 7 | the Docusaurus template was instantiated in the `website` folder, 8 | alongside the Doxygen configuration, which was retained for the reference 9 | pages. 10 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_website-docusaurus-migration.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | In **{props.date || 'DATE'}**, 7 | as part of the project restructuring, the website content was migrated 8 | from the xPack Jekyll sub-site to a local Docusaurus configuration 9 | stored in the `website` folder. To ensure continuity, HTML `` 10 | redirects were added to the old pages. 11 | Additionally, a GitHub Action was implemented to automatically 12 | publish the site upon any pushes to the `website` Git branch. 13 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_website-docusaurus-template.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | In **{props.date || 'DATE'}** the website content was added in the `website` folder, 7 | as an instance of the Docusaurus template. Additionally a GitHub Action 8 | was added to automatically publish the site upon any pushes to the 9 | `website` Git branch. 10 | -------------------------------------------------------------------------------- /website/docs/project/about/_common/_website-jekyll.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | The initial website was launched in **{props.date || 'DATE'}** as 7 | a sub-site in the xPack website. 8 | It used the 9 | [Jekyll Doc Theme 6.0](https://idratherbewriting.com/documentation-theme-jekyll/) 10 | by [Tom Johnson](https://github.com/tomjoht). 11 | -------------------------------------------------------------------------------- /website/docs/project/about/_project/_more-intro.mdx: -------------------------------------------------------------------------------- 1 | 2 | import IntroPrimary from '../_common/_intro-primary.mdx'; 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | 7 | -------------------------------------------------------------------------------- /website/docs/project/about/_project/_website.mdx: -------------------------------------------------------------------------------- 1 | 2 | import WebsiteJekyll from '../_common/_website-jekyll.mdx'; 3 | import WebsiteDocusaurusMigration from '../_common/_website-docusaurus-migration.mdx'; 4 | 5 | {/* ------------------------------------------------------------------------ */} 6 | 7 | ## The web site 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /website/docs/project/about/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: About 7 | description: Details about the project, including its history, the history of the website, and details about the author. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - about 12 | - history 13 | - web 14 | - author 15 | 16 | date: 2024-10-24 23:58:00 +0300 17 | 18 | --- 19 | 20 | import CommonTheProject from './_common/_the-project.mdx'; 21 | import CommonTheProjectHistory from './_common/_the-project-history.mdx'; 22 | 23 | import ProjectMoreIntro from './_project/_more-intro.mdx'; 24 | import ProjectWebsite from './_project/_website.mdx'; 25 | 26 | import CommonTheAuthor from './_common/_the-author.mdx'; 27 | 28 | {/* ------------------------------------------------------------------------ */} 29 | 30 | # About the xPack GCC 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/History32bitDiscontinued/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function History32bitDiscontinued({platforms}): JSX.Element { 16 | return ( 17 | <>Support for {platforms} (32-bit) was discontinued 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/HistoryAppleSiliconAdded/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function HistoryAppleSiliconAdded(): JSX.Element { 16 | return ( 17 | <>Support for Apple Silicon macOS was added 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/HistoryArmLinuxAdded/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function HistoryArmLinuxAdded(): JSX.Element { 16 | return ( 17 | <>Support for 32/64-bit Arm GNU/Linux platforms (like Raspberry Pi) was added 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/HistoryPlatformsAdded/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function HistoryPlatformsAdded({platforms}): JSX.Element { 16 | return ( 17 | <>Support for {platforms} was added 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/HistoryRenameXpack/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function HistoryRenameXpack(): JSX.Element { 16 | return ( 17 | <>The project was renamed xPack GCC 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/HistoryWindowsUcrt/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function HistoryWindowsUcrt(): JSX.Element { 16 | return ( 17 | <>In the Windows binaries, the MSVC runtime was replaced with the newer Universal C Runtime (UCRT) 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/HistoryXpm/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function HistoryXpm({specifier}): JSX.Element { 16 | return ( 17 | <>The xPack metadata has been added, and the package can now be more conveniently installed via xpm. It is available from npmjs.com as {specifier ? specifier : '@xpack-dev-tools/gcc'} 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/HistoryZipAdded/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function HistoryZipAdded({platforms}): JSX.Element { 16 | return ( 17 | <>Standard .zip archives were added in parallel with Windows setup files 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/_history-gnu-arm-eclipse.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | This project began in **{props.date || 'DATE'}** as one of the support tools for the 7 | **GNU Arm Eclipse** plug-ins, 8 | which were later rebranded as **GNU MCU Eclipse** plug-ins and are now 9 | integrated into the [Eclipse Embedded CDT](https://eclipse-embed-cdt.github.io). 10 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/_history-rename-xpack.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Link from '@docusaurus/Link'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | The project was renamed **xPack GCC** 9 | (in {props.releaseName || 'NAME'}). 10 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/_history-restructuring.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | The project underwent a comprehensive restructuring. To streamline the top 7 | `package.json` by showcasing only user-related definitions and concealing 8 | build-related ones, all build-related files were relocated to the 9 | `build-assets` folder. Furthermore, the development Git branch was 10 | renamed to `xpack-development` for enhanced clarity. 11 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/_history-setup-discontinued.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Link from '@docusaurus/Link'; 5 | 6 | {/* ------------------------------------------------------------------------ */} 7 | 8 | To increase flexibility and 9 | allow multiple versions of a tool to be installed on the same system, 10 | the Windows setup format was discontinued. From 11 | version {props.releaseName || 'NAME'} onward, 12 | for Windows, only a standard `.zip` archive was distributed. 13 | -------------------------------------------------------------------------------- /website/docs/project/history/_common/_history-xbb-v5.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | The project received a significant update by transitioning the build 7 | scripts from the cumbersome monolithic XBB Docker images to the more 8 | flexible and modular **xpm** packages. XBB version 9 | [5.0.0](https://xpack.github.io/blog/2023/02/07/xbb-v5.0.0-released/) 10 | marked a major milestone for the xPack project, as it was the first 11 | self-sustained release. This version enabled the creation of new 12 | binary packages using existing binary packages, eliminating the need for 13 | custom Docker images or other compiled tools. 14 | -------------------------------------------------------------------------------- /website/docs/project/history/_project/_content.mdx: -------------------------------------------------------------------------------- 1 | 2 | import versionMajor from '@site/src/libs/versionMajor'; 3 | 4 | import HistoryWindowsUcrt from '../_common/HistoryWindowsUcrt'; 5 | import HistoryAppleSiliconAdded from '../_common/HistoryAppleSiliconAdded'; 6 | import History32bitDiscontinued from '../_common/History32bitDiscontinued'; 7 | 8 | import HistoryXBBv5 from '../_common/_history-xbb-v5.mdx'; 9 | import HistoryRestructuring from '../_common/_history-restructuring.mdx'; 10 | 11 | {/* ------------------------------------------------------------------------ */} 12 | 13 | ### April 2020 14 | 15 | The project was created in **April 2020**. 16 | 17 | ### May 2021 18 | 19 | The first **xPack GCC** release was 20 | [v8.5.0-1](/blog/2021/05/24/gcc-v8-5-0-1-released/). 21 | 22 | ### October 2021 23 | 24 | (in [v11.2.0-1](/blog/2021/10/20/gcc-v11-2-0-1-released/)). 25 | 26 | ### February 2022 27 | 28 | (in [v11.2.0-3](/blog/2022/02/11/gcc-v11-2-0-3-released/)). 29 | 30 | (in [v11.2.0-3](/blog/2022/02/11/gcc-v11-2-0-3-released/)). 31 | 32 | ### November 2022 33 | 34 | 35 | 36 | ### October 2023 37 | 38 | Given that the GCC project continues to maintain older versions for several 39 | years, **xPack GCC** will also release updates for previous versions. 40 | For example, after releasing the new **{versionMajor()}.2**, updates for 41 | the previous three versions - **{versionMajor() - 1}.3**, **{versionMajor() - 2}.4**, **{versionMajor() - 3}.5** - will also be released. 42 | 43 | ### August 2024 44 | 45 | 46 | -------------------------------------------------------------------------------- /website/docs/project/history/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: History 7 | description: The most important moments since the project was created. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - history 12 | 13 | date: 2024-10-24 23:58:00 +0300 14 | 15 | --- 16 | 17 | import ProjectContent from './_project/_content.mdx'; 18 | 19 | {/* ------------------------------------------------------------------------ */} 20 | 21 | # The xPack GCC history 22 | 23 | 24 | -------------------------------------------------------------------------------- /website/docs/releases/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: Releases 7 | description: The full list of project releases. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - releases 12 | 13 | hide_table_of_contents: true 14 | 15 | date: 2020-07-21 17:53:00 +0300 16 | 17 | --- 18 | 19 | import {ReleasesList} from '@site/src/components/ReleasesList'; 20 | 21 | {/* ------------------------------------------------------------------------ */} 22 | 23 | # The xPack GCC releases 24 | 25 | The releases, in reverse chronological order, are: 26 | 27 | 28 | -------------------------------------------------------------------------------- /website/docs/tests/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Test results 3 | 4 | --- 5 | 6 | ## Reports by version 7 | 8 | - [14.2.0-2](/docs/tests/14.2.0-2/) 9 | - [14.2.0-1](/docs/tests/14.2.0-1/) 10 | - [14.1.0-1](/docs/tests/14.1.0-1/) 11 | - [13.3.0-2](/docs/tests/13.3.0-2/) 12 | - [13.3.0-1](/docs/tests/13.3.0-1/) 13 | - [12.4.0-2](/docs/tests/12.4.0-2/) 14 | - [12.4.0-1](/docs/tests/12.4.0-1/) 15 | - [11.5.0-2](/docs/tests/11.5.0-2/) 16 | - [11.5.0-1](/docs/tests/11.5.0-1/) 17 | 18 | ## Notes 19 | 20 | ### GNU/Linux 21 | 22 | Both x64 and arm64 are fine, except static **sleepy-threads-cv**. 23 | 24 | #### Failed test sleepy-threads-cv 25 | 26 | This issue affects only static test cases, 27 | the non-static ones are fine. 28 | It seems to be an incompatibility with older GLIBC versions 29 | ([#115421](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115421)). 30 | 31 | ### macOS 32 | 33 | Both x64 and arm64 are fine, except **overload-new-cpp**. 34 | 35 | #### Failed test overload-new-cpp 36 | 37 | The two test cases fail only when garbage 38 | collected sections are is used and not static (to be investigated, see 39 | [#132](https://github.com/iains/gcc-darwin-arm64/issues/132)). 40 | 41 | ### Mingw-w64 Windows x86_64 42 | 43 | There are more failing tests that on macOS and GNU/Linux. 44 | 45 | #### Failed test autoimport-main 46 | 47 | This problem reported by the Mingw-w64 runtime 48 | seems to be related to LTO, the other test cases are fine. 49 | 50 | #### Failed test hello-weak1-c 51 | 52 | Weak symbols seem not supported, probably 53 | the LTO test cases pass because the weak symbols are resolved. 54 | 55 | #### Failed test overload-new-cpp 56 | 57 | All non-static test cases fail, all static pass. 58 | 59 | #### Failed test throwcatch-main 60 | 61 | This problem reported by the Mingw-w64 runtime 62 | seems to be related to LTO, the other test cases are fine. 63 | 64 | #### Failed test unwind-weak-cpp 65 | 66 | Possibly related to the weak symbols issues. 67 | 68 | #### Failed test weak-duplicate-c 69 | 70 | Weak symbols seem not supported, probably 71 | the LTO test cases pass because the weak symbols are resolved. 72 | 73 | #### Failed test weak-use-c 74 | 75 | Weak symbols seem not supported, probably 76 | the LTO test cases pass because the weak symbols are resolved. 77 | -------------------------------------------------------------------------------- /website/docs/user/_common/_content.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import CommonLibrariesAndRpath from '../_common/_libraries-and-rpath.mdx'; 5 | 6 | import ProjectMore from '../_project/_more.mdx'; 7 | import ProjectVersioning from '../_project/_versioning.mdx'; 8 | import ProjectUseInTesting from '../_project/_use-in-testing.mdx'; 9 | 10 | {/* ------------------------------------------------------------------------ */} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /website/docs/user/_common/_libraries-and-rpath.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | ## Shared libraries 7 | 8 | On all platforms the binary xpm packages are **standalone**, 9 | and expect only the standard runtime to be present on the host. 10 | 11 | All dependencies that are built as shared libraries are copied locally 12 | in the `libexec` folder (or in the same folder as the executable for Windows). 13 | 14 | ### `DT_RPATH` and `LD_LIBRARY_PATH` 15 | 16 | On GNU/Linux the binaries are adjusted to use a relative path: 17 | 18 | ```console 19 | $ readelf -d library.so | grep rpath 20 | 0x000000000000001d (RPATH) Library rpath: [$ORIGIN] 21 | ``` 22 | 23 | In the GNU `ld.so` search strategy, the `DT_RPATH` has 24 | the highest priority, higher than `LD_LIBRARY_PATH`, so if this latter one 25 | is set in the environment, it should not interfere with the xPack binaries. 26 | 27 | Please note that previous versions, up to mid-2020, used `DT_RUNPATH`, which 28 | has a priority lower than `LD_LIBRARY_PATH`; setting `LD_LIBRARY_PATH` 29 | in the environment overrode `DT_RUNPATH`, resulting in failures to load 30 | the libraries. 31 | 32 | ### `@rpath` and `@loader_path` 33 | 34 | Similarly, on macOS, the binaries are adjusted with `install_name_tool` 35 | (part of CLT) to use a relative path. 36 | -------------------------------------------------------------------------------- /website/docs/user/_common/_versioning.mdx: -------------------------------------------------------------------------------- 1 | {/* DO NOT EDIT! */} 2 | {/* Automatically generated from docusaurus-template-liquid/templates/docusaurus. */} 3 | 4 | import Admonition from '@theme/Admonition'; 5 | 6 | import LinksVsForwarders from '@site/src/components/LinksVsForwarders'; 7 | 8 | {/* ------------------------------------------------------------------------ */} 9 | 10 | ## Versioning 11 | 12 | The version string used by the 13 | upstream {props.upstreamName ? props.upstreamName : 'GCC'} project 14 | is a three number string 15 | like 14.2.0; 16 | to this string the xPack distribution adds a fourth number, 17 | but since [SemVer](https://semver.org) allows only three numbers, 18 | all additional ones can 19 | be added only as pre-release strings, separated by a dash, 20 | like 14.2.0-2. When 21 | published as a npm package, the version gets 22 | a fifth number, 23 | like 14.2.0-2.1. 24 | 25 | Since adherence of third party packages to SemVer is not guaranteed, 26 | it is recommended to avoid referring to the xPack GCC dependency via 27 | a SemVer expressions 28 | like ^14.2.0-2 or ~14.2.0-2, and 29 | prefer exact matches, 30 | like 14.2.0-2.1. 31 | -------------------------------------------------------------------------------- /website/docs/user/_project/_use-in-testing.mdx: -------------------------------------------------------------------------------- 1 | 2 | {/* ------------------------------------------------------------------------ */} 3 | 4 | ## Using gcc in testing 5 | 6 | TODO 7 | -------------------------------------------------------------------------------- /website/docs/user/_project/_versioning.mdx: -------------------------------------------------------------------------------- 1 | 2 | import Versioning from '../_common/_versioning.mdx'; 3 | 4 | {/* ------------------------------------------------------------------------ */} 5 | 6 | {/* By default use the common versioning text; replace it with a custom one if needed */} 7 | 8 | -------------------------------------------------------------------------------- /website/docs/user/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # DO NOT EDIT! 4 | # Automatically generated from docusaurus-template-liquid/templates/docusaurus. 5 | 6 | title: User's Guide 7 | description: User information, including the versioning scheme, usage of shared libraries, and RPATH configuration on GNU/Linux. 8 | keywords: 9 | - xpack 10 | - gcc 11 | - user 12 | - guide 13 | - versioning 14 | - shared 15 | - rpath 16 | 17 | date: 2024-07-21 18:56:00 +0300 18 | 19 | --- 20 | 21 | import Content from './_common/_content.mdx'; 22 | 23 | {/* ------------------------------------------------------------------------ */} 24 | 25 | # How to use the xPack GCC 26 | 27 | This section is intended for those who plan to integrate 28 | the **xPack GCC** into their workflows. 29 | 30 | 31 | -------------------------------------------------------------------------------- /website/docusaurus-config-redirects.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the xPack project (http://xpack.github.io). 3 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 4 | * 5 | * Permission to use, copy, modify, and/or distribute this software 6 | * for any purpose is hereby granted, under the terms of the MIT license. 7 | * 8 | * If a copy of the license was not distributed with this file, it can 9 | * be obtained from https://opensource.org/licenses/MIT/. 10 | */ 11 | 12 | import util from 'node:util'; 13 | 14 | export const redirects = { 15 | // fromExtensions: ['html', 'htm'], // /myPage.html -> /myPage 16 | // toExtensions: ['exe', 'zip'], // /myAsset -> /myAsset.zip (if latter exists) 17 | redirects: [ 18 | // // /docs/oldDoc -> /docs/newDoc 19 | // { 20 | // to: '/docs/newDoc', 21 | // from: '/docs/oldDoc', 22 | // }, 23 | // // Redirect from multiple old paths to the new path 24 | // { 25 | // to: '/docs/newDoc2', 26 | // from: ['/docs/oldDocFrom2019', '/docs/legacyDocFrom2016'], 27 | // }, 28 | 29 | { 30 | from: '/docs/developer-info', 31 | to: '/docs/developer', 32 | }, 33 | { 34 | from: '/docs/maintainer-info', 35 | to: '/docs/maintainer', 36 | }, 37 | { 38 | from: '/docs/user-info', 39 | to: '/docs/user', 40 | }, 41 | { 42 | from: '/docs/about', 43 | to: '/docs/project/about', 44 | }, 45 | ], 46 | createRedirects(existingPath) { 47 | console.log(existingPath); 48 | // if (existingPath.includes('/evenimente')) { 49 | // // console.log(`to ${existingPath} from ${existingPath.replace('/evenimente', '/events')}`); 50 | // // Redirect from /events/X to /evenimente/X 51 | // return [ 52 | // existingPath.replace('/evenimente', '/events') 53 | // ]; 54 | // } else if (existingPath.includes('/amintiri')) { 55 | // // console.log(`to ${existingPath} from ${existingPath.replace('/amintiri', '/blog')}`); 56 | // // Redirect from /blog/Z to /amintiri/X 57 | // return [ 58 | // existingPath.replace('/amintiri', '/blog') 59 | // ]; 60 | // } 61 | // return undefined; // Return a falsy value: no redirect created 62 | // }, 63 | 64 | if (existingPath.includes('/user-info')) { 65 | return [ 66 | existingPath.replace('/user-info', '/user') 67 | ]; 68 | } else if (existingPath.includes('/developer-info')) { 69 | return [ 70 | existingPath.replace('/developer-info', '/developer') 71 | ]; 72 | } else if (existingPath.includes('/maintainer-info')) { 73 | return [ 74 | existingPath.replace('/maintainer-info', '/maintainer') 75 | ]; 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /website/doxygen/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | html 3 | xml 4 | -------------------------------------------------------------------------------- /website/sidebar-docs-user-custom.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the xPack project (http://xpack.github.io). 3 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 4 | * 5 | * Permission to use, copy, modify, and/or distribute this software 6 | * for any purpose is hereby granted, under the terms of the MIT license. 7 | * 8 | * If a copy of the license was not distributed with this file, it can 9 | * be obtained from https://opensource.org/licenses/mit. 10 | */ 11 | 12 | export const customDocsUserSidebarCategory = { 13 | type: 'category', 14 | label: 'User\'s Guide', 15 | link: { 16 | type: 'doc', 17 | id: 'user/index', 18 | }, 19 | items: [ 20 | { 21 | type: 'doc', 22 | id: 'user/index', 23 | label: 'TODO' 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /website/sidebar-user.js: -------------------------------------------------------------------------------- 1 | 2 | export const userSidebarCategory = { 3 | type: 'category', 4 | label: 'User\'s Guide', 5 | link: { 6 | type: 'doc', 7 | id: 'user/index', 8 | }, 9 | items: [ 10 | { 11 | type: 'doc', 12 | id: 'user/predefined-macros/index', 13 | label: 'Predefined Macros' 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /website/sidebars.ts: -------------------------------------------------------------------------------- 1 | // DO NOT EDIT! 2 | // Automatically generated from docusaurus-template-liquid/templates/docusaurus. 3 | 4 | import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; 5 | import {customDocsUserSidebarCategory} from "./sidebar-docs-user-custom"; 6 | 7 | /** 8 | * Creating a sidebar enables you to: 9 | - create an ordered group of docs 10 | - render a sidebar for each doc of that group 11 | - provide next/previous navigation 12 | 13 | The sidebars can be generated from the filesystem, or explicitly defined here. 14 | 15 | Create as many sidebars as you want. 16 | */ 17 | const sidebars: SidebarsConfig = { 18 | 19 | docsSidebar: [ 20 | { 21 | type: 'doc', 22 | id: 'getting-started/index', 23 | label: 'Getting Started' 24 | }, 25 | { 26 | type: 'doc', 27 | id: 'install/index', 28 | label: 'Install Guide' 29 | }, 30 | customDocsUserSidebarCategory, 31 | { 32 | type: 'doc', 33 | id: 'developer/index', 34 | label: 'Contributor\'s Guide' 35 | }, 36 | { 37 | type: 'doc', 38 | id: 'maintainer/index', 39 | label: 'Maintainer\'s Guide' 40 | }, 41 | { 42 | type: 'doc', 43 | id: 'tests/index', 44 | label: 'Tests results' 45 | }, 46 | { 47 | type: 'doc', 48 | id: 'faq/index', 49 | label: 'FAQ' 50 | }, 51 | { 52 | type: 'doc', 53 | id: 'support/index', 54 | label: 'Help Centre' 55 | }, 56 | { 57 | type: 'doc', 58 | id: 'releases/index', 59 | label: 'Releases' 60 | }, 61 | { 62 | type: 'category', 63 | label: 'Project', 64 | link: { 65 | type: 'doc', 66 | id: 'project/about/index', 67 | }, 68 | collapsed: false, 69 | items: [ 70 | { 71 | type: 'doc', 72 | id: 'project/about/index', 73 | label: 'About' 74 | }, 75 | { 76 | type: 'doc', 77 | id: 'project/history/index', 78 | label: 'History' 79 | }, 80 | { 81 | type: 'link', 82 | label: 'License', 83 | href: 'https://opensource.org/license/MIT', 84 | }, 85 | ] 86 | }, 87 | ], 88 | 89 | testsSidebar: [{type: 'autogenerated', dirName: 'tests'}], 90 | }; 91 | 92 | export default sidebars; 93 | -------------------------------------------------------------------------------- /website/src/components/HeadTitle/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | // import React from 'react'; 16 | import Head from '@docusaurus/Head'; 17 | 18 | /* 19 | * Use this component for plain titles, without the site title appended. 20 | */ 21 | 22 | export default function HeadTitle({title}): JSX.Element { 23 | return ( 24 | 25 | {title} 26 | 27 | 28 | ); 29 | } 30 | -------------------------------------------------------------------------------- /website/src/components/HomepageFeatures/FeatureItem.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import React from 'react'; 16 | 17 | export type FeatureItem = { 18 | title: string; 19 | Svg: React.ComponentType>; 20 | description: JSX.Element; 21 | }; 22 | -------------------------------------------------------------------------------- /website/src/components/HomepageFeatures/FeatureList.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import Link from '@docusaurus/Link'; 16 | 17 | import type { FeatureItem } from './FeatureItem'; 18 | 19 | export const FeatureList: FeatureItem[] = [ 20 | { 21 | title: 'Multi-version, cross-platform', 22 | Svg: require('@site/static/img/mosaic.svg').default, 23 | description: ( 24 | <> 25 | The xPack Framework aims to automate the installation of multiple versions of development tools that are otherwise not easily available in common software distributions, across multiple platforms (Windows, GNU/Linux). 26 | 27 | ), 28 | }, 29 | { 30 | title: 'Easy to Use & Reproducible', 31 | Svg: require('@site/static/img/check-badge.svg').default, 32 | description: ( 33 | <> 34 | The binary packages can be added to projects 35 | as development dependencies, 36 | and conveniently installed with xpm install. 37 | This feature also ensures reproducibility, which is particularly 38 | beneficial in CI/CD environments. 39 | 40 | ), 41 | }, 42 | { 43 | title: 'Part of the Node.js ecosystem', 44 | Svg: require('@site/static/img/globe.svg').default, 45 | description: ( 46 | <> 47 | The xpm CLI tool 48 | complements npm with 49 | several extra features specific to C/C++ projects. 50 | This allows the 51 | binary packages to nicely integrate into the Node.js ecosystem, 52 | while still allowing the binary archives to be installed manually. 53 | 54 | ), 55 | }, 56 | ]; 57 | -------------------------------------------------------------------------------- /website/src/components/HomepageFeatures/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import clsx from 'clsx'; 16 | import Heading from '@theme/Heading'; 17 | import Link from '@docusaurus/Link'; 18 | import styles from './styles.module.css'; 19 | 20 | import type { FeatureItem } from './FeatureItem'; 21 | import { FeatureList } from './FeatureList'; 22 | 23 | function Feature({title, Svg, description}: FeatureItem) { 24 | return ( 25 |
26 |
27 | 28 |
29 |
30 | {title} 31 |

{description}

32 |
33 |
34 | ); 35 | } 36 | 37 | export default function HomepageFeatures(): JSX.Element { 38 | return ( 39 | <> 40 |
41 |
42 |
43 | {FeatureList.map((props, idx) => ( 44 | 45 | ))} 46 |
47 |
48 |
49 |
50 |

Getting Started!

51 |
52 | 53 | ); 54 | } 55 | -------------------------------------------------------------------------------- /website/src/components/HomepageFeatures/styles.module.css: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | */ 5 | 6 | .features { 7 | display: flex; 8 | align-items: center; 9 | padding: 2rem 0 0.5rem 0; /* 2rem 0; */ 10 | width: 100%; 11 | } 12 | 13 | .featureSvg { 14 | height: 100px; 15 | width: 100px; 16 | } 17 | 18 | /* ------------------------------------------------------------------------- */ 19 | 20 | svg.featureSvg path { 21 | stroke: var(--docusaurus-svg-color); 22 | } 23 | 24 | /* ------------------------------------------------------------------------- */ 25 | -------------------------------------------------------------------------------- /website/src/components/InstallWithCopy/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import React from 'react'; 16 | import CodeBlock from '@theme/CodeBlock'; 17 | 18 | export default function InstallWithCopy({children}): JSX.Element { 19 | return ( 20 | 21 | {children} 22 | 23 | ); 24 | } 25 | -------------------------------------------------------------------------------- /website/src/components/LinksVsForwarders/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import clsx from 'clsx'; 16 | 17 | export default function LinksVsForwarders({isWindows}): JSX.Element { 18 | if (isWindows) 19 | return ( <>forwarder scripts ) 20 | else 21 | return ( <>symbolic links ) 22 | } 23 | -------------------------------------------------------------------------------- /website/src/components/ReleasesList/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import {usePluginData} from '@docusaurus/useGlobalData'; 16 | import util from 'node:util'; 17 | import useBaseUrl from '@docusaurus/useBaseUrl'; 18 | 19 | export function ReleasesList({items}): JSX.Element { 20 | const pluginData = usePluginData('select-releases'); 21 | 22 | pluginData.releasesTable.forEach((item) => console.log(`${item.permalink} - ${item.title}`)) 23 | return ( 24 |
    25 | { 26 | pluginData.releasesTable.length > 0 ? 27 | pluginData.releasesTable.map(release => ( 28 |
  • 29 | {release.title} {release.downloadUrl ? (<>(download)) : (<>)} 30 |
  • 31 | )) : 32 | ( 33 |
  • 34 | none yet 35 |
  • 36 | ) 37 | } 38 |
39 | ) 40 | } 41 | -------------------------------------------------------------------------------- /website/src/libs/customField.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 16 | 17 | export default function customField(name: string): string { 18 | return useDocusaurusContext().siteConfig.customFields[name]; 19 | } 20 | -------------------------------------------------------------------------------- /website/src/libs/dateYYYYMMDD.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function dateYYYYMMDD(): string { 16 | return (new Date()).toISOString().slice(0,10).replace(/-/g,""); 17 | } 18 | -------------------------------------------------------------------------------- /website/src/libs/isXpackSubversionDouble.js: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import customField from '@site/src/libs/customField'; 16 | 17 | export default function isXpackSubversionDouble() { 18 | return (customField('xpackSubversion').indexOf('.') !== -1); 19 | } 20 | -------------------------------------------------------------------------------- /website/src/libs/versionMajor.js: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT/. 13 | */ 14 | 15 | import customField from '@site/src/libs/customField'; 16 | 17 | export default function getVersionMajor() { 18 | // Remove from the first dot to the end. 19 | return parseInt(customField('upstreamVersion').replace(/[.].*/, ''), 10); 20 | } 21 | -------------------------------------------------------------------------------- /website/src/libs/versionMajor.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function getVersionMajor(version: string): number { 16 | // Remove from the first dot to the end. 17 | return parseInt(version.replace(/[.].*/, ''), 10); 18 | } 19 | -------------------------------------------------------------------------------- /website/src/libs/versionMinor.js: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT/. 13 | */ 14 | 15 | import customField from '@site/src/libs/customField'; 16 | 17 | export default function getVersionMinor() { 18 | // Remove from the beginning to the first dot and, in the remaining string 19 | // from the first dot to the end. 20 | return parseInt(customField('upstreamVersion').replace(/^[0-9]*[.]/, '').replace(/[.].*/, ''), 10); 21 | } 22 | -------------------------------------------------------------------------------- /website/src/libs/versionMinor.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | export default function getVersionMinor(version: string): number { 16 | // Remove from the beginning to the first dot and, in the remaining string 17 | // from the first dot to the end. 18 | return parseInt(version.replace(/^[0-9]*[.]/, '').replace(/[.].*/, ''), 10); 19 | } 20 | -------------------------------------------------------------------------------- /website/src/pages/index.module.css: -------------------------------------------------------------------------------- 1 | /** 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * CSS files with the .module.css suffix will be treated as CSS modules 6 | * and scoped locally. 7 | */ 8 | 9 | .heroBanner { 10 | padding: 2rem 0; /* 4rem 0; */ 11 | text-align: center; 12 | position: relative; 13 | overflow: hidden; 14 | } 15 | 16 | @media screen and (max-width: 996px) { 17 | .heroBanner { 18 | padding: 2rem; 19 | } 20 | } 21 | 22 | .buttons { 23 | display: flex; 24 | align-items: center; 25 | justify-content: center; 26 | } 27 | 28 | /* -------------------------------------------------------------------------- */ 29 | 30 | /** Reduce the width of the install code */ 31 | .installWithCopy { 32 | display: flex; 33 | align-items: center; 34 | justify-content: center; 35 | } 36 | .installWithCopy > div > div { 37 | padding: 0 2em; 38 | } 39 | 40 | /* -------------------------------------------------------------------------- */ 41 | -------------------------------------------------------------------------------- /website/src/pages/index.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import React from 'react'; 16 | import clsx from 'clsx'; 17 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 18 | import Layout from '@theme/Layout'; 19 | import Heading from '@theme/Heading'; 20 | import HeadTitle from '@site/src/components/HeadTitle'; 21 | 22 | import styles from './index.module.css'; 23 | import HomepageFeatures from '@site/src/components/HomepageFeatures'; 24 | import InstallWithCopy from '@site/src/components/InstallWithCopy'; 25 | 26 | function HomepageHeader() { 27 | const {siteConfig} = useDocusaurusContext(); 28 | return ( 29 |
30 | 31 |
32 | {siteConfig.title} 33 |

{siteConfig.tagline} 34 | 35 | 36 | 37 | 38 |

39 |
40 | xpm install @xpack-dev-tools/gcc@14.2.0-2.1 --verbose 41 | 42 | 43 |
44 |
45 |
46 | ); 47 | } 48 | 49 | export default function Home(): JSX.Element { 50 | const {siteConfig} = useDocusaurusContext(); 51 | return ( 52 | 55 | 56 |
57 | 58 |
59 |
60 | ); 61 | } 62 | -------------------------------------------------------------------------------- /website/src/plugins/SelectReleasesPlugin.js: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT! 3 | * Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | * 5 | * This file is part of the xPack project (http://xpack.github.io). 6 | * Copyright (c) 2024 Liviu Ionescu. All rights reserved. 7 | * 8 | * Permission to use, copy, modify, and/or distribute this software 9 | * for any purpose is hereby granted, under the terms of the MIT license. 10 | * 11 | * If a copy of the license was not distributed with this file, it can 12 | * be obtained from https://opensource.org/licenses/MIT. 13 | */ 14 | 15 | import util from 'util'; 16 | 17 | // https://github.com/facebook/docusaurus/pull/9931 18 | 19 | export default async function SelectReleasesPlugin(context, options) { 20 | return { 21 | name: 'select-releases', 22 | async allContentLoaded({ allContent, actions }) { 23 | 24 | const allBlogs = allContent['docusaurus-plugin-content-blog'] 25 | // console.log('SelectReleasesPlugin 1 ' + util.inspect(allBlogs)) 26 | 27 | const blogPosts = allBlogs.default.blogPosts 28 | // console.log('SelectReleasesPlugin 2 ' + util.inspect(blogPosts)) 29 | 30 | const releasesTable = [] 31 | blogPosts.forEach(post => { 32 | // console.log('SelectReleasesPlugin 3 ' + util.inspect(post.metadata.tags)) 33 | post.metadata.tags.forEach(tag => { 34 | if (tag.label.toLowerCase() === 'releases') { 35 | const permalink = post.metadata.permalink.endsWith('/') ? 36 | post.metadata.permalink : 37 | post.metadata.permalink + '/' 38 | // console.log(permalink) 39 | releasesTable.push({ 40 | title: post.metadata.title, 41 | permalink, 42 | downloadUrl: post.metadata.frontMatter['download_url'] 43 | }) 44 | } 45 | }) 46 | }) 47 | 48 | // console.log('SelectReleasesPlugin 4 ' + util.inspect(releasesTable)) 49 | 50 | actions.setGlobalData({ releasesTable: releasesTable }) 51 | }, 52 | }; 53 | } 54 | -------------------------------------------------------------------------------- /website/static/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | reference 3 | -------------------------------------------------------------------------------- /website/static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/.nojekyll -------------------------------------------------------------------------------- /website/static/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /website/static/favicons/favicon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/favicons/favicon-48x48.png -------------------------------------------------------------------------------- /website/static/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/favicons/favicon.ico -------------------------------------------------------------------------------- /website/static/favicons/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xPack", 3 | "short_name": "xPack", 4 | "icons": [ 5 | { 6 | "src": "/gcc-xpack/favicons/web-app-manifest-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png", 9 | "purpose": "maskable" 10 | }, 11 | { 12 | "src": "/gcc-xpack/favicons/web-app-manifest-512x512.png", 13 | "sizes": "512x512", 14 | "type": "image/png", 15 | "purpose": "maskable" 16 | } 17 | ], 18 | "theme_color": "#ffffff", 19 | "background_color": "#ffffff", 20 | "display": "standalone" 21 | } 22 | -------------------------------------------------------------------------------- /website/static/favicons/web-app-manifest-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/favicons/web-app-manifest-192x192.png -------------------------------------------------------------------------------- /website/static/favicons/web-app-manifest-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/favicons/web-app-manifest-512x512.png -------------------------------------------------------------------------------- /website/static/img/README.md: -------------------------------------------------------------------------------- 1 | # Images 2 | 3 | The .svg icons used in the home page are from: 4 | 5 | - https://www.svgrepo.com/collection/scarlab-duotone-line-vectors/ 6 | -------------------------------------------------------------------------------- /website/static/img/apple-svgrepo-com-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /website/static/img/apple-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /website/static/img/bulb-on-svgrepo-com-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /website/static/img/bulb-on-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /website/static/img/check-badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /website/static/img/components-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/img/components-256.png -------------------------------------------------------------------------------- /website/static/img/download-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/img/download-icon.png -------------------------------------------------------------------------------- /website/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/img/favicon.ico -------------------------------------------------------------------------------- /website/static/img/globe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /website/static/img/logo-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/img/logo-256.png -------------------------------------------------------------------------------- /website/static/img/mosaic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /website/static/img/pdf-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/img/pdf-24.png -------------------------------------------------------------------------------- /website/static/img/sunrise-og-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xpack-dev-tools/gcc-xpack/0a3e2ed1918e28beb8b8bb6616a3d8f836099dc8/website/static/img/sunrise-og-image.jpg -------------------------------------------------------------------------------- /website/static/img/web-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /website/static/img/web-globe-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/static/img/web-globe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/static/img/web.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /website/static/img/windows-svgrepo-com-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /website/static/img/windows-svgrepo-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /website/static/robots.txt: -------------------------------------------------------------------------------- 1 | Sitemap: https://xpack-dev-tools.github.io/gcc-xpack/sitemap.xml 2 | 3 | User-agent: * 4 | Disallow: /gcc-xpack/blog/archive/ 5 | Disallow: /gcc-xpack/blog/authors/ 6 | Disallow: /gcc-xpack/blog/page/ 7 | Disallow: /gcc-xpack/blog/tags/ 8 | -------------------------------------------------------------------------------- /website/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // DO NOT EDIT! 3 | // Automatically generated from docusaurus-template-liquid/templates/docusaurus. 4 | 5 | // This file is not used in compilation. It is here just for a nice editor experience. 6 | "extends": "@docusaurus/tsconfig", 7 | "compilerOptions": { 8 | "baseUrl": "." 9 | } 10 | } 11 | --------------------------------------------------------------------------------