Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3f154e9
build: add updated autotools config scripts
frangarcj Dec 31, 2025
ef23444
deps: update toolchain dependencies to latest versions
frangarcj Dec 31, 2025
94aec5f
gcc: add patch for GCC 15.2.0
frangarcj Dec 31, 2025
6b43b6a
gcc: remove obsolete GCC 10.3.0 patch
frangarcj Dec 31, 2025
190e200
gdb: update patch for GDB 15.2
frangarcj Dec 31, 2025
915e9aa
libzip: update patch to match newer version
frangarcj Dec 31, 2025
f3641bb
gdb: add support for ARM Vita target in osabi.h
frangarcj Jan 1, 2026
cf5c252
gcc: remove option to use system zlib in toolchain dependencies
frangarcj Jan 1, 2026
79ce0db
build: update macOS runner version to 14
frangarcj Jan 1, 2026
3155678
build: add texinfo to macOS build dependencies
frangarcj Jan 1, 2026
46975e0
gcc: update toolchain dependency to use zlib from specified directory
frangarcj Jan 1, 2026
8ce2849
build: update Dockerfile and CI configuration for improved compatibil…
frangarcj Jan 1, 2026
8f0ff6b
build: add DOWNLOAD_EXTRACT_TIMESTAMP to toolchain dependencies and p…
frangarcj Jan 1, 2026
0106ffd
build: modify make command avoid race conditions in macOS build
frangarcj Jan 1, 2026
1a4acb8
build: fix zlib download URL by adding fossils fallback
frangarcj Apr 24, 2026
c115b39
build: remove autoreconf for libelf to preserve patch and fix Windows…
frangarcj Apr 24, 2026
45d287a
build: fix libelf Windows build by adding CFLAGS=-std=gnu99 and zlib …
frangarcj Apr 24, 2026
dc9c557
build: revert libelf to master state but keep config.guess copy via &&
frangarcj Apr 24, 2026
d805130
build: fix libelf by patching configure.in and using autoreconf
frangarcj Apr 24, 2026
a2422ef
build: fix GDB and binutils on modern GCC (C23 issues)
frangarcj Apr 24, 2026
bc6c213
ci: optimize build speed with caching and parallelism
frangarcj Apr 24, 2026
a4bb8e5
ci: use native arm64 runner for docker build
frangarcj Apr 25, 2026
0e8aef5
ci: add ccache and download caching to build workflow
frangarcj Apr 25, 2026
8c56249
ci: add bison and flex to Dockerfile
frangarcj Apr 25, 2026
7a503fa
build: disable documentation generation for binutils and gdb
frangarcj Apr 25, 2026
d3961c4
ci: fix docker manifest merge syntax
frangarcj Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 68 additions & 16 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,26 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo apt-get install -y cmake cmake-data git build-essential autoconf automake libtool texinfo bison flex pkg-config
sudo apt-get install -y cmake cmake-data git build-essential autoconf automake libtool texinfo bison flex pkg-config ccache
- name: ccache
uses: actions/cache@v4
with:
path: ~/.ccache
key: ${{ runner.os }}-ccache-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-
- name: downloads
uses: actions/cache@v4
with:
path: build/downloads
key: ${{ runner.os }}-downloads-${{ hashFiles('CMakeLists.txt') }}
restore-keys: |
${{ runner.os }}-downloads-
- name: Build
run: |
git config --global user.email "builds@travis-ci.com"
git config --global user.name "Travis CI"
mkdir build
mkdir -p build
cd build
cmake ..
make -j$(nproc) tarball
Expand All @@ -39,13 +52,26 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo apt-get install -y cmake cmake-data git build-essential autoconf automake libtool texinfo bison flex pkg-config
sudo apt-get install -y cmake cmake-data git build-essential autoconf automake libtool texinfo bison flex pkg-config ccache
- name: ccache
uses: actions/cache@v4
with:
path: ~/.ccache
key: ${{ runner.os }}-ccache-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-
- name: downloads
uses: actions/cache@v4
with:
path: build/downloads
key: ${{ runner.os }}-downloads-${{ hashFiles('CMakeLists.txt') }}
restore-keys: |
${{ runner.os }}-downloads-
- name: Build
run: |
git config --global user.email "builds@travis-ci.com"
git config --global user.name "Travis CI"
mkdir build
mkdir -p build
cd build
cmake ..
make -j$(nproc) tarball
Expand All @@ -56,45 +82,71 @@ jobs:
name: vitasdk-linux-arm64
path: build/*.tar.bz2
build-macos:
runs-on: macos-12
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Install dependencies
run: |
brew install autoconf automake libtool texinfo ccache
- name: ccache
uses: actions/cache@v4
with:
path: ~/Library/Caches/ccache
key: ${{ runner.os }}-ccache-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-
- name: downloads
uses: actions/cache@v4
with:
path: build/downloads
key: ${{ runner.os }}-downloads-${{ hashFiles('CMakeLists.txt') }}
restore-keys: |
${{ runner.os }}-downloads-
- name: Build
run: |
git config --global user.email "builds@travis-ci.com"
git config --global user.name "Travis CI"
brew install autoconf automake libtool
mkdir build
mkdir -p build
cd build
cmake ..
make -j$(nproc) tarball
make -j$(sysctl -n hw.logicalcpu) tarball
- name: Upload artifacts
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: vitasdk-macos
path: build/*.tar.bz2
build-windows:
# TODO match as build-linux
# we don't know reason yet, mingw build was failed when libelf compille.
# mingw output have to be static linking, and that this reason, we are able to use 22.04 in here
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo apt-get install -y cmake cmake-data git build-essential autoconf automake libtool texinfo bison flex pkg-config g++-mingw-w64
sudo apt-get install -y cmake cmake-data git build-essential autoconf automake libtool texinfo bison flex pkg-config g++-mingw-w64 ccache
- name: ccache
uses: actions/cache@v4
with:
path: ~/.ccache
key: ${{ runner.os }}-ccache-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-
- name: downloads
uses: actions/cache@v4
with:
path: build/downloads
key: ${{ runner.os }}-downloads-${{ hashFiles('CMakeLists.txt') }}
restore-keys: |
${{ runner.os }}-downloads-
- name: Build
run: |
git config --global user.email "builds@travis-ci.com"
git config --global user.name "Travis CI"
unset CXX
unset CC
mkdir build
mkdir -p build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=toolchain-x86_64-w64-mingw32.cmake
make -j$(nproc) tarball
Expand Down
125 changes: 105 additions & 20 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,120 @@ on:
pull_request:
branches:
- master
- gcc-15
push:
branches:
- master
- gcc-15
tags:
- "v*" # Construir también cuando se sube un tag v1.0, etc.
schedule:
- cron: "0 0 * * *"
repository_dispatch:
types: [run_build]

env:
REGISTRY_IMAGE: vitasdk/buildscripts

jobs:
build:
runs-on: ${{ matrix.platform == 'amd64' && 'ubuntu-latest' || 'ubuntu-24.04-arm' }}
strategy:
fail-fast: false
matrix:
platform: [amd64, arm64]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: downloads
uses: actions/cache@v4
with:
path: build/downloads
key: ${{ runner.os }}-downloads-${{ hashFiles('CMakeLists.txt') }}
restore-keys: |
${{ runner.os }}-downloads-

- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push by digest
id: build
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/${{ matrix.platform }}
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=${{ github.event_name != 'pull_request' }}
cache-from: type=gha,scope=${{ matrix.platform }}
cache-to: type=gha,mode=max,scope=${{ matrix.platform }}

- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ matrix.platform }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1

merge:
runs-on: ubuntu-latest

if: github.event_name != 'pull_request'
needs: build
steps:
- uses: actions/checkout@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
if: github.event_name != 'pull_request'

- uses: docker/build-push-action@v3
with:
push: ${{ github.event_name != 'pull_request' }}
tags: vitasdk/buildscripts:latest
- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest,enable={{is_default_branch}}

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(echo "${{ steps.meta.outputs.tags }}" | xargs -n 1 echo -t) \
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)

- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
Loading
Loading