1
0
Fork 0
mirror of https://github.com/hermitcore/libhermit.git synced 2025-03-30 00:00:15 +01:00

Merge branch 'master' into devel

This commit is contained in:
Stefan Lankes 2018-05-27 22:01:47 +02:00
commit e28fe36c41
6 changed files with 86 additions and 163 deletions

View file

@ -1,11 +1,11 @@
{
"package": {
"name": "libhermit",
"repo": "hermitcore",
"subject": "rwth-os",
"repo": "ubuntu",
"subject": "hermitcore",
"website_url": "http://www.hermitcore.org",
"issue_tracker_url": "https://github.com/RWTH-OS/HermitCore/issues",
"vcs_url": "https://github.com/RWTH-OS/HermitCore.git",
"vcs_url": "https://github.com/hermitcore/libhermit.git",
"github_release_notes_file": "RELEASE",
"licenses": ["Revised BSD"],
"public_download_numbers": false,
@ -21,15 +21,13 @@
"files":
[
{
"includePattern": "build/(libhermit[^/]*.deb$)", "uploadPattern": "$1",
"includePattern": "../(libhermit[^/]*.deb$)", "uploadPattern": "$1",
"matrixParams": {
"deb_distribution": "vivid",
"deb_distribution": "bionic",
"deb_component": "main",
"deb_architecture": "amd64",
"override": 1}
},
{"includePattern": "build/(libhermit[^/]*.rpm$)", "uploadPattern": "$1", "override": 1},
{"includePattern": "build/(libhermit[^/]*.tar.bz2$)", "uploadPattern": "$1", "override": 1}
}
],
"publish": true
}

4
.gitmodules vendored
View file

@ -1,8 +1,8 @@
[submodule "lwip"]
path = lwip
url = https://github.com/RWTH-OS/LwIP.git
url = https://github.com/hermitcore/LwIP.git
branch = hermit
[submodule "usr/libomp"]
path = usr/libomp
url = https://github.com/RWTH-OS/libomp_oss.git
url = https://github.com/hermitcore/libomp_oss.git
branch = hermit

View file

