Skip to content

Commit

Permalink
Use gcc/bb-runtimes sources.
Browse files Browse the repository at this point in the history
Replace CircleCI with GitHub Action.
  • Loading branch information
reznikmm committed Jan 4, 2022
1 parent 0b61ea1 commit 7920ba2
Show file tree
Hide file tree
Showing 7 changed files with 322 additions and 151 deletions.
39 changes: 0 additions & 39 deletions .circleci/config.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .circleci/images/Dockerfile

This file was deleted.

21 changes: 4 additions & 17 deletions .copr/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2021 Max Reznik <reznikmm@gmail.com>
# SPDX-FileCopyrightText: 2021-2022 Max Reznik <reznikmm@gmail.com>
#
# SPDX-License-Identifier: MIT
#
Expand All @@ -10,20 +10,7 @@ srpm:
mkdir /tmp/.copr
tar cavf /tmp/.copr/`grep ^Source0: $(spec)| sed -e 's/^.* //'` \
--exclude-vcs -C .. `basename $(realpath .)`
dnf --assumeyes install git
git clone https://github.com/AdaCore/gnat-llvm.git gnat-llvm
git -C gnat-llvm checkout 1d76aa3a057a8fa8d267fc1c5a75d0c729c48840
tar czf /tmp/.copr/gnat-llvm.tar.gz --exclude-vcs gnat-llvm

#git init gcc
#git -C gcc remote add origin https://github.com/gcc-mirror/gcc.git
#git -C gcc fetch --depth=1 origin acf190b208ae6883e94bcaa13adf9e3439bee63d
#git -C gcc reset --hard FETCH_HEAD
#git clone --depth=1 git://gcc.gnu.org/git/gcc.git
#mv gcc/gcc/ada gnat_src
#svn export --force svn://gcc.gnu.org/svn/gcc/trunk/gcc/ada gnat_src
#tar czf /tmp/.copr/gnat_src.tar.gz --exclude-vcs gnat_src

curl -L -o /tmp/.copr/gnat-2021-20210519-19A70-src.tar.gz \
https://community.download.adacore.com/v1/005d2b2eff627177986d2517eb31e1959bec6f3a?filename=gnat-2021-20210519-19A70-src.tar.gz
curl -L -o /tmp/.copr/gnat-llvm.zip https://github.com/AdaCore/gnat-llvm/archive/e3f56dce0df148c5f27e97d973cfbdc1bd72248f.zip
curl -L -o /tmp/.copr/bb-runtimes.zip https://github.com/Fabien-Chouteau/bb-runtimes/archive/7a4674ae9221d2fa046bed20fbaf9de9caa09d41.zip
curl -L -o /tmp/.copr/gcc.zip https://github.com/gcc-mirror/gcc/archive/e078de24eae8253fd4f24342f65166b525dd99c6.zip
rpmbuild -bs $(spec) --define="_sourcedir /tmp/.copr" --define="_srcrpmdir $(outdir)"
36 changes: 13 additions & 23 deletions .copr/adawebpack.spec
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,24 @@
%define __os_install_post %{nil}

Name: adawebpack
Version: 0.1.0
Version: 22.0.1
Release: git%{?dist}
Summary: Ada WASM Runtime and Bindings for Web API
Group: Development/Libraries
License: MIT
URL: https://github.com/godunko/adawebpack
### Direct download is not availeble
Source0: adawebpack.tar.gz
Source1: gnat-llvm.tar.gz
# https://community.download.adacore.com/v1/005d2b2eff627177986d2517eb31e1959bec6f3a?filename=gnat-2021-20210519-19A70-src.tar.gz
Source2: gnat-2021-20210519-19A70-src.tar.gz
#Source3: gnat_src.tar.gz
Source1: gnat-llvm.zip
Source2: bb-runtimes.zip
Source3: gcc.zip
BuildRequires: bsdtar
BuildRequires: gcc-gnat
BuildRequires: fedora-gnat-project-common >= 3
BuildRequires: fedora-gnat-project-common >= 3
BuildRequires: gprbuild
BuildRequires: gcc-c++
BuildRequires: libstdc++-static
BuildRequires: lld
BuildRequires: llvm-devel
BuildRequires: llvm-devel >= 13
BuildRequires: clang
BuildRequires: chrpath

Expand All @@ -35,22 +34,13 @@ ExclusiveArch: %GPRbuild_arches
Ada WASM Runtime and Bindings for Web API

%prep
%setup -q -b 1 -b 2 -n gnat-llvm
cp -r ../gnat-2021-20210519-19A70-src/src/ada llvm-interface/gnat_src
mv ../%{name} llvm-interface/%{name}_src
mv ../gnat-2021-20210519-19A70-src/src/ada/hie llvm-interface/rts-sources
#cp -v ../gnat-2021-20210519-19A70-src/src/ada/libgnat/s-{stratt,statxd}.ad[sb] llvm-interface/gnat_src/libgnat/
%setup -T -b1 -a 0 -a 2 -n gnat-llvm-e3f56dce0df148c5f27e97d973cfbdc1bd72248f/
#export LANG=C.utf8
LANG=C.utf8 bsdtar -x -f %{S:3} gcc-*/gcc/ada
mv -v gcc-*/gcc/ada llvm-interface/gnat_src
mv %{name} llvm-interface/%{name}_src
mv -v bb-runtimes-*/gnat_rts_sources/include/rts-sources llvm-interface/
ln -s %{name}_src/source/rtl/Makefile.target llvm-interface/
cd llvm-interface/rts-sources
mkdir {math,mem,zfp,full,math/hardsp,math/harddp}
mv a-elchha__zfp.ads zfp/a-elchha.ads
mv s-assert__xi.adb zfp/s-assert.adb
mv s-init.ads full/
for J in a-ngelfu a-nlelfu a-nuelfu s-gcmain s-lidosq s-libdou s-libm s-libpre s-libsin s-lisisq ; do mv -v ${J}__ada.ads math/$J.ads; done
for J in s-gcmain s-libdou s-libm s-libsin a-ngelfu; do mv -v ${J}__ada.adb math/$J.adb; done
mv -v s-lisisq__fpu.adb math/hardsp/s-lisisq.adb
mv -v s-lidosq__fpu.adb math/harddp/s-lidosq.adb
mv -v s-memcom.ad[sb] s-memcop.ad[sb] s-memmov.ad[sb] s-memset.ad[sb] s-memtyp.ads mem/

%build
make -C llvm-interface/ wasm
Expand Down
124 changes: 124 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
on:
push:
branches:
- master
pull_request:
name: Build binaries
jobs:
build:
name: Build
strategy:
fail-fast: false
matrix: # Build debug and production
os: [ubuntu-18.04, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: 'git config'
run: git config --global core.autocrlf input
shell: bash

- name: Get gnat-llvm
uses: actions/checkout@v2
if: ${{ runner.os != 'Windows' }}
with:
repository: AdaCore/gnat-llvm
ref: 'e3f56dce0df148c5f27e97d973cfbdc1bd72248f'
path: gnat-llvm

- name: Get bb-runtimes
uses: actions/checkout@v2
if: ${{ runner.os != 'Windows' }}
with:
repository: Fabien-Chouteau/bb-runtimes
path: gnat-llvm/llvm-interface/bb-runtimes
ref: 'gnat-fsf-11'

- name: Get gcc
uses: actions/checkout@v2
if: ${{ runner.os != 'Windows' }}
with:
repository: gcc-mirror/gcc
path: gnat-llvm/llvm-interface/gcc
ref: 'e078de24eae8253fd4f24342f65166b525dd99c6'

- name: Get AdaWebPack
uses: actions/checkout@v2
with:
path: gnat-llvm/llvm-interface/adawebpack_src

- name: Get GNAT toolchain with alire
uses: alire-project/setup-alire@v1
if: ${{ runner.os != 'Windows' }}
with:
toolchain: gnat_native^11 gprbuild^21
toolchain_dir: ./cached_gnat

- name: Fetch LLVM
if: ${{ runner.os != 'Windows' }}
run: |
URL=https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0
curl -L $URL/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz \
| tar xJf -
- name: Build (Linux)
if: ${{ runner.os != 'Windows' }}
run: |
export PREFIX=$PWD/adawebpack
export PATH=$PWD/gnat-llvm/llvm-interface/bin:$PATH
export PATH=`ls -d $PWD/cached_gnat/*/bin |tr '\n' ':'`$PATH
export PATH=$PWD/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-16.04/bin:$PATH
echo PATH=$PATH
pwd
ls -l
ls -l gnat-llvm/llvm-interface/
cd gnat-llvm/llvm-interface
ln -sv gcc/gcc/ada gnat_src
ln -sv adawebpack_src/source/rtl/Makefile.target
ln -sv bb-runtimes/gnat_rts_sources/include/rts-sources
make wasm
make -C adawebpack_src build_examples
set -x
chrpath -d bin/*
mkdir -p ${PREFIX}/share/gprconfig
mkdir -p ${PREFIX}/lib/gnat
mkdir -p ${PREFIX}/share/adawebpack
cp adawebpack_src/packages/Fedora/llvm.xml ${PREFIX}/share/gprconfig/
cp adawebpack_src/gnat/adawebpack_config.gpr ${PREFIX}/lib/gnat/
cp -r bin lib ${PREFIX}
cp -v adawebpack_src/source/adawebpack.mjs ${PREFIX}/share/adawebpack/
gprconfig --batch -o /tmp/llvm.cgpr --db `pwd`/adawebpack_src/packages/Fedora --target=llvm --config=ada,,
gprbuild --target=llvm -P adawebpack_src/gnat/adawebpack.gpr -p --config=/tmp/llvm.cgpr
gprinstall --target=llvm --prefix=${PREFIX} --project-subdir=${PREFIX}/lib/gnat -P adawebpack_src/gnat/adawebpack.gpr -p --config=/tmp/llvm.cgpr
cd `dirname ${PREFIX}`
tar czf ${PREFIX}.tar.gz `basename ${PREFIX}`
- name: Setup MSYS2
if: ${{ runner.os == 'Windows' }}
uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: |
base-devel
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-gcc-ada
mingw-w64-x86_64-gprbuild
mingw-w64-x86_64-clang
mingw-w64-x86_64-lld
- name: Build MSYS2 package
if: ${{ runner.os == 'Windows' }}
shell: msys2 {0}
run: |
mv gnat-llvm/llvm-interface/adawebpack_src adawebpack
cp -r adawebpack/packages/msys2 .
tar czf msys2/adawebpack.tar.gz adawebpack
cd msys2
makepkg-mingw --noconfirm --noprogressbar -sCLf
mv -v *.tar.zst ..
- name: Keep archive in artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ runner.os }}
path: "*.tar.*"

Loading

0 comments on commit 7920ba2

Please sign in to comment.