forked from KolibriOS/kolibrios
CI/CD: Added CI, without MSVC (en_US and ru_RU)
- Added `install_kgcc` script; - Added `checker.pl` script to check the kernel codestyle; - Added build of en_US and ru_RU versions of images. Known problem: projects that require the proprietary MSVC compiler are not built. Signed-off-by: Maxim Logaev <maxlogaev@proton.me>
This commit is contained in:
1 parent
c11c7922bd
commit
9001dbc1b4
3 files changed
+143
-244
No files matched your search
+84
-227
@@ -1,16 +1,19 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# SPDX-FileCopyrightText: 2025 KolibriOS team
|
||||
|
||||
name: 'Build system'
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '**'
|
||||
- 'main'
|
||||
pull_request:
|
||||
branches:
|
||||
- '**'
|
||||
|
||||
jobs:
|
||||
codestyle:
|
||||
name: "Check codestyle"
|
||||
name: "Check kernel codestyle"
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
@@ -23,295 +26,149 @@ jobs:
|
||||
|
||||
- name: Check codestyle
|
||||
run: |
|
||||
wget https://gist.githubusercontent.com/VerySweetBread/d207dd2c7efbd3cdd18dc8322b194816/raw/bf21c89d7eb1df71e253dc72bcde86ea854df19f/checker.pl
|
||||
find kernel/trunk -iname '*.asm' -or -iname '*.inc' -exec bash -c "echo {}; cat {} | perl checker.pl" \;
|
||||
find kernel/trunk -iname '*.asm' -or -iname '*.inc' -exec bash -c "echo {}; cat {} | perl .gitea/workflows/checker.pl" \;
|
||||
|
||||
build-en-system:
|
||||
name: 'Build en_US system'
|
||||
build:
|
||||
name: 'Build'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Get describe
|
||||
id: vars
|
||||
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Setup dependencies
|
||||
run: |
|
||||
sudo apt update && sudo apt install p7zip-full nasm make gcc sudo mtools mkisofs parted gdisk gcc-multilib git ccache libfuse3-dev build-essential flex bison gperf libncurses5-dev libncursesw5-dev gawk libmpfr-dev libgpm-dev zlib1g-dev yasm graphviz -y
|
||||
cd /tmp
|
||||
sudo apt update
|
||||
sudo apt install p7zip-full fasm nasm make gcc gcc-multilib g++ g++-multilib mtools mkisofs parted gdisk -y
|
||||
wget http://mirrors.kernel.org/ubuntu/pool/universe/t/tup/tup_0.8-1_amd64.deb
|
||||
sudo apt install ./tup_0.8-1_amd64.deb -y
|
||||
|
||||
- name: Restore toolchain
|
||||
id: cache-toolchain
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: /home/autobuild
|
||||
key: kolibri-toolchain
|
||||
|
||||
- name: Install toolchain
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
- name: Install GCC toolchain
|
||||
run: |
|
||||
# wget "http://board.kolibrios.org/download/file.php?id=9919&sid=bc8412934004a60f831b1b92eae0ad34" -O install_kgcc
|
||||
chmod +x ${{ gitea.workspace }}/.gitea/workflows/install_kgcc
|
||||
${{ gitea.workspace }}/.gitea/workflows/install_kgcc
|
||||
|
||||
echo 'exec ${{ gitea.workspace }}/programs/cmm/c--/c--.elf $*' > /home/autobuild/tools/win32/bin/c--
|
||||
chmod +x ${{ gitea.workspace }}/programs/cmm/c--/c--.elf
|
||||
chmod +x /home/autobuild/tools/win32/bin/c--
|
||||
- name: Install JWasm
|
||||
run: |
|
||||
cd /tmp
|
||||
wget -O JWasm211bl.zip https://sourceforge.net/projects/jwasm/files/JWasm%20Linux%20binary/JWasm211bl.zip/download
|
||||
unzip JWasm211bl.zip "jwasm" -d /home/autobuild/tools/win32/bin/
|
||||
chmod +x /home/autobuild/tools/win32/bin/jwasm
|
||||
|
||||
- name: Build and install C--
|
||||
run: |
|
||||
cd ${{ gitea.workspace }}/programs/develop/cmm/
|
||||
make -f Makefile.lin32
|
||||
chmod +x c--
|
||||
mv c-- /home/autobuild/tools/win32/bin/c--
|
||||
cp ${{ gitea.workspace }}/programs/cmm/c--/c--.ini /home/autobuild/tools/win32/bin/c--.ini
|
||||
make -f Makefile.lin32 clean
|
||||
|
||||
- name: Install TCC
|
||||
run: |
|
||||
cp ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
chmod +x /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
|
||||
- name: Compile objconv
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
source ~/.bashrc
|
||||
cd ${{ gitea.workspace }}/programs/develop/objconv/
|
||||
g++ -o objconv -O2 *.cpp
|
||||
chmod +x objconv
|
||||
mv objconv /home/autobuild/tools/win32/bin/.
|
||||
g++ -o /home/autobuild/tools/win32/bin/objconv -O2 *.cpp
|
||||
chmod +x /home/autobuild/tools/win32/bin/objconv
|
||||
|
||||
- name: Compile kerpack
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
source ~/.bashrc
|
||||
cd ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/
|
||||
make
|
||||
chmod +x kerpack
|
||||
mv kerpack /home/autobuild/tools/win32/bin/.
|
||||
|
||||
- name: Compile kpack
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
source ~/.bashrc
|
||||
cd ${{ gitea.workspace }}/programs/other/kpack/linux/
|
||||
bash build.sh
|
||||
chmod +x kpack
|
||||
mv kpack /home/autobuild/tools/win32/bin/.
|
||||
|
||||
- name: Compile clink
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd ${{ gitea.workspace }}/programs/develop/clink
|
||||
cd ${{ github.workspace }}/programs/develop/clink
|
||||
gcc main.c -o clink
|
||||
chmod a+x clink
|
||||
mv clink /home/autobuild/tools/win32/bin/.
|
||||
|
||||
- name: Build tup
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone https://github.com/gittup/tup /home/autobuild/tup
|
||||
cd /home/autobuild/tup
|
||||
sh bootstrap-nofuse.sh
|
||||
./tup -v
|
||||
pwd
|
||||
cd ${{ gitea.workspace }}
|
||||
|
||||
- run: |
|
||||
rm /home/autobuild
|
||||
mv /root/autobuild /home/autobuild
|
||||
ls -l /home/autobuild
|
||||
ls -l ${{ gitea.workspace }}
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
|
||||
- name: Save toolchain
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: /home/autobuild
|
||||
key: kolibri-toolchain
|
||||
mv clink /home/autobuild/tools/win32/bin/clink
|
||||
|
||||
- name: Configure tup
|
||||
run: |
|
||||
source ~/.bashrc
|
||||
export ROOT=${{ gitea.workspace }}
|
||||
cd $ROOT
|
||||
|
||||
echo "CONFIG_LANG=en_US" > tup.config
|
||||
echo "CONFIG_BUILD_TYPE=en_US" >> tup.config
|
||||
echo "CONFIG_KPACK_CMD=&& kpack --nologo %o" >> tup.config
|
||||
echo "CONFIG_KERPACK_CMD=&& kerpack %o" >> tup.config
|
||||
echo "CONFIG_PESTRIP_CMD=&& EXENAME=%o fasm $ROOT/data/common/pestrip.asm %o" >> tup.config
|
||||
echo "CONFIG_NO_CMM=full" >> tup.config
|
||||
echo "CONFIG_NO_GCC=full" >> tup.config
|
||||
echo "CONFIG_NO_JWASM=full" >> tup.config
|
||||
echo "CONFIG_NO_MSVC=full" >> tup.config
|
||||
echo "CONFIG_INSERT_REVISION_ID=1" >> tup.config
|
||||
|
||||
rm $ROOT/programs/develop/libraries/kos_mbedtls/library/Tupfile.lua
|
||||
rm $ROOT/programs/develop/libraries/kos_mbedtls/programs/ssl/Tupfile.lua
|
||||
|
||||
cat tup.config
|
||||
/home/autobuild/tup/tup init
|
||||
/home/autobuild/tup/tup generate build.sh
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
sh build.sh
|
||||
|
||||
- name: Get describe
|
||||
id: vars
|
||||
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload floppy image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-eng-${{ steps.vars.outputs.sha_short }}.img
|
||||
path: data/kolibri.img
|
||||
|
||||
- name: Upload CD image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-eng-${{ steps.vars.outputs.sha_short }}.iso
|
||||
path: data/kolibri.iso
|
||||
|
||||
- name: Upload raw image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-eng-${{ steps.vars.outputs.sha_short }}.raw
|
||||
path: data/kolibri.raw
|
||||
|
||||
build-ru-system:
|
||||
name: 'Build ru_RU system'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup dependencies
|
||||
run: |
|
||||
sudo apt update && sudo apt install p7zip-full nasm make gcc sudo mtools mkisofs parted gdisk gcc-multilib git ccache libfuse3-dev build-essential flex bison gperf libncurses5-dev libncursesw5-dev gawk libmpfr-dev libgpm-dev zlib1g-dev yasm graphviz -y
|
||||
|
||||
- name: Restore toolchain
|
||||
id: cache-toolchain
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: /home/autobuild
|
||||
key: kolibri-toolchain
|
||||
|
||||
- name: Install toolchain
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
# wget "http://board.kolibrios.org/download/file.php?id=9919&sid=bc8412934004a60f831b1b92eae0ad34" -O install_kgcc
|
||||
chmod +x ${{ gitea.workspace }}/.gitea/workflows/install_kgcc
|
||||
${{ gitea.workspace }}/.gitea/workflows/install_kgcc
|
||||
|
||||
echo 'exec ${{ gitea.workspace }}/programs/cmm/c--/c--.elf $*' > /home/autobuild/tools/win32/bin/c--
|
||||
chmod +x ${{ gitea.workspace }}/programs/cmm/c--/c--.elf
|
||||
chmod +x /home/autobuild/tools/win32/bin/c--
|
||||
|
||||
cp ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
chmod +x /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
|
||||
- name: Compile objconv
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
source ~/.bashrc
|
||||
cd ${{ gitea.workspace }}/programs/develop/objconv/
|
||||
g++ -o objconv -O2 *.cpp
|
||||
chmod +x objconv
|
||||
mv objconv /home/autobuild/tools/win32/bin/.
|
||||
|
||||
- name: Compile kerpack
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
source ~/.bashrc
|
||||
cd ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/
|
||||
make
|
||||
chmod +x kerpack
|
||||
mv kerpack /home/autobuild/tools/win32/bin/.
|
||||
|
||||
- name: Compile kpack
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
source ~/.bashrc
|
||||
cd ${{ gitea.workspace }}/programs/other/kpack/linux/
|
||||
bash build.sh
|
||||
chmod +x kpack
|
||||
mv kpack /home/autobuild/tools/win32/bin/.
|
||||
|
||||
- name: Compile clink
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd ${{ gitea.workspace }}/programs/develop/clink
|
||||
gcc main.c -o clink
|
||||
chmod a+x clink
|
||||
mv clink /home/autobuild/tools/win32/bin/.
|
||||
|
||||
- name: Build tup
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone https://github.com/gittup/tup /home/autobuild/tup
|
||||
cd /home/autobuild/tup
|
||||
sh bootstrap-nofuse.sh
|
||||
./tup -v
|
||||
pwd
|
||||
cd ${{ gitea.workspace }}
|
||||
|
||||
- run: |
|
||||
rm /home/autobuild
|
||||
mv /root/autobuild /home/autobuild
|
||||
ls -l /home/autobuild
|
||||
ls -l ${{ gitea.workspace }}
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
|
||||
- name: Save toolchain
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: /home/autobuild
|
||||
key: kolibri-toolchain
|
||||
|
||||
- name: Configure tup
|
||||
run: |
|
||||
source ~/.bashrc
|
||||
export ROOT=${{ gitea.workspace }}
|
||||
cd $ROOT
|
||||
|
||||
echo "CONFIG_LANG=ru_RU" > tup.config
|
||||
echo "CONFIG_BUILD_TYPE=ru_RU" >> tup.config
|
||||
echo "CONFIG_KPACK_CMD=&& kpack --nologo %o" >> tup.config
|
||||
echo "CONFIG_KPACK_CMD=&& kpack --nologo %o" > tup.config
|
||||
echo "CONFIG_KERPACK_CMD=&& kerpack %o" >> tup.config
|
||||
echo "CONFIG_PESTRIP_CMD=&& EXENAME=%o fasm $ROOT/data/common/pestrip.asm %o" >> tup.config
|
||||
echo "CONFIG_NO_CMM=full" >> tup.config
|
||||
echo "CONFIG_NO_GCC=full" >> tup.config
|
||||
echo "CONFIG_NO_JWASM=full" >> tup.config
|
||||
echo "CONFIG_NO_MSVC=full" >> tup.config
|
||||
echo "CONFIG_INSERT_REVISION_ID=1" >> tup.config
|
||||
|
||||
rm $ROOT/programs/develop/libraries/kos_mbedtls/library/Tupfile.lua
|
||||
rm $ROOT/programs/develop/libraries/kos_mbedtls/programs/ssl/Tupfile.lua
|
||||
tup -v
|
||||
tup init
|
||||
|
||||
cat tup.config
|
||||
/home/autobuild/tup/tup init
|
||||
/home/autobuild/tup/tup generate build.sh
|
||||
|
||||
- name: Build
|
||||
- name: Build KolibriOS (en_US)
|
||||
run: |
|
||||
cp tup.config tup.config.en_US
|
||||
echo "CONFIG_LANG=en_US" >> tup.config.en_US
|
||||
echo "CONFIG_BUILD_TYPE=en_US" >> tup.config.en_US
|
||||
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
sh build.sh
|
||||
tup generate --config tup.config.en_US build-en_US.sh
|
||||
./build-en_US.sh
|
||||
|
||||
- name: Get describe
|
||||
id: vars
|
||||
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload floppy image
|
||||
- name: Upload floppy image (en_US)
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-rus-${{ steps.vars.outputs.sha_short }}.img
|
||||
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.img
|
||||
path: data/kolibri.img
|
||||
|
||||
- name: Upload CD image
|
||||
- name: Upload CD image (en_US)
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-rus-${{ steps.vars.outputs.sha_short }}.iso
|
||||
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.iso
|
||||
path: data/kolibri.iso
|
||||
|
||||
- name: Upload raw image
|
||||
- name: Upload raw image (en_US)
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-rus-${{ steps.vars.outputs.sha_short }}.raw
|
||||
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.raw
|
||||
path: data/kolibri.raw
|
||||
|
||||
- name: Build KolibriOS (ru_RU)
|
||||
run: |
|
||||
git clean -d -x -f -e tup.config
|
||||
cp tup.config tup.config.ru_RU
|
||||
echo "CONFIG_LANG=ru_RU" >> tup.config.ru_RU
|
||||
echo "CONFIG_BUILD_TYPE=ru_RU" >> tup.config.ru_RU
|
||||
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
tup generate --config tup.config.ru_RU build-ru_RU.sh
|
||||
./build-ru_RU.sh
|
||||
|
||||
- name: Upload floppy image (ru_RU)
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.img
|
||||
path: data/kolibri.img
|
||||
|
||||
- name: Upload CD image (ru_RU)
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.iso
|
||||
path: data/kolibri.iso
|
||||
|
||||
- name: Upload raw image (ru_RU)
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.raw
|
||||
path: data/kolibri.raw
|
||||
@@ -0,0 +1,54 @@
|
||||
use Encode;
|
||||
while (<STDIN>)
|
||||
{
|
||||
$str = $_;
|
||||
# Rule 6. All code and text files should be in UTF-8 without BOM.
|
||||
if ($. == 1) {
|
||||
die "Style error in @ARGV[0]:$.: BOM is not allowed.\n" if substr($_,0,3) eq "\xEF\xBB\xBF";
|
||||
}
|
||||
unless(defined(eval{decode_utf8($_,Encode::FB_CROAK)})) {
|
||||
die "Style error in @ARGV[0]:$.: the file must be in UTF-8.\n";
|
||||
}
|
||||
# Rule 1. No tab characters allowed.
|
||||
$_ = $str;
|
||||
die "Style error in @ARGV[0]:$.: no tab characters allowed.\n" if m/\t/;
|
||||
if ($continued) {
|
||||
die "Style error in @ARGV[0]:$.: arguments continued in the next line must start from the same position as in the first line\n" if ($continued != -1 && m/^(\s*)[^;]/ && length($1) != $continued);
|
||||
undef $continued unless m/\\\s*(;.*)?$/;
|
||||
} else {
|
||||
# Rule 2. Any label must be on a separate line. It is not allowed to have a label and anything except a comment on the same line.
|
||||
if (m/^(\s*[^;"\x27\s\$][^;"\x27\s]*:)?(\s*)(stdcall|ccall|invoke|cinvoke|bt|in|ja|jb|jc|je|jg|jl|jo|jp|js|jz|or|aaa|aad|aam|aas|adc|add|and|bsf|bsr|btc|btr|bts|cbw|cdq|clc|cld|cli|cmc|cmp|cqo|cwd|daa|das|dec|div|fld|fst|hlt|inc|ins|int|jae|jbe|jge|jle|jmp|jna|jnb|jnc|jne|jng|jnl|jno|jnp|jns|jnz|jpe|jpo|lar|lds|lea|les|lfs|lgs|lsl|lss|ltr|mov|mul|neg|nop|not|out|pop|por|rcl|rcr|rep|ret|rol|ror|rsm|sal|sar|sbb|shl|shr|stc|std|sti|str|sub|ud2|xor|arpl|call|cdqe|clgi|clts|cmps|cwde|dppd|dpps|emms|fabs|fadd|fbld|fchs|fcom|fcos|fdiv|feni|fild|fist|fld1|fldz|fmul|fnop|fsin|fstp|fsub|ftst|fxam|fxch|idiv|imul|insb|insd|insw|int1|int3|into|invd|iret|jcxz|jnae|jnbe|jnge|jnle|lahf|lgdt|lidt|lldt|lmsw|lock|lods|loop|movd|movq|movs|orpd|orps|outs|pand|popa|popd|popf|popq|popw|push|pxor|repe|repz|retd|retf|retn|retq|retw|sahf|salc|scas|seta|setb|setc|sete|setg|setl|seto|setp|sets|setz|sgdt|shld|shrd|sidt|sldt|smsw|stgi|stos|test|verr|verw|vpor|wait|xadd|xchg|xlat|addpd|addps|addsd|addss|andpd|andps|bound|bswap|cmova|cmovb|cmovc|cmove|cmovg|cmovl|cmovo|cmovp|cmovs|cmovz|cmppd|cmpps|cmpsb|cmpsd|cmpsq|cmpss|cmpsw|cpuid|crc32|divpd|divps|divsd|divss|enter|extrq|f2xm1|faddp|fbstp|fclex|fcomi|fcomp|fdisi|fdivp|fdivr|femms|ffree|fiadd|ficom|fidiv|fimul|finit|fistp|fisub|fldcw|fldpi|fmulp|fneni|fprem|fptan|fsave|fsqrt|fstcw|fstsw|fsubp|fsubr|fucom|fwait|fyl2x|icebp|iretd|iretq|iretw|jecxz|jrcxz|lddqu|leave|lodsb|lodsd|lodsq|lodsw|loopd|loope|loopq|loopw|loopz|lzcnt|maxpd|maxps|maxsd|maxss|minpd|minps|minsd|minss|movbe|movsb|movsd|movsq|movss|movsw|movsx|movzx|mulpd|mulps|mulsd|mulss|mwait|outsb|outsd|outsw|pabsb|pabsd|pabsw|paddb|paddd|paddq|paddw|pandn|pause|pavgb|pavgw|pf2id|pf2iw|pfacc|pfadd|pfmax|pfmin|pfmul|pfrcp|pfsub|pi2fd|pi2fw|popad|popaw|popfd|popfq|popfw|pslld|psllq|psllw|psrad|psraw|psrld|psrlq|psrlw|psubb|psubd|psubq|psubw|ptest|pusha|pushd|pushf|pushq|pushw|rcpps|rcpss|rdmsr|rdpmc|rdtsc|repne|repnz|retfd|retfq|retfw|retnd|retnq|retnw|scasb|scasd|scasq|scasw|setae|setbe|setge|setle|setna|setnb|setnc|setne|setng|setnl|setno|setnp|setns|setnz|setpe|setpo|stosb|stosd|stosq|stosw|subpd|subps|subsd|subss|vdppd|vdpps|vmovd|vmovq|vmrun|vmxon|vorpd|vorps|vpand|vpxor|wrmsr|xlatb|xorpd|xorps|xsave|aesdec|aesenc|aesimc|andnpd|andnps|cmovae|cmovbe|cmovge|cmovle|cmovna|cmovnb|cmovnc|cmovne|cmovng|cmovnl|cmovno|cmovnp|cmovns|cmovnz|cmovpe|cmovpo|comisd|comiss|fcmovb|fcmove|fcmovu|fcomip|fcompp|fdivrp|ffreep|ficomp|fidivr|fisttp|fisubr|fldenv|fldl2e|fldl2t|fldlg2|fldln2|fnclex|fndisi|fninit|fnsave|fnstcw|fnstsw|fpatan|fprem1|frstor|frstpm|fsaved|fsavew|fscale|fsetpm|fstenv|fsubrp|fucomi|fucomp|fxsave|getsec|haddpd|haddps|hsubpd|hsubps|invept|invlpg|lfence|looped|loopeq|loopew|loopne|loopnz|loopzd|loopzq|loopzw|mfence|movapd|movaps|movdqa|movdqu|movhpd|movhps|movlpd|movlps|movnti|movntq|movsxd|movupd|movups|paddsb|paddsw|pextrb|pextrd|pextrq|pextrw|pfnacc|pfsubr|phaddd|phaddw|phsubd|phsubw|pinsrb|pinsrd|pinsrq|pinsrw|pmaxsb|pmaxsd|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmuldq|pmulhw|pmulld|pmullw|popcnt|psadbw|pshufb|pshufd|pshufw|psignb|psignd|psignw|pslldq|psrldq|psubsb|psubsw|pswapd|pushad|pushaw|pushfd|pushfq|pushfw|rdmsrq|rdrand|rdtscp|setalc|setnae|setnbe|setnge|setnle|sfence|shufpd|shufps|skinit|sqrtpd|sqrtps|sqrtsd|sqrtss|swapgs|sysret|vaddpd|vaddps|vaddsd|vaddss|vandpd|vandps|vcmppd|vcmpps|vcmpsd|vcmpss|vdivpd|vdivps|vdivsd|vdivss|vlddqu|vmaxpd|vmaxps|vmaxsd|vmaxss|vmcall|vminpd|vminps|vminsd|vminss|vmload|vmovsd|vmovss|vmread|vmsave|vmulpd|vmulps|vmulsd|vmulss|vmxoff|vpabsb|vpabsd|vpabsw|vpaddb|vpaddd|vpaddq|vpaddw|vpandn|vpavgb|vpavgw|vpcmov|vpcomb|vpcomd|vpcomq|vpcomw|vpperm|vprotb|vprotd|vprotq|vprotw|vpshab|vpshad|vpshaq|vpshaw|vpshlb|vpshld|vpshlq|vpshlw|vpslld|vpsllq|vpsllw|vpsrad|vpsraw|vpsrld|vpsrlq|vpsrlw|vpsubb|vpsubd|vpsubq|vpsubw|vptest|vrcpps|vrcpss|vsubpd|vsubps|vsubsd|vsubss|vxorpd|vxorps|wbinvd|wrmsrq|xgetbv|xrstor|xsetbv|blendpd|blendps|clflush|cmovnae|cmovnbe|cmovnge|cmovnle|cmpeqpd|cmpeqps|cmpeqsd|cmpeqss|cmplepd|cmpleps|cmplesd|cmpless|cmpltpd|cmpltps|cmpltsd|cmpltss|cmpxchg|fcmovbe|fcmovnb|fcmovne|fcmovnu|fdecstp|fincstp|fldenvd|fldenvw|fnsaved|fnsavew|fnstenv|frndint|frstord|frstorw|fsincos|fstenvd|fstenvw|fucomip|fucompp|fxrstor|fxtract|fyl2xp1|insertq|invlpga|invvpid|ldmxcsr|loopned|loopneq|loopnew|loopnzd|loopnzq|loopnzw|monitor|movddup|movdq2q|movhlps|movlhps|movntdq|movntpd|movntps|movntsd|movntss|movq2dq|mpsadbw|paddusb|paddusw|palignr|pavgusb|pblendw|pcmpeqb|pcmpeqd|pcmpeqq|pcmpeqw|pcmpgtb|pcmpgtd|pcmpgtq|pcmpgtw|pfcmpeq|pfcmpge|pfcmpgt|pfpnacc|pfrsqrt|phaddsw|phsubsw|pmaddwd|pmulhrw|pmulhuw|pmuludq|pshufhw|pshuflw|psubusb|psubusw|roundpd|roundps|roundsd|roundss|rsqrtps|rsqrtss|stmxcsr|syscall|sysexit|sysretq|ucomisd|ucomiss|vaesdec|vaesenc|vaesimc|vandnpd|vandnps|vcomisd|vcomiss|vfrczpd|vfrczps|vfrczsd|vfrczss|vhaddpd|vhaddps|vhsubpd|vhsubps|vmclear|vmmcall|vmovapd|vmovaps|vmovdqa|vmovdqu|vmovhpd|vmovhps|vmovlpd|vmovlps|vmovupd|vmovups|vmptrld|vLine truncated
|
||||
{
|
||||
$label = $1; $indent = $2; $mnem = $3; $spaces = $4; $args = $5;
|
||||
die "Style error in @ARGV[0]:$.: any label must be on a separate line.\n" if length($label);
|
||||
# Rule 3. Lines with commands must start with 8 spaces.
|
||||
# A mnemonic is short if it's length is less than 8.
|
||||
# Arguments for short mnemonics must start in the column 16.
|
||||
# Arguments for long mnemonics must be separated from the mnemonic by exactly one space.
|
||||
# Otherwise, there must be exactly one space between the mnemonic and it's arguments.
|
||||
# Arguments must be separated with a comma and exactly one space after a comma.
|
||||
die "Style error in @ARGV[0]:$.: indent for commands must be 8 spaces.\n" if ($indent ne " ");
|
||||
if (length($mnem) >= 8 || $mnem eq "rep" || $mnem eq "repz" || $mnem eq "repe" || $mnem eq "repnz" || $mnem eq "repne" || $mnem eq "lock")
|
||||
{
|
||||
die "Style error in @ARGV[0]:$.: arguments for long mnemonics must be separated from the mnemonic by exactly one space.\n" if ($args ne "" && $spaces ne " ");
|
||||
}
|
||||
else
|
||||
{
|
||||
die "Style error in @ARGV[0]:$.: arguments for short mnemonics must start in the column 16.\n" if ($args ne "" && $spaces ne " " x (8 - length($mnem)));
|
||||
}
|
||||
$args =~ s/\s*$//;
|
||||
@a = split /([\x27"])(.*?\1)/, $args;
|
||||
$z = 0;
|
||||
foreach $s(@a)
|
||||
{
|
||||
die "Style error in @ARGV[0]:$.: arguments must be separated with a comma and exactly one space after a comma.\n" if ($z++%3==0 && $s =~ m/,(\s{2,})?([^\\\s]|$)/);
|
||||
};
|
||||
$continued = length($indent) + length($mnem) + length($spaces) if ($args =~ m/\\$/);
|
||||
}
|
||||
else
|
||||
{
|
||||
$continued = -1 if m/\\\s*(;.*)?$/;
|
||||
}
|
||||
}
|
||||
}
|
||||
exit 0;
|
||||
@@ -1,6 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Written by turbocat2001 (Maxim Logaev)
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# SPDX-FileCopyrightText: 2025 KolibriOS Team
|
||||
|
||||
# Written by mxlgv (Maxim Logaev)
|
||||
# Installation steps described by maxcodehack (Maxim Kuzmitsky)
|
||||
|
||||
set -e
|
||||
@@ -49,22 +52,6 @@ cd ~/autobuild/tools/
|
||||
rm -rf kos32-toolchain.7z
|
||||
print_ok "Successfully!"
|
||||
|
||||
print_msg "Downloading libraries..."
|
||||
cd ~/autobuild/tools/win32/mingw32
|
||||
wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z
|
||||
7z x -y sdk-28-10-16.7z
|
||||
rm -rf sdk-28-10-16.7z
|
||||
print_ok "Successfully!"
|
||||
|
||||
print_msg "Updating libraries..."
|
||||
cd ~/autobuild/tools/win32/mingw32/lib
|
||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libdll.a -O libdll.a
|
||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libfreetype.a -O libfreetype.a
|
||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libc.dll.a -O libc.dll.a
|
||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libSDLn.a -O libSDLn.a
|
||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libz.dll.a -O libz.dll.a
|
||||
print_ok "Successfully!"
|
||||
|
||||
print_msg "Downloading libisl..."
|
||||
cd /tmp
|
||||
sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -O /tmp/libisl.so.10.2.2.7z
|
||||
@@ -74,6 +61,7 @@ if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then
|
||||
sudo mkdir -p /usr/lib/x86_64-linux-gnu/
|
||||
fi
|
||||
|
||||
print_msg "Fixing libisl..."
|
||||
sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
|
||||
sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10
|
||||
sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10
|
||||
|
||||
Reference in new issue
Block a user