@ -1,133 +1,31 @@
sudo: required
dist: trusty
language: c
git:
depth: 3
submodules: true
matrix:
include:
- compiler: gcc
addons:
env:
matrix:
- OS_TYPE=ubuntu OS_VERSION=18.04 OS_NAME=bionic
services:
- docker
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
env:
- COMPILERCXX=g++-4.9
- COMPILERC=gcc-4.9
- DEPLOY=true
- compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
env:
- COMPILERCXX=g++-5
- COMPILERC=gcc-5
- compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
env:
- COMPILERCXX=g++-6
- COMPILERC=gcc-6
- compiler: clang
env:
- COMPILERC=clang
- COMPILERCXX=clang++
- CLANGV=3.8.1
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- compiler: clang
env:
- COMPILERC=clang
- COMPILERCXX=clang++
- CLANGV=3.9.1
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- compiler: clang
env:
- COMPILERC=clang
- COMPILERCXX=clang++
- CLANGV=4.0.1
- RUNCLANGTIDY=TRUE
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
update: true
before_install:
- echo "deb https://dl.bintray.com/rwth-os/hermitcore vivid main" | sudo tee -a /etc/apt/sources.list
- travis_retry sudo apt-get -qq update
- travis_retry sudo apt-get install -y curl wget qemu-system-x86 nasm texinfo libmpfr-dev libmpc-dev libgmp-dev libisl-dev flex bison packaging-dev rpm
- travis_retry sudo apt-get install -y --force-yes binutils-hermit libhermit newlib-hermit pthread-embedded-hermit gcc-hermit
- git submodule update --init lwip usr/libomp
# download clang
- mkdir $HOME/clang+llvm
- export PATH=$HOME/clang+llvm/bin:$PATH
- if [ -n "$CLANGV" ]; then wget http://llvm.org/releases/$CLANGV/clang+llvm-$CLANGV-x86_64-linux-gnu-debian8.tar.xz -O $HOME/clang+llvm.tar.xz; fi
- if [ -n "$CLANGV" ]; then tar xf $HOME/clang+llvm.tar.xz -C $HOME/clang+llvm --strip-components 1; fi
- sudo apt-get -qq update
- sudo docker pull ${OS_TYPE}:${OS_VERSION}
script:
- source cmake/local-cmake.sh
- mkdir build
- cd build
- cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=true ..
- CC=$COMPILERC CXX=$COMPILERCXX make -j1 package
- cd $TRAVIS_BUILD_DIR
- if [ -n "$RUNCLANGTIDY" ]; then git ls-files "*.c" |grep tools/ | xargs -P 1 -I{} clang-tidy -p build/tools-prefix/src/tools-build/compile_commands.json -header-filter="^((?\!build).)*$" {}; fi
- if [ -n "$RUNCLANGTIDY" ]; then git ls-files "*.c" |grep arch/x86/loader/ | xargs -P 1 -I{} clang-tidy -p build/arch_x86_loader-prefix/src/arch_x86_loader-build/compile_commands.json -header-filter="^((?\!build).)*$" {}; fi
- ./tests.sh
- rm -rf FILE_ID.DIZ Makefile netio* getopt* bin
- ls -la
- ls -la build
notifications:
slack: hermitcore:UtcfeEXkbpx3WyIDK2Wm2beS
- docker run -ti -v ${TRAVIS_BUILD_DIR}:/work:rw ${OS_TYPE}:${OS_VERSION} /bin/bash
-c "cd /work; ./tests.sh ${OS_TYPE} ${OS_NAME}"
before_deploy:
- cd ${TRAVIS_BUILD_DIR}
- dpkg-deb -b tmp libhermit_0.2.8-1_amd64.deb
deploy:
provider: bintray
on:
branch: master
condition: $DEPLOY = true
provider: bintray
file: .bintray_descriptor.json
skip_cleanup: true
file: ".bintray_descriptor.json"
user:
secure: wo0yLY7xhGZYDqdB05UE+IOXXgYhAwj+zvtZh3ET2253hy35y74cDKMBNGfynH0aauPk8EFmN/LJoYaV/T9QF6pc1bilbqSg1/LJuL7hjAVVFaBSjwlE/Wbbb+EHNX5CR3qmC42SUvbrU+0WNvRu7WJBpZIoH9EtPv2Cj7uRV9+7Mtp/O3Ykl3E5LgkF5iA6Lo03TN+bZ1Vog5MbuJagDTpNa18vJ3jVYaed5gqOkghYYDpc5U9yxN3debS7/8MCl3u9V9uanMAyjc6wtbvJLotVkUwdXK8u9FohuWQ4pTEQ/QspLDDBuxaS3kLNWtzBMNQn6rcYIOWWKyD3uqvIhqjcErX7WChf3oGS1XPFfTHebNrHyV4KGvzkMAJUR/1qC5f4nZCsvgPv/35d702nky3Di2/WZsjD5zUR9g3+vPO8mnM3z8eA6ShVJcxezZ73Co3p0ZnBaF3J438bAKiT4nlrbIVpRzZzo/5nYTx//SefXSAmYCILr/y7xTYBqjfjMQHQZEMZSvJYRPbtP7eVCfWGEa2tG4rQndegUtwS+n1r8atcESL9eeUUM6sa1QzZYDYVseOc9GWcB7SIJzPOm8QTuTlkISHMGJ8FY+KHorP15VkVlr0EZ5c7KY0cBIbWoZGNQTg9+nSgChyf7ElNbAxPiCZsR0zafjMDhfcnzco=
secure: kiTa03QyprxZfL8QuWCLuMnWUpMAhOlmwpHP2BdYsBTNEXS4vfNbOLZSUUWRi29tg1/zdXbIexoUXEmt/ZpDiM0W0kpZrcxvt/bi181RUVei9eoim+GL4jtJ5R7JKBIJuDXbCZiDQTs/oaiIv1EFkMKQeHl6GIiLIl3ehnqNyvpJvJC713uW6PTbxUjz20pfhFiq7B73j/onLVTC1m19L9lFnsryxatDN7zny/qZHmyel3ggDbPokv7jZwSYNs/X6yyOF1RQZ2qqIML0YLtkLqdrCqviSD/8p7OdNN34ACf6I+D5GIzZd1arlrOO2RsB+mIlDxoOiCNtwPbCVs3ReY9DOlNBxs/fABEyVyEWX20VboiLbWbhCok6V4Uk95BCHBbp6ceP06NhQ9gFbqFJwQe6NG/XlQbrKBp7Yj3+GovcNDjWVcHYpSuc4a7+1unM3tfPMFREgloTX0xg017H1eiRiR2viJsMuCmtCXteZ8H9qTx1l8Kf+cXKtg/h+XIkzDbIwhlO/jE3Bss7LSDNghYUBo2meEEJgibbFCuNQCFoA5doYCOMz4rO1YT3uI2fBLisAIqys+e3zGfmHARejjMASjdwT5vZzDNeeiTE8/2zG5X7Ow697TI+HtnFE+/hCZ4RAmu+vz6/IZYYO/Mf7kIAs8WGfcAkuCPzYXBoA10=
key:
secure: JfsqEUO3Z60yGfuK5RSzwMoWZtaYflZtW7QE6R1DVMPEQ+CytzEdV2JaTpY14xz4yz1YpBBuQ0P3Q3e2rf/ORp8N8j7/5m3gfiDi8bRH3gX10r6vCQaUBilj0pz3amWUacxwBUEYR/f1029OnJ1qug30f4ARk7DWyuAePt0OboDXZ3j4JOi8xfXKTzofyKGugU4EuzhmKAbpHaBoX97g8z+gETC+wsBEYio8iD2h0ZOe/qZ0S+JGYkphIKcxpQazKdi3YrmWm0BUZsQRtkgoH7KUZm8vqfOUyVOrK+UGOTz4vXqCWHZ+wG1QRrGPUv8ehLrB26y2o02mmaDWQhM+I3RtllL06JDvDw40xjRImYtzg6xr7Mvl0OTQHprXrkN8gw2IbIivV8v31O46Ov+KIaN3CCx1IncnllBWjEXAIs4zPtvNj2Ad338JTkI/opHmPG0DI0DKE36r8wPZYTs/pHVpc3xEzwKYDklJkICjMLUakUGKppS7eKzKGRMjWvbT0vM/U7hHUcz0lA+BUoXedNmJQ1wBT85Ud8uobuKS4C8QmlgIuF1PI2+6LJr5LsCGZRvg7Pl1SPc3ZQLPHX4ggoLAnZZJiV/0ZPCn7XCLiUS1qws37l0uZT1zJQMFLsw9MGuP58tpT7WDuYYAwma/pL+OKC/JKoDhuJwM1I7wB4s=
after_deploy:
- docker login -u $DOCKER_USER -p $DOCKER_PASS
- export REPO=rwthos/hermitcore
- export TAG=`if [ "$TRAVIS_BRANCH" == "master" ]; then echo "latest"; else echo $TRAVIS_BRANCH ; fi`
- cd docker
- docker build -f Dockerfile -t $REPO:$COMMIT .
- docker tag $REPO:$COMMIT $REPO:$TAG
- docker tag $REPO:$COMMIT $REPO:travis-$TRAVIS_BUILD_NUMBER
- docker push $REPO
- cd -
env:
global:
- COMMIT=${TRAVIS_COMMIT::8}
- secure: GDWIzwLeCd12zT9cM0dEBBAVE345oT2ECQiaUTj6zIEhncKxDD2yE56eMpj0X9UCCjKLzTmJ4j8vD/cwB96Z43k+yiLHV+sa3pGnE8JAbgmbbbLTmSuyQQcCR4GQ4nzK48ylOygwmilBpUAH+Vw0jIFspeUD1j8KtKosXWBNPmWhwXDXWh1ae1fDYXxycaVAiUQrufNBs2dMSYrL0Dqsvj3HVla37dkzior2DM3kuWoE9kU61tLbBcwJn3GTMXdy10tIGLZzS+ZDU+ETbKadAlOZ58DsK3wLlgSloRJqBCzpJfCXpS7tU5kHIPyfAXgB5rBtWfyiSx6je171XEuxONl48BRyOI1O0Dqc8UiJ+W6eyqUyGoEPJ6r6r1oAbvcr4Ebf+sRtfj4PjnopIGzIrPNc1uebCgKpD2nQIO9P4XnwH/EbOU4My+kr5JPL8O0x4kottQeWr9v5nuhfBgknZpMIvncip9N9eek4aSMzfkAymmf7HBcPTMhb/v6xlwluqKsDE+c4WDQ2NhivpsDpqDZujhDh75MMFq7TlLRHlHNr64P7pz0A0xC2TJK9mC9u+WrwdpIFEsyDIiSSiOJ8GGgr5NK+dnXKZBy3b4/pk/TJciItk1W37RYiP1H4sVa+37VZ3VMUAwPVb1vgPG1r1XND/asjR/zzT374O/l0vNM=
- secure: TZy4F5ZdcUu5iaSaxNRK6qGzW20GMVI8E6Ol7lZnb5qXzGyZHZCYdT6eW5rLTsKvMriSrO9++GHx5iSSaG23Y9WiMWC4rpKzuax9vVB/1EbbBu1i6I+GaO5agR+isf6PPlPBVvn84Lzky1O2kLtdgSUmu5cJZnbSRfG8utWemNmPgBQ4wgRtujz5xLdgv98NYsCCLR13cwWE3Cd3uZb4vEF1qkjgwn9XKbemWCB3mlI2ZgTdAPl8cv/T+PP2Pou7B7E5qOBcVb/GA3uXtgX0Y7bJxLeCetCkP39hmRZ0idr6BnSrSYwgCnbmf8LNTYaz0mKLwRxMu6wHkvYcvPjaGfawHB/6NJvDtjjIzohnTe3V15VktUKPnfiLV60NKjCYyiPIOKwsviFeC+H2NHSr0LWXKjoolzxiaOy4CrcsizwGBF8dcDYjPf6wdt2+7DUDXJtAscaa/eCCSxkG9Ls7FZIuLiQKFzTAAimtkGyIFcvtWvtP/6axcxVyP+0AJeFsgAt6hUfYBeHzlO/6yAM24YaVOjqPfTE9EebJtey0C7u7kruuqefywr5YqSfSrKcel+8wZNVIJTLPHrp+KpNqkfXt65uzC2q08z34c8kkKYWRA5nMVj4OLlecAtyvhpW0WOlWaeMBlJ1FRaJ/+U/PFUI2BjDHG3rIKqepA749huc=
secure: fg8+5owyDFPt3H/+Xk8jGHtEBasz1C2K0i+z92f/JnjTyLCrrKn+6DX7VRgcEl4ketTWLex7JduJLl4/7Ftug8qN0NuMwx0OxDCrwzvkoVwbl2DYX8von9ceuuV57p4e+uG35bPjU7E1KblkL+7ERqn9hsp5NbVdb4ueoSl9LedDdfzwcz8iA8JmzpbJ5RwQqg4kmdvuRVEUZMbQeHq4KB3kTznsma3BUeApVSaRQ8BpSaHED0tzFWKUTdjq7GvjBMF6WNpVIsc7Usky78UUyjaGbfMyT/7i9RctC3rAXr2XZryxDrJstAnHo6trqraf/3E40a7r0LhF9y7HWdmlfG99qhT3Vii3/pHeRIDp5O6xpIF8o/QkbYaFTwcvefRCjRQ8YYREqYvYnXOsKge/VaoUx48pTn6fOPzEzvlbyTkJ6Wp7knhx4qzR5JB8yTbIjoozggrkayvkYVfdMZjXvY/2T8TcNbPG0+0+EVkUcNrNMy9ksAH4RgR+eVQ4oI/sg5ldnVpp74jhSSDgAHBKCZQ01tIYMMEIyZm7qhAAdXnjCeV6D78a8/brUN+TSRNGYILx4vTiY3GMLEHsDGH4VEGawef0CtQasBrt5Cc0a/3KDNwuBy8rlbxLxbv+JCCn9vMm+UYQ6sTexsih76V07OHmQliu0xjQgBG5maFaV74=

View file

@ -47,13 +47,13 @@ the HermitCore kernel and applications you need:
### HermitCore cross-toolchain
We provide prebuilt packages (currently Debian-based only) of the HermitCore
We provide prebuilt packages (currently Ubuntu 18.04 only) of the HermitCore
toolchain, which can be installed as follows:
```bash
$ echo "deb [trusted=yes] https://dl.bintray.com/rwth-os/hermitcore vivid main" | sudo tee -a /etc/apt/sources.list
$ echo "deb [trusted=yes] https://dl.bintray.com/hermitcore/ubuntu bionic main" | sudo tee -a /etc/apt/sources.list
$ sudo apt-get -qq update
$ sudo apt-get install binutils-hermit newlib-hermit pthread-embedded-hermit gcc-hermit libhermit
$ sudo apt-get install binutils-hermit newlib-hermit pte-hermit gcc-hermit libhermit
```
For non-Debian based systems, a docker image with the complete toolchain is provided and can be installed as follows:

View file

@ -14,9 +14,18 @@ RUN echo "deb https://dl.bintray.com/rwth-os/hermitcore vivid main" | tee -a /et
RUN apt-get -qq update
# Install required packets from ubuntu repository
RUN apt-get install -y curl wget vim nano git binutils autoconf automake make cmake qemu-system-x86 nasm gcc
RUN apt-get install -y curl cmake bsdmainutils wget vim nano git binutils autoconf automake make cmake qemu-system-x86 nasm gcc
RUN apt-get install -y --allow-unauthenticated binutils-hermit libhermit newlib-hermit pthread-embedded-hermit gcc-hermit
RUN wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
RUN tar xzvf cmake*.tar.gz
RUN cd cmake-3.7.2
RUN ./bootstrap
RUN make
RUN make install
RUN cd ..
RUN rm -rf cmake*
ENV PATH="/opt/hermit/bin:${PATH}"
ENV EDITOR=vim

View file

@ -1,35 +1,53 @@
#!/bin/bash
#
# do not use this script
# it is written only for internal tests via Travis CI
TDIR=build/local_prefix/opt/hermit/x86_64-hermit/extra
FILES="$TDIR/tests/hello $TDIR/tests/hellof $TDIR/tests/hello++ $TDIR/tests/thr_hello $TDIR/tests/pi $TDIR/benchmarks/stream $TDIR/benchmarks/basic $TDIR/tests/signals $TDIR/tests/test-malloc $TDIR/tests/test-malloc-mt $TDIR/tests/argv_envp"
PROXY=build/local_prefix/opt/hermit/bin/proxy
OS_NAME=$1
OS_VERSION=$2
for f in $FILES; do echo "check $f..."; HERMIT_ISLE=qemu HERMIT_CPUS=1 HERMIT_KVM=0 HERMIT_VERBOSE=1 timeout --kill-after=5m 5m $PROXY $f || exit 1; done
if [ "$OS_NAME" = "centos" ]; then
for f in $FILES; do echo "check $f..."; HERMIT_ISLE=qemu HERMIT_CPUS=2 HERMIT_KVM=0 HERMIT_VERBOSE=1 timeout --kill-after=5m 5m $PROXY $f || exit 1; done
# Clean the yum cache
yum -y clean all
yum -y clean expire-cache
# test echo server at port 8000
HERMIT_ISLE=qemu HERMIT_CPUS=1 HERMIT_KVM=0 HERMIT_VERBOSE=1 HERMIT_APP_PORT=8000 $PROXY $TDIR/tests/server &
sleep 10
curl http://127.0.0.1:8000/help
sleep 1
curl http://127.0.0.1:8000/hello
sleep 1
# First, install all the needed packages.
yum install -y wget gettext flex bison binutils gcc gcc-c++ texinfo kernel-headers rpm-build kernel-devel boost-devel cmake git tar gzip make autotools
# kill server
kill $!
wget http://checkinstall.izto.org/files/source/checkinstall-1.6.2.tar.gz
tar xzvf checkinstall-1.6.2.tar.gz
cd checkinstall-1.6.2
./configure
make
make install
cd ..
rm -rf checkinstall*
# test connection via netio
wget http://web.ars.de/wp-content/uploads/2017/04/netio132.zip
unzip netio132.zip
HERMIT_ISLE=qemu HERMIT_CPUS=2 HERMIT_KVM=0 HERMIT_VERBOSE=1 HERMIT_APP_PORT=18767 $PROXY $TDIR/benchmarks/netio &
sleep 1
chmod a+rx bin/linux-x86_64
bin/linux-x86_64 -t -b 4k localhost
sleep 1
mkdir -p build
cd build
../configure --target=x86_64-hermit --prefix=/opt/hermit --disable-shared --disable-nls --disable-gdb --disable-libdecnumber --disable-readline --disable-sim --disable-libssp --enable-tls --disable-multilib
make
checkinstall -R -y --exclude=build --pkggroup=main --maintainer=stefan@eonerc.rwth-aachen.de --pkgsource=https://hermitcore.org --pkgname=newlib-hermit --pkgversion=2.30.51 --pkglicense=GPL2 make install
# kill server
kill $!
else
export DEBIAN_FRONTEND="noninteractive"
apt-get -qq update
apt-get install -y cmake wget curl gnupg checkinstall gawk dialog apt-utils flex bison binutils texinfo gcc g++ libmpfr-dev libmpc-dev libgmp-dev libisl-dev packaging-dev build-essential libtool autotools-dev autoconf pkg-config apt-transport-https nasm
echo "deb [trusted=yes] https://dl.bintray.com/hermitcore/ubuntu bionic main" | tee -a /etc/apt/sources.list
apt-get update
apt-get install -y --allow-unauthenticated binutils-hermit newlib-hermit pte-hermit gcc-hermit #gcc-hermit-bootstrap
export PATH=/opt/hermit/bin:$PATH
mkdir -p build
cd build
cmake -DTOOLCHAIN_BIN_DIR=/opt/hermit/bin -DCMAKE_INSTALL_PREFIX=/opt/hermit .. #-DBOOTSTRAP=true ..
make hermit-bootstrap
checkinstall -D -y --exclude=build --pkggroup=main --maintainer=stefan@eonerc.rwth-aachen.de --pkgsource=https://hermitcore.org --pkgname=libhermit --pkgversion=0.2.8 --pkglicense=BSD-2-Clause make hermit-bootstrap-install
cd ..
mkdir -p tmp
dpkg-deb -R build/libhermit_0.2.8-1_amd64.deb tmp
rm -f build/libhermit_0.2.8-1_amd64.deb
fi