diff --git a/.github/workflows/extra-arm.yml b/.github/workflows/extra-arm.yml deleted file mode 100644 index fce07b2cf8..0000000000 --- a/.github/workflows/extra-arm.yml +++ /dev/null @@ -1,108 +0,0 @@ -name: Extra Monthly Builds (ARM) - -on: - schedule: - - cron: '0 0 1 * *' # Build on the 1st of every month at midnight - workflow_dispatch: - inputs: - should-deploy: - description: 'Deploy on success' - required: true - default: "true" # No boolean support at the moment - -# !! NOTICE !! -# This workflow spec is basically a copy of linux-arm.yml. It includes -# aspects of extra.yml for the manual workflow dispatch. Please update -# this file according to its original files. - -jobs: - build: - strategy: - fail-fast: false # let them finish bc. mixed platforms - matrix: - include: - # Some other flavors for backwards compatibility - - arch: linux32ARMv6 - flavor: squeak.cog.v3 - - arch: linux32ARMv6 - flavor: squeak.stack.v3 - # CogMT not ready yet - # - arch: linux32ARMv8 - # flavor: squeak.cogmt.spur - - runs-on: ubuntu-latest # we setup QEMU to produce binaries anyway - name: ${{ matrix.flavor }} for ${{ matrix.arch }} - env: - ARCH: ${{ matrix.arch }} - ARCH_ARM: ${{ matrix.arch == 'linux32ARMv6' && 'armv6' || matrix.arch == 'linux32ARMv7' && 'armv7' || 'aarch64' }} - FLAVOR: ${{ matrix.flavor }} - MODE: fast # no assert or debug here - HEARTBEAT: threaded # itimer not supported - steps: - - name: Checkout files - uses: actions/checkout@v3 - - # TODO: Can we use the same thirdparty cache for armv6, armv7, and aarch64? Are pre-compiled binaries compatible or organized differently? - # - name: Restore build cache - # uses: actions/cache@v3 - # with: - # path: .thirdparty-cache - # key: thirdparty-cache-linux-${{ env.ARCH_ARM }} - - # https://github.com/marketplace/actions/run-on-architecture - - name: Build VM - uses: uraimo/run-on-arch-action@v2 - id: build-vm - with: - arch: ${{ env.ARCH_ARM }} - distro: buster - - #TODO: Somehow use ./scripts/ci/actions_prepare_linux_arm.sh - #SEE: https://github.com/uraimo/run-on-arch-action/issues/54 - install: | - apt update -y - apt install -yq --no-install-suggests --no-install-recommends build-essential git devscripts uuid-dev libcairo2-dev libpango1.0-dev libgl1-mesa-dev libgl1-mesa-glx libssl-dev libevdev-dev m4 libpulse-dev libasound2-dev libfreetype6-dev libx11-dev libxrender-dev libxrandr-dev libtool automake autoconf libltdl-dev - git config --global --add safe.directory ${{ github.workspace }} - - env: | # Copy the entire environment for the docker container - ARCH: ${{ env.ARCH }} - ARCH_ARM: ${{ env.ARCH_ARM }} - FLAVOR: ${{ env.FLAVOR }} - MODE: ${{ env.MODE }} - HEARTBEAT: ${{ env.HEARTBEAT }} - - run: ./scripts/ci/actions_build.sh - - - name: Post Build VM - #TODO: https://github.com/uraimo/run-on-arch-action/issues/52 - run: | - sudo chown -R runner ${{ steps.build-vm.outputs.PRODUCTS_PATH }} - echo "ASSET_REVISION=${{ steps.build-vm.outputs.ASSET_REVISION }}" >> $GITHUB_ENV - echo "ASSET_NAME=${{ steps.build-vm.outputs.ASSET_NAME }}" >> $GITHUB_ENV - echo "PRODUCTS_PATH=${{ steps.build-vm.outputs.PRODUCTS_PATH }}" >> $GITHUB_ENV - echo "APP_NAME=${{ steps.build-vm.outputs.APP_NAME }}" >> $GITHUB_ENV - - - name: Sign VM (not implemented) - if: false - run: ./deploy/sign-vm.sh - - - name: Pack VM - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-release - uses: ncipollo/release-action@v1 - if: github.event_name == 'schedule' || (github.event.inputs.should-deploy == 'true' && endsWith( github.ref , 'Cog' )) - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/extra-linux-classic.yml b/.github/workflows/extra-linux-classic.yml deleted file mode 100644 index 016e98c110..0000000000 --- a/.github/workflows/extra-linux-classic.yml +++ /dev/null @@ -1,120 +0,0 @@ -name: Extra Monthly Builds (Linux Classic) -# For older glibc version -# See: https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/742 - -on: - push: - paths: - - '.github/workflows/extra-linux-classic.yml' - schedule: - - cron: '0 0 1 * *' # Build on the 1st of every month at midnight - workflow_dispatch: - inputs: - should-deploy: - description: 'Deploy on success' - required: true - default: "true" # No boolean support at the moment - -# !! NOTICE !! -# This workflow spec is basically a copy of linux.yml. It includes -# aspects of extra.yml for the manual workflow dispatch. Please update -# this file according to its original files. - -jobs: - build: - strategy: - fail-fast: false - matrix: - os: - - name: ubuntu-20.04 - docker: buildpack-deps:20.04-scm - arch: - - linux64x64 - - linux32x86 - flavor: - - squeak.cog.spur - heartbeat: - - threaded - - itimer - mode: - - fast - #- debug - #- assert - #include: - # # sista build not fully prepared for linux64x64, so only choose selected configurations for linux32x86 - # - arch: linux32x86 - # flavor: squeak.sista.spur - # heartbeat: threaded - # mode: fast - # # squeak.stack.spur builds are not prepared for itimer - # - arch: linux64x64 - # flavor: squeak.stack.spur - # heartbeat: threaded - # mode: fast - # - arch: linux32x86 - # flavor: squeak.stack.spur - # heartbeat: threaded - # mode: fast - - runs-on: ubuntu-22.04 - container: - image: ${{ matrix.os.docker }} - name: ${{ matrix.flavor }}${{ matrix.heartbeat == 'itimer' && ' (itimer)' || '' }} for ${{ matrix.arch }}/${{ matrix.os.name }} ${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} - env: - ARCH: ${{ matrix.arch }} - ARCH_DETAILS: ${{ matrix.os.name }} - FLAVOR: ${{ matrix.flavor }} - MODE: ${{ matrix.mode }} - DEBIAN_FRONTEND: noninteractive # for container - steps: - - name: Checkout files - if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v3 - - - name: Checkout files for new release candidate - if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v3 - with: - ref: refs/tags/${{ github.event.inputs.tag }} - - - name: Configure git safe directory - run: git config --global --add safe.directory "$GITHUB_WORKSPACE" - - - name: Restore build cache - uses: actions/cache@v3 - with: - path: .thirdparty-cache - key: thirdparty-cache-${{ matrix.os.name }}-${{ matrix.arch }}-${{ matrix.flavor }} - - - name: Prepare environment - run: ./scripts/ci/actions_prepare_linux_x86.sh - - - name: Build VM - run: ./scripts/ci/actions_build.sh - env: - HEARTBEAT: ${{ matrix.heartbeat }} - - - name: Sign VM (not implemented) - if: false - run: ./deploy/sign-vm.sh - - - name: Pack VM - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-build - uses: ncipollo/release-action@v1 - if: github.event_name == 'schedule' || (github.event.inputs.should-deploy == 'true' && endsWith( github.ref , 'Cog' )) - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/extra.yml b/.github/workflows/extra.yml deleted file mode 100644 index 12f30194ff..0000000000 --- a/.github/workflows/extra.yml +++ /dev/null @@ -1,99 +0,0 @@ -name: Extra Monthly Builds - -on: - schedule: - - cron: '0 0 1 * *' # Build on the 1st of every month at midnight - workflow_dispatch: - inputs: - should-deploy: - description: 'Deploy on success' - required: true - default: "true" # No boolean support at the moment - - -jobs: - build: - strategy: - fail-fast: false # let them finish bc. different platforms - matrix: - include: - - arch: { name: win32x86, os: windows-2025 } - flavor: squeak.cog.v3 - - arch: { name: win32x86, os: windows-2025 } - flavor: squeak.stack.v3 - - arch: { name: win32x86, os: windows-2025 } - flavor: squeak.cog.spur.lowcode - - - arch: { name: linux32x86, os: ubuntu-22.04 } - flavor: squeak.cog.v3 - - arch: { name: linux32x86, os: ubuntu-22.04 } - flavor: squeak.stack.v3 - - runs-on: ${{ matrix.arch.os }} - name: ${{ matrix.flavor }} for ${{ matrix.arch.name }} - env: - ARCH: ${{ matrix.arch.name }} - FLAVOR: ${{ matrix.flavor }} - MODE: fast # no assert or debug here - HEARTBEAT: threaded # linux only; no itimer here - steps: - - name: Checkout files - uses: actions/checkout@v4 - # with: - # ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.ref || 'refs/heads/Cog'}} - - # - name: Restore build cache - # uses: actions/cache@v3 - # with: - # path: .thirdparty-cache - # key: ${{ startsWith(matrix.arch.name, 'win') && 'thirdparty-cache-win' || startsWith(matrix.arch.name, 'linux') && 'thirdparty-cache-linux' || 'thirdparty-cache-macos' }} - - - name: Prepare Linux build environment - if: startsWith(matrix.arch.name, 'linux') - run: sudo ./scripts/ci/actions_prepare_linux_x86.sh - - - name: Prepare MSYS2/Windows build environment - if: startsWith(matrix.arch.name, 'win') - uses: msys2/setup-msys2@v2 - with: - msystem: MSYS - release: false # use existing MSYS2 installation - update: false # faster builds - cache: true - install: git base make - - - name: Build VM (Linux) - if: startsWith(matrix.arch.name, 'linux') - shell: bash - run: ./scripts/ci/actions_build.sh - - - name: Build VM (Windows) - if: startsWith(matrix.arch.name, 'win') - shell: msys2 {0} #bash - run: ./scripts/ci/actions_build.sh - - - name: Sign VM (not implemented) - if: false - run: ./deploy/sign-vm.sh - - - name: Pack VM - shell: bash - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-build - uses: ncipollo/release-action@v1 - if: github.event_name == 'schedule' || (github.event.inputs.should-deploy == 'true' && endsWith( github.ref , 'Cog' )) - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/linux-arm.yml b/.github/workflows/linux-arm.yml deleted file mode 100644 index bc78ef4157..0000000000 --- a/.github/workflows/linux-arm.yml +++ /dev/null @@ -1,156 +0,0 @@ -name: Build for Linux (ARM) - -on: - push: # All branches, but appropriate paths only. - paths: - # This workflow spec and its support scripts - - '.github/workflows/linux-arm.yml' - # - 'scripts/ci/*linux_arm.sh' -- not needed because of QEMU, see below - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/linux32ARM*/**' # Makefile-based build scripts - - 'building/linux32/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/unix/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - pull_request: - branches: - - Cog - paths: - # This workflow spec and its support scripts - - '.github/workflows/linux-arm.yml' - # - 'scripts/ci/*linux_arm.sh' -- not needed because of QEMU, see below - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/linux32ARM*/**' # Makefile-based build scripts - - 'building/linux32/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/unix/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - workflow_dispatch: - inputs: - tag: - description: "Build new release candidate for tag" - required: true - default: YYYYMMDDHHMM - -jobs: - build: - strategy: - fail-fast: false # let them finish bc. mixed platforms - matrix: - arch: - - linux32ARMv6 - # - linux32ARMv7 # Newspeak only, see "extra-arm" workflow - # - linux64ARMv8 # moved to linux-arm64.yml workflow - flavor: - - squeak.cog.spur - - squeak.stack.spur - mode: - - fast - - debug - - assert - - runs-on: ubuntu-latest # we setup QEMU to produce binaries anyway - name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} - env: - ARCH: ${{ matrix.arch }} - ARCH_ARM: ${{ matrix.arch == 'linux32ARMv6' && 'armv6' || matrix.arch == 'linux32ARMv7' && 'armv7' || 'aarch64' }} - FLAVOR: ${{ matrix.flavor }} - MODE: ${{ matrix.mode }} - HEARTBEAT: threaded # itimer not supported - steps: - - name: Checkout files - if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v3 - - - name: Checkout files for new release candidate - if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v3 - with: - ref: refs/tags/${{ github.event.inputs.tag }} - - # TODO: Can we use the same thirdparty cache for armv6, armv7, and aarch64? Are pre-compiled binaries compatible or organized differently? - - name: Restore build cache - uses: actions/cache@v3 - with: - path: .thirdparty-cache - key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - - # https://github.com/marketplace/actions/run-on-architecture - - name: Build VM - uses: uraimo/run-on-arch-action@v2 - id: build-vm - with: - arch: ${{ env.ARCH_ARM }} - distro: buster - - #TODO: Somehow use ./scripts/ci/actions_prepare_linux_arm.sh - #SEE: https://github.com/uraimo/run-on-arch-action/issues/54 - install: | - apt update -y - apt install -yq --no-install-suggests --no-install-recommends build-essential git devscripts uuid-dev libcairo2-dev libpango1.0-dev libgl1-mesa-dev libgl1-mesa-glx libssl-dev libevdev-dev m4 libpulse-dev libasound2-dev libfreetype6-dev libx11-dev libxrender-dev libxrandr-dev libtool automake autoconf libltdl-dev - git config --global --add safe.directory ${{ github.workspace }} - - env: | # Copy the entire environment for the docker container - ARCH: ${{ env.ARCH }} - ARCH_ARM: ${{ env.ARCH_ARM }} - FLAVOR: ${{ env.FLAVOR }} - MODE: ${{ env.MODE }} - HEARTBEAT: ${{ env.HEARTBEAT }} - - run: ./scripts/ci/actions_build.sh - - - name: Post Build VM - #TODO: https://github.com/uraimo/run-on-arch-action/issues/52 - run: | - sudo chown -R runner ${{ steps.build-vm.outputs.PRODUCTS_PATH }} - echo "ASSET_REVISION=${{ steps.build-vm.outputs.ASSET_REVISION }}" >> $GITHUB_ENV - echo "ASSET_NAME=${{ steps.build-vm.outputs.ASSET_NAME }}" >> $GITHUB_ENV - echo "PRODUCTS_PATH=${{ steps.build-vm.outputs.PRODUCTS_PATH }}" >> $GITHUB_ENV - echo "APP_NAME=${{ steps.build-vm.outputs.APP_NAME }}" >> $GITHUB_ENV - - - name: Sign VM (not implemented) - if: false - run: ./deploy/sign-vm.sh - - - name: Pack VM - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-release - uses: ncipollo/release-action@v1 - if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} - - - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1 - if: github.event_name == 'workflow_dispatch' - with: - prerelease: true # release candidate - allowUpdates: true - replacesArtifacts: true - artifacts: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.event.inputs.tag }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/linux-arm64.yml b/.github/workflows/linux-arm64.yml deleted file mode 100644 index ce63d2b2f2..0000000000 --- a/.github/workflows/linux-arm64.yml +++ /dev/null @@ -1,128 +0,0 @@ -name: Build for Linux (ARMv8) - -on: - push: # All branches, but appropriate paths only. - paths: - # This workflow spec and its support scripts - - '.github/workflows/linux-arm64.yml' - - 'scripts/ci/*linux_arm.sh' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/linux64ARMv8/**' # Makefile-based build scripts - - 'building/linux64/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/unix/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - pull_request: - branches: - - Cog - paths: - # This workflow spec and its support scripts - - '.github/workflows/linux-arm64.yml' - - 'scripts/ci/*linux_arm.sh' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/linux64ARMv8/**' # Makefile-based build scripts - - 'building/linux64/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/unix/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - workflow_dispatch: - inputs: - tag: - description: "Build new release candidate for tag" - required: true - default: YYYYMMDDHHMM - -jobs: - build: - strategy: - fail-fast: false # let them finish bc. mixed platforms - matrix: - arch: - - linux64ARMv8 - flavor: - - squeak.cog.spur - # - squeak.cogmt.spur - - squeak.stack.spur - mode: - - fast - - debug - - assert - - runs-on: ubuntu-22.04-arm - name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} - env: - ARCH: ${{ matrix.arch }} - FLAVOR: ${{ matrix.flavor }} - MODE: ${{ matrix.mode }} - HEARTBEAT: threaded # itimer not supported - steps: - - name: Checkout files - if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v4 - - - name: Checkout files for new release candidate - if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v4 - with: - ref: refs/tags/${{ github.event.inputs.tag }} - - - name: Restore build cache - uses: actions/cache@v4 - with: - path: .thirdparty-cache - key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - - - name: Prepare environment - run: sudo ./scripts/ci/actions_prepare_linux_arm.sh - - - name: Build VM - run: ./scripts/ci/actions_build.sh - env: - HEARTBEAT: ${{ matrix.heartbeat }} - - - name: Sign VM (not implemented) - if: false - run: ./deploy/sign-vm.sh - - - name: Pack VM - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-release - uses: ncipollo/release-action@v1 - if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} - - - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1 - if: github.event_name == 'workflow_dispatch' - with: - prerelease: true # release candidate - allowUpdates: true - replacesArtifacts: true - artifacts: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.event.inputs.tag }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml deleted file mode 100644 index b5abbc9092..0000000000 --- a/.github/workflows/linux.yml +++ /dev/null @@ -1,146 +0,0 @@ -name: Build for Linux (x86) - -on: - push: # All branches, but appropriate paths only. - paths: - # This workflow spec and its support scripts - - '.github/workflows/linux.yml' - - 'scripts/ci/*linux_x86.sh' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/linux[36][24]x*/**' # Makefile-based build scripts - - 'building/linux32/**' # Makefile-based build scripts - - 'building/linux64/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/unix/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - pull_request: - branches: - - Cog - paths: - # This workflow spec and its support scripts - - '.github/workflows/linux.yml' - - 'scripts/ci/*linux_x86.sh' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/linux[36][24]x*/**' # Makefile-based build scripts - - 'building/linux32/**' # Makefile-based build scripts - - 'building/linux64/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/unix/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - workflow_dispatch: - inputs: - tag: - description: "Build new release candidate for tag" - required: true - default: YYYYMMDDHHMM - -jobs: - build: - strategy: - fail-fast: false - matrix: - arch: - - linux64x64 - - linux32x86 - flavor: - - squeak.cog.spur - heartbeat: - - threaded - - itimer - mode: - - fast - - debug - - assert - include: - # sista build not fully prepared for linux64x64, so only choose selected configurations for linux32x86 - - arch: linux32x86 - flavor: squeak.sista.spur - heartbeat: threaded - mode: fast - # squeak.stack.spur builds are not prepared for itimer - - arch: linux64x64 - flavor: squeak.stack.spur - heartbeat: threaded - mode: fast - - arch: linux32x86 - flavor: squeak.stack.spur - heartbeat: threaded - mode: fast - - runs-on: ubuntu-22.04 - name: ${{ matrix.flavor }}${{ matrix.heartbeat == 'itimer' && ' (itimer)' || '' }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} - env: - ARCH: ${{ matrix.arch }} - FLAVOR: ${{ matrix.flavor }} - MODE: ${{ matrix.mode }} - steps: - - name: Checkout files - if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v3 - - - name: Checkout files for new release candidate - if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v3 - with: - ref: refs/tags/${{ github.event.inputs.tag }} - - - name: Restore build cache - uses: actions/cache@v3 - with: - path: .thirdparty-cache - key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - - - name: Prepare environment - run: sudo ./scripts/ci/actions_prepare_linux_x86.sh - - - name: Build VM - run: ./scripts/ci/actions_build.sh - env: - HEARTBEAT: ${{ matrix.heartbeat }} - - - name: Sign VM (not implemented) - if: false - run: ./deploy/sign-vm.sh - - - name: Pack VM - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-build - uses: ncipollo/release-action@v1 - if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} - - - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1 - if: github.event_name == 'workflow_dispatch' - with: - prerelease: true # release candidate - allowUpdates: true - replacesArtifacts: true - artifacts: ${{ env.PRODUCTS_PATH }}/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.event.inputs.tag }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/macos-arm.yml b/.github/workflows/macos-arm.yml deleted file mode 100644 index aff663983d..0000000000 --- a/.github/workflows/macos-arm.yml +++ /dev/null @@ -1,123 +0,0 @@ -name: Build for macOS (ARM) - -on: - push: # All branches, but appropriate paths only. - paths: - # This workflow spec and its support scripts - - '.github/workflows/macos.yml' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/macos*ARM*/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/iOS/**' # Note that 'platforms/Mac OS' is deprecated - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - pull_request: - branches: - - Cog - paths: - # This workflow spec and its support scripts - - '.github/workflows/macos.yml' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/macos*ARM*/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/iOS/**' # Note that 'platforms/Mac OS' is deprecated - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - workflow_dispatch: - inputs: - tag: - description: "Build new release candidate for tag" - required: true - default: YYYYMMDDHHMM - -jobs: - build: - strategy: - fail-fast: false - matrix: - arch: - - macos64ARMv8 - flavor: - - squeak.cog.spur - # - squeak.sista.spur # -Werror bc. decl. missing - - squeak.stack.spur - mode: - - fast - - debug - - assert - - runs-on: macos-14 # macos-latest - name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} - env: - ARCH: ${{ matrix.arch }} - FLAVOR: ${{ matrix.flavor }} - MODE: ${{ matrix.mode }} - steps: - - name: Checkout files - if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v3 - - - name: Checkout files for new release candidate - if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v3 - with: - ref: refs/tags/${{ github.event.inputs.tag }} - - - name: Restore build cache - uses: actions/cache@v3 - with: - path: .thirdparty-cache - key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - - - name: Build VM - run: ./scripts/ci/actions_build.sh - - - name: Sign VM (skip for now) - if: false - continue-on-error: true # Save unsigned build artifacts - run: ./deploy/sign-vm.sh - env: - SQUEAK_SIGN_PASSWORD: ${{ secrets.SQUEAK_SIGN_PASSWORD }} - SQUEAK_CERT_PASSWORD: ${{ secrets.SQUEAK_CERT_PASSWORD }} - SQUEAK_SIGN_IDENTITY: ${{ secrets.SQUEAK_SIGN_IDENTITY }} - - - name: Pack VM - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-build - uses: ncipollo/release-action@v1 - if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} - - - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1 - if: github.event_name == 'workflow_dispatch' - with: - prerelease: true # release candidate - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.event.inputs.tag }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml deleted file mode 100644 index bbe7fffc15..0000000000 --- a/.github/workflows/macos.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: Build for macOS - -on: - push: # All branches, but appropriate paths only. - paths: - # This workflow spec and its support scripts - - '.github/workflows/macos-arm.yml' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/macos*x*/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/iOS/**' # Note that 'platforms/Mac OS' is deprecated - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - pull_request: - branches: - - Cog - paths: - # This workflow spec and its support scripts - - '.github/workflows/macos-arm.yml' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/macos*x*/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/iOS/**' # Note that 'platforms/Mac OS' is deprecated - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - workflow_dispatch: - inputs: - tag: - description: "Build new release candidate for tag" - required: true - default: YYYYMMDDHHMM - -jobs: - build: - strategy: - fail-fast: false - matrix: - arch: - - macos64x64 - # - macos32x86 # Might be deprecated in general - flavor: - - squeak.cog.spur - # - squeak.sista.spur # -Werror bc. decl. missing - - squeak.stack.spur - mode: - - fast - - debug - - assert - - runs-on: macos-14 # macos-latest - name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} - env: - ARCH: ${{ matrix.arch }} - FLAVOR: ${{ matrix.flavor }} - MODE: ${{ matrix.mode }} - steps: - - name: Checkout files - if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v3 - - - name: Checkout files for new release candidate - if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v3 - with: - ref: refs/tags/${{ github.event.inputs.tag }} - - - name: Restore build cache - uses: actions/cache@v3 - with: - path: .thirdparty-cache - key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - - - name: Build VM - run: ./scripts/ci/actions_build.sh - - - name: Sign VM (skip for now) - if: false - continue-on-error: true # Save unsigned build artifacts - run: ./deploy/sign-vm.sh - env: - SQUEAK_SIGN_PASSWORD: ${{ secrets.SQUEAK_SIGN_PASSWORD }} - SQUEAK_CERT_PASSWORD: ${{ secrets.SQUEAK_CERT_PASSWORD }} - SQUEAK_SIGN_IDENTITY: ${{ secrets.SQUEAK_SIGN_IDENTITY }} - - - name: Pack VM - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-build - uses: ncipollo/release-action@v1 - if: github.event_name == 'push' && endsWith( github.ref , 'Cog' ) - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} - - - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1 - if: github.event_name == 'workflow_dispatch' - with: - prerelease: true # release candidate - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.event.inputs.tag }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/win-arm.yml b/.github/workflows/win-arm.yml deleted file mode 100644 index 65c4754557..0000000000 --- a/.github/workflows/win-arm.yml +++ /dev/null @@ -1,138 +0,0 @@ -name: Build for Windows (ARM) - -on: - push: # All branches, but appropriate paths only. - paths: - # This workflow spec and its support scripts - - '.github/workflows/win-arm.yml' - - 'scripts/ci/*msys.sh' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/win64ARMv8/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/win32/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - pull_request: - branches: - - Cog - paths: - # This workflow spec and its support scripts - - '.github/workflows/win-arm.yml' - - 'scripts/ci/*msys.sh' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/win*/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/win32/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - workflow_dispatch: - inputs: - tag: - description: "Build new release candidate for tag" - required: true - default: YYYYMMDDHHMM - - -jobs: - build: - strategy: - fail-fast: false - matrix: - arch: - - win64ARMv8 - flavor: - - squeak.cog.spur - - squeak.stack.spur - - squeak.sista.spur - mode: - - fast - - debug - - assert - - runs-on: windows-11-arm - name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} - env: - ARCH: ${{ matrix.arch }} - FLAVOR: ${{ matrix.flavor }} - MODE: ${{ matrix.mode }} - steps: - - name: Checkout files - if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v4 - - - name: Checkout files for new release candidate - if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v4 - with: - ref: refs/tags/${{ github.event.inputs.tag }} - - - name: Restore build cache - uses: actions/cache@v4 - with: - path: .thirdparty-cache - key: thirdparty-cache-${{ matrix.arch.name }}-${{ matrix.flavor }} - - # - name: Setup tmate debugging session - # uses: mxschmitt/action-tmate@v3 - - - name: Prepare MSYS2 environment - uses: msys2/setup-msys2@v2 - id: msys2 - with: - msystem: MSYS - release: true # no MSYS2 installed in ARM64 runners - update: false # faster? - cache: true - install: git base make - - - name: Build VM - shell: msys2 {0} #bash - run: ./scripts/ci/actions_build.sh - env: - MSYS2_BIN: ${{ steps.msys2.outputs.msys2-location }}/usr/bin/ - - - name: Sign VM (not implemented) - if: false - run: ./deploy/sign-vm.sh - - - name: Pack VM - shell: bash - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-build - uses: ncipollo/release-action@v1 - if: github.event_name == 'push' && endsWith(github.ref, 'Cog') - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} - - - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1 - if: github.event_name == 'workflow_dispatch' - with: - prerelease: true # release candidate - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.event.inputs.tag }} - body: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml deleted file mode 100644 index 40829d7711..0000000000 --- a/.github/workflows/win.yml +++ /dev/null @@ -1,137 +0,0 @@ -name: Build for Windows - -on: - push: # All branches, but appropriate paths only. - paths: - # This workflow spec and its support scripts - - '.github/workflows/win.yml' - - 'scripts/ci/*msys.sh' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/win[36][24]x*/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/win32/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - pull_request: - branches: - - Cog - paths: - # This workflow spec and its support scripts - - '.github/workflows/win.yml' - - 'scripts/ci/*msys.sh' - - 'scripts/ci/*build.sh' - - 'deploy/**' - # Relevant sources for this platform - - 'building/win*/**' # Makefile-based build scripts - - '*src/**' # Generated VMMaker sources (incl. plugins) - - 'platforms/Cross/**' - - 'platforms/win32/**' - # Skip changes in documentation artifacts - - '!**.md' - - '!**HowToBuild' - workflow_dispatch: - inputs: - tag: - description: "Build new release candidate for tag" - required: true - default: YYYYMMDDHHMM - - -jobs: - build: - strategy: - fail-fast: false - matrix: - arch: - - win64x64 - - win32x86 - flavor: - - squeak.cog.spur - - squeak.stack.spur - - squeak.sista.spur - mode: - - fast - - debug - - assert - - runs-on: windows-2025 - name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }} - env: - ARCH: ${{ matrix.arch }} - FLAVOR: ${{ matrix.flavor }} - MODE: ${{ matrix.mode }} - steps: - - name: Checkout files - if: github.event_name != 'workflow_dispatch' - uses: actions/checkout@v4 - - - name: Checkout files for new release candidate - if: github.event_name == 'workflow_dispatch' - uses: actions/checkout@v4 - with: - ref: refs/tags/${{ github.event.inputs.tag }} - - - name: Restore build cache - uses: actions/cache@v4 - with: - path: .thirdparty-cache - key: thirdparty-cache-${{ matrix.arch }}-${{ matrix.flavor }} - - # Set your personal SSH key via GitHub to login securely into tmate shell - # - name: Setup tmate debugging session - # uses: mxschmitt/action-tmate@v3 - - - name: Prepare MSYS2 environment - uses: msys2/setup-msys2@v2 - with: - msystem: MSYS - release: false # use existing MSYS2 installation - update: false # faster? - cache: true - install: git base make - - - name: Build VM - shell: msys2 {0} #bash - run: ./scripts/ci/actions_build.sh - - - name: Sign VM (not implemented) - if: false - run: ./deploy/sign-vm.sh - - - name: Pack VM - shell: bash - run: ./deploy/pack-vm.sh - - - name: Store artifact w/ revision - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }} - path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - - - name: Update artifact in latest-build - uses: ncipollo/release-action@v1 - if: github.event_name == 'push' && endsWith(github.ref, 'Cog') - with: - prerelease: true - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }} - body: ${{ github.event.head_commit.message }} - - - name: Deploy artifact as new release candidate - uses: ncipollo/release-action@v1 - if: github.event_name == 'workflow_dispatch' - with: - prerelease: true # release candidate - allowUpdates: true - replacesArtifacts: true - artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }} - token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.event.inputs.tag }} - body: ${{ github.event.head_commit.message }} diff --git a/building/linux64/squeak.stack.spur/build/mvm b/building/linux64/squeak.stack.spur/build/mvm index 6568a20f46..e37c03208b 100755 --- a/building/linux64/squeak.stack.spur/build/mvm +++ b/building/linux64/squeak.stack.spur/build/mvm @@ -15,9 +15,10 @@ n|no|N|NO) echo "ok but this isn't safe!!";; esac ../../../../scripts/copylinuxpluginspecfiles test -f config.h || ../../../../platforms/unix/config/configure \ - --with-vmversion=5.0 \ + --with-vmversion=5.0 \ --with-src=src/spur64.stack --disable-cogit \ --without-vm-display-fbdev --without-npsqueak \ + --without-x \ TARGET_ARCH="-m64" \ CC=clang \ VM_WORD_SIZE="64" \ diff --git a/building/linux64/squeak.stack.spur/plugins.ext b/building/linux64/squeak.stack.spur/plugins.ext index 1d6ab64cd5..fdad04f73e 100644 --- a/building/linux64/squeak.stack.spur/plugins.ext +++ b/building/linux64/squeak.stack.spur/plugins.ext @@ -1,19 +1,30 @@ # Copied, perhaps edited, from ../../../src/examplePlugins.ext EXTERNAL_PLUGINS = \ -MIDIPlugin \ -B3DAcceleratorPlugin \ -ClipboardExtendedPlugin \ FileAttributesPlugin \ -Squeak3D \ SqueakFFIPrims \ SqueakSSL \ LocalePlugin \ UnicodePlugin \ -UnixOSProcessPlugin \ UUIDPlugin \ -ImmX11Plugin \ -XDisplayControlPlugin \ DESPlugin \ MD5Plugin \ SHA2Plugin \ VectorEnginePlugin + + +# MIDIPlugin \ +# B3DAcceleratorPlugin \ +# ClipboardExtendedPlugin \ +# FileAttributesPlugin \ +# Squeak3D \ +# SqueakFFIPrims \ +# SqueakSSL \ +# LocalePlugin \ +# UnicodePlugin \ +# UnixOSProcessPlugin \ +# UUIDPlugin \ +# ImmX11Plugin \ +# XDisplayControlPlugin \ +# DESPlugin \ +# MD5Plugin \ +# SHA2Plugin \ diff --git a/building/linux64/squeak.stack.spur/plugins.int b/building/linux64/squeak.stack.spur/plugins.int index 102ddaca84..744c86406a 100644 --- a/building/linux64/squeak.stack.spur/plugins.int +++ b/building/linux64/squeak.stack.spur/plugins.int @@ -1,17 +1,6 @@ # Copied, perhaps edited, from ../../../src/examplePlugins.int INTERNAL_PLUGINS = \ -ADPCMCodecPlugin \ -AioPlugin \ -AsynchFilePlugin \ -B2DPlugin \ BitBltPlugin \ -BMPReadWriterPlugin \ -CroquetPlugin \ -HostWindowPlugin \ -ZipPlugin \ -DropPlugin \ -DSAPrims \ -FFTPlugin \ FileCopyPlugin \ FilePlugin \ FileDialogPlugin \ @@ -19,10 +8,6 @@ Float64ArrayPlugin \ FloatArrayPlugin \ FloatMathPlugin \ IA32ABI \ -JoystickTabletPlugin \ -JPEGReaderPlugin \ -JPEGReadWriter2Plugin \ -Klatt \ LargeIntegers \ Matrix2x3Plugin \ MiscPrimitivePlugin \ @@ -31,9 +16,43 @@ RePlugin \ SecurityPlugin \ SerialPlugin \ SocketPlugin \ -SoundCodecPrims \ -SoundGenerationPlugin \ -SoundPlugin \ StarSqueakPlugin \ -SurfacePlugin \ -VMProfileLinuxSupportPlugin +SurfacePlugin + +# ADPCMCodecPlugin \ +# AioPlugin \ +# AsynchFilePlugin \ +# B2DPlugin \ +# BitBltPlugin \ +# BMPReadWriterPlugin \ +# CroquetPlugin \ +# HostWindowPlugin \ +# ZipPlugin \ +# DropPlugin \ +# DSAPrims \ +# FFTPlugin \ +# FileCopyPlugin \ +# FilePlugin \ +# FileDialogPlugin \ +# Float64ArrayPlugin \ +# FloatArrayPlugin \ +# FloatMathPlugin \ +# IA32ABI \ +# JoystickTabletPlugin \ +# JPEGReaderPlugin \ +# JPEGReadWriter2Plugin \ +# Klatt \ +# LargeIntegers \ +# Matrix2x3Plugin \ +# MiscPrimitivePlugin \ +# Mpeg3Plugin \ +# RePlugin \ +# SecurityPlugin \ +# SerialPlugin \ +# SocketPlugin \ +# SoundCodecPrims \ +# SoundGenerationPlugin \ +# SoundPlugin \ +# StarSqueakPlugin \ +# SurfacePlugin \ +# VMProfileLinuxSupportPlugin diff --git a/building/linux64ARMv8/squeak.cog.spur/build.debug/mvm b/building/linux64ARMv8/squeak.cog.spur/build.debug/mvm index 235c119042..64279e784f 100755 --- a/building/linux64ARMv8/squeak.cog.spur/build.debug/mvm +++ b/building/linux64ARMv8/squeak.cog.spur/build.debug/mvm @@ -14,6 +14,7 @@ if [ `uname` = "OpenBSD" ]; then LIBRT="" # OpenBSD has problems with fast-bitblt under gcc and clang FASTBITBLT="" + OPT="$OPT -DMUSL" # Prefer clang over gcc if available if [ -n "$(command -v clang || true)" ]; then CC=clang; else CC=gcc; fi else # non-OpenBSD Linux diff --git a/building/linux64ARMv8/squeak.cog.spur/build/mvm b/building/linux64ARMv8/squeak.cog.spur/build/mvm index d299659380..5976ca0df6 100755 --- a/building/linux64ARMv8/squeak.cog.spur/build/mvm +++ b/building/linux64ARMv8/squeak.cog.spur/build/mvm @@ -6,7 +6,6 @@ INSTALLDIR=sqcogspur64ARMv8linuxht # tpr - add enablementisation of fast bitblt ben avison code MACHINE="-march=armv8-a -mtune=cortex-a72" OPT="-g -O2 -DNDEBUG -DDEBUGVM=0 -D_GNU_SOURCE -DUSEEVDEV" -##OPT="-g -O3 -DMUSL -DNDEBUG -DDEBUGVM=0" if [ `uname` = "OpenBSD" ]; then DUALMAP="-DDUAL_MAPPED_CODE_ZONE=0" @@ -16,6 +15,7 @@ if [ `uname` = "OpenBSD" ]; then LIBRT="" # OpenBSD has problems with fast-bitblt under gcc and clang FASTBITBLT="" + OPT="$OPT -DMUSL" # Prefer clang over gcc if available if [ -n "$(command -v clang || true)" ]; then CC=clang; else CC=gcc; fi else # non-OpenBSD Linux diff --git a/building/linux64x64/squeak.cog.spur/build.debug/mvm b/building/linux64x64/squeak.cog.spur/build.debug/mvm index 5814694860..9fadf6ea3f 100755 --- a/building/linux64x64/squeak.cog.spur/build.debug/mvm +++ b/building/linux64x64/squeak.cog.spur/build.debug/mvm @@ -21,6 +21,7 @@ if [ `uname` = "OpenBSD" ]; then CFLAGS="$CFLAGS -I/usr/local/include" LIBS="$LIBS -lexecinfo" LDFLAGS="$LDFLAGS -L/usr/local/lib" + OPT="$OPT -DMUSL" fi if [ $# -ge 1 ]; then diff --git a/building/linux64x64/squeak.cog.spur/build/mvm b/building/linux64x64/squeak.cog.spur/build/mvm index 5f8639bf78..220d43b086 100755 --- a/building/linux64x64/squeak.cog.spur/build/mvm +++ b/building/linux64x64/squeak.cog.spur/build/mvm @@ -11,17 +11,17 @@ if [ -n "$(command -v clang || true)" ]; then CC=clang; else CC=gcc; fi # librt and libpthread funs now supplied by libc # Many Linux systems supply empty library files # but OpenBSD does not. -if [ `uname` = "OpenBSD" ]; then LIBRT=""; else LIBRT="-lrt"; fi - -CFLAGS="$OPT -msse2 -DCOGMTVM=0" -LIBS=$LIBRT -LDFLAGS="" # Special treatment for OpenBSD Linux if [ `uname` = "OpenBSD" ]; then - CFLAGS="$CFLAGS -I/usr/local/include" + OPT="$OPT -DMUSL" + CFLAGS="$CFLAGS $OPT -I/usr/local/include" LIBS="$LIBS -lexecinfo" LDFLAGS="$LDFLAGS -L/usr/local/lib" +else + CFLAGS="$CFLAGS $OPT -msse2 -DCOGMTVM=0" + LIBS="$LIBS -lrt" + LDFLAGS="$LDFLAGS" fi if [ $# -ge 1 ]; then diff --git a/building/linux64x64/squeak.cog.spur/plugins.ext b/building/linux64x64/squeak.cog.spur/plugins.ext index 9344cb6f9e..e2a17bda1b 100644 --- a/building/linux64x64/squeak.cog.spur/plugins.ext +++ b/building/linux64x64/squeak.cog.spur/plugins.ext @@ -18,7 +18,7 @@ XDisplayControlPlugin \ DESPlugin \ MD5Plugin \ SHA2Plugin \ -VectorEnginePlugin \ +VectorEnginePlugin ## CameraPlugin OpenBSD fails to build this.. # GdbARMPlugin # fails to compile # GdbARMv8Plugin # ditto diff --git a/building/qnx64ARMv8/How2QNX b/building/qnx64ARMv8/How2QNX new file mode 100644 index 0000000000..13b8c15157 --- /dev/null +++ b/building/qnx64ARMv8/How2QNX @@ -0,0 +1,30 @@ +Instructions to build an OpenSmalltalk-VM for the QNX 8.0 microkernel. + +It is assumed the build system is x86 Linux and target is Raspberry Pi 4 QNX. + +There is no requirement for Visual Studio, but you will need the free +QNX licence and Software Development Platform available from: + https://qnx.com/getqnx + +Docs at: + https://www.qnx.com/developers/docs/qnxeverywhere/index.html + +The basic differences from a Linux build are that + [A] OpenSmalltalk-VM is cross compiled [x86 build -> aarch64 runtime] + [B] QNX includes and libraries are required + +Basic Steps: + [0] Get QNX SDP [url above] + [1] Get OpenSmalltalk-VM + cd $HOME + ## Fixme: release to Opensmalltalk/OpenSmalltalk-VM + git clone --filter=blob:none https://github.com/KenDickey/opensmalltalk-vm + [2] Build it + cd opensmalltalk-vm/building/qnx64ARMv8/squeak.stack.spur/build + ./mvm + #@@@ CURRENT IS BROKEN - built & tested with hand work; scp to rpi4 target. + [3] Copy VM files to QNX Target + [4] Copy Smalltalk image, changes, sources files to QNX target [no git available] + [5] Playtime! + + diff --git a/building/qnx64ARMv8/squeak.stack.spur/Save/LOG b/building/qnx64ARMv8/squeak.stack.spur/Save/LOG new file mode 100644 index 0000000000..5604be2b64 --- /dev/null +++ b/building/qnx64ARMv8/squeak.stack.spur/Save/LOG @@ -0,0 +1,33 @@ +qcc -Vgcc_ntoaarch64le -Wall -g -O2 -DNDEBUG -DDEBUGVM=0 -DCOGMTVM=0 -DLSB_FIRST=1 -I/home/kend/qnx800/target/qnx/usr/include -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -I/home/kend/qnx800/target/qnx/usr/include -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/home/kend/Kens-VM/building/qnx64ARMv8/squeak.stack.spur/build -I/home/kend/Kens-VM/building/qnx64ARMv8/squeak.stack.spur/build -I/home/kend/Kens-VM/platforms/unix/vm -I/home/kend/Kens-VM/platforms/Cross/vm -I/home/kend/Kens-VM/src/spur64.stack -I/usr/local/include -I/home/kend/Kens-VM/platforms/Cross/vm -I/home/kend/Kens-VM/platforms/unix/vm -I/home/kend/Kens-VM/src/spur64.stack -I/home/kend/Kens-VM/platforms/Cross/plugins/FilePlugin -I/home/kend/Kens-VM/platforms/unix/plugins/B3DAcceleratorPlugin -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -I/home/kend/qnx800/target/qnx/usr/include -c -o sqUnixMain.o /home/kend/Kens-VM/platforms/unix/vm/sqUnixMain.c +ar -rc vm.a gcc3x-cointerp.o sqNamedPrims.o sqVirtualMachine.o sqHeapMap.o sqExternalSemaphores.o sqTicker.o aio.o debug.o osExports.o sqUnixExternalPrims.o sqUnixMemory.o sqUnixSpurMemory.o sqUnixCharConv.o sqUnixMain.o sqUnixVMProfile.o sqUnixHeartbeat.o sqUnixThreads.o sqUnixDisplayHelpers.o +ranlib vm.a +make[1]: 'BitBltPlugin.a' is up to date. +make[1]: 'FileCopyPlugin.a' is up to date. +make[1]: 'FilePlugin.a' is up to date. +make[1]: 'FileDialogPlugin.a' is up to date. +make[1]: 'Float64ArrayPlugin.a' is up to date. +make[1]: 'FloatArrayPlugin.a' is up to date. +make[1]: 'FloatMathPlugin.a' is up to date. +make[1]: 'IA32ABI.a' is up to date. +make[1]: 'LargeIntegers.a' is up to date. +make[1]: 'Matrix2x3Plugin.a' is up to date. +make[1]: 'MiscPrimitivePlugin.a' is up to date. +make[1]: 'RePlugin.a' is up to date. +make[1]: 'SecurityPlugin.a' is up to date. +make[1]: 'SerialPlugin.a' is up to date. +make[1]: 'SocketPlugin.a' is up to date. +make[1]: 'StarSqueakPlugin.a' is up to date. +make[1]: 'SurfacePlugin.a' is up to date. +/home/kend/Kens-VM/platforms/unix/config/verstamp version.c qcc -Vgcc_ntoaarch64le +qcc -Vgcc_ntoaarch64le -Wall -g -O2 -DNDEBUG -DDEBUGVM=0 -DCOGMTVM=0 -DLSB_FIRST=1 -I/home/kend/qnx800/target/qnx/usr/include -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -I/home/kend/qnx800/target/qnx/usr/include -Wl,-z,now -L/home/kend/qnx800/target/qnx/aarch64le/lib -L/home/kend/qnx800/target/qnx/aarch64le/usr/lib -c -o version.o version.c +/bin/bash /home/kend/Kens-VM/building/qnx64ARMv8/squeak.stack.spur/build/libtool --mode=link qcc -Vgcc_ntoaarch64le -Wall -g -O2 -DNDEBUG -DDEBUGVM=0 -DCOGMTVM=0 -DLSB_FIRST=1 -I/home/kend/qnx800/target/qnx/usr/include -Wl,-z,now -L/home/kend/qnx800/target/qnx/aarch64le/lib -L/home/kend/qnx800/target/qnx/aarch64le/usr/lib -export-dynamic -o squeak vm/vm.a BitBltPlugin/BitBltPlugin.a FileCopyPlugin/FileCopyPlugin.a FilePlugin/FilePlugin.a FileDialogPlugin/FileDialogPlugin.a Float64ArrayPlugin/Float64ArrayPlugin.a FloatArrayPlugin/FloatArrayPlugin.a FloatMathPlugin/FloatMathPlugin.a IA32ABI/IA32ABI.a LargeIntegers/LargeIntegers.a Matrix2x3Plugin/Matrix2x3Plugin.a MiscPrimitivePlugin/MiscPrimitivePlugin.a RePlugin/RePlugin.a SecurityPlugin/SecurityPlugin.a SerialPlugin/SerialPlugin.a SocketPlugin/SocketPlugin.a StarSqueakPlugin/StarSqueakPlugin.a SurfacePlugin/SurfacePlugin.a version.o -lz -lm -lsocket -liconv -linputevents -lffi -L/home/kend/qnx800/target/qnx/aarch64le/lib -L/home/kend/qnx800/target/qnx/aarch64le/usr/lib -Wl,--whole-archive,vm/vm.a,--no-whole-archive +/home/kend/Kens-VM/building/qnx64ARMv8/squeak.stack.spur/build/libtool: line 8245: QNX_TARGET: command not found +/home/kend/Kens-VM/building/qnx64ARMv8/squeak.stack.spur/build/libtool: line 8245: QNX_TARGET: command not found +libtool: link: qcc -Vgcc_ntoaarch64le -Wall -g -O2 -DNDEBUG -DDEBUGVM=0 -DCOGMTVM=0 -DLSB_FIRST=1 -I/home/kend/qnx800/target/qnx/usr/include -Wl,-z -Wl,now -o squeak version.o -Wl,--whole-archive -Wl,vm/vm.a -Wl,--no-whole-archive -Wl,--export-dynamic -L/home/kend/qnx800/target/qnx/aarch64le/lib -L/home/kend/qnx800/target/qnx/aarch64le/usr/lib vm/vm.a BitBltPlugin/BitBltPlugin.a FileCopyPlugin/FileCopyPlugin.a FilePlugin/FilePlugin.a FileDialogPlugin/FileDialogPlugin.a Float64ArrayPlugin/Float64ArrayPlugin.a FloatArrayPlugin/FloatArrayPlugin.a FloatMathPlugin/FloatMathPlugin.a IA32ABI/IA32ABI.a LargeIntegers/LargeIntegers.a Matrix2x3Plugin/Matrix2x3Plugin.a MiscPrimitivePlugin/MiscPrimitivePlugin.a RePlugin/RePlugin.a SecurityPlugin/SecurityPlugin.a SerialPlugin/SerialPlugin.a SocketPlugin/SocketPlugin.a StarSqueakPlugin/StarSqueakPlugin.a SurfacePlugin/SurfacePlugin.a -lz -lm -lsocket -liconv -linputevents -lffi + + text data bss dec hex filename + 744959 27792 649272 1422023 15b2c7 squeak + +/bin/bash: line 1: ./squeak: cannot execute binary file: Exec format error +/bin/bash: line 1: ./squeak: cannot execute binary file: Exec format error +make: *** [Makefile:182: squeak] Error 126 diff --git a/building/qnx64ARMv8/squeak.stack.spur/Save/config.h b/building/qnx64ARMv8/squeak.stack.spur/Save/config.h new file mode 100644 index 0000000000..ec54383c91 --- /dev/null +++ b/building/qnx64ARMv8/squeak.stack.spur/Save/config.h @@ -0,0 +1,520 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* config.h.in -- template for config.h -*- C -*- + * + * Copyright (C) 1996-2007 by Ian Piumarta and other authors/contributors + * listed elsewhere in this file. + * All rights reserved. + * + * This file is part of Unix Squeak. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Author: Ian.Piumarta@squeakland.org + * + * Last edited: 2006-04-23 12:34:41 by piumarta on emilia.local + */ + +#ifndef __sq_config_h +#define __sq_config_h + +#ifdef _FEATURES_H +#error This file was included too late. Please make sure it is included earlier +#endif + + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Is atexit present */ +#define AT_EXIT atexit + +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +/* #undef CRAY_STACKSEG_END */ + +/* Define to 1 if using `alloca.c'. */ +/* #undef C_ALLOCA */ + +/* Defined when building on Darwin */ +/* #undef DARWIN */ + +/* Define to 1 if you have `alloca', as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ALSA_ASOUNDLIB_H */ + +/* Define to 1 if you have the