Sign inSign up

qtum/x86compiler

By qtum

Updated almost 8 years ago

This is a Docker image of Qtum-x86-toolchian

Image
0

1.0K

qtum/x86compiler repository overview

Quickstart

This is a Docker container of Qtum-x86-toolchian. All required environments are included in the docker image, and developers can use this compiler directly.

About Qtum x86-toolchain

Currently, x86-toolchain is a GNU GCC and friends toolchain modified to support the "i686-qtum" target. This means that after building this, it is possible to simply do:

i686-qtum-gcc test.c -o contract

And the "contract" file that is outputed will be capable of being used with the x86Lib testbench program (and later deployed to Qtum's blockchain)

Get docker image

You might take either way:

Pull a image from Public Docker hub
$ docker pull qtum/x86compiler
Or, build qtum image with provided Dockerfile
$docker build --rm -t qtum/x86compiler .

For historical versions, please visit docker hub

Prepare data path

It is suggested to prepare a data path in advance, in order to mount to container. -v option for docker is recommended.

First chose a path to save source files, for example:

sudo rm -rf /data/qtum-x86-data
sudo mkdir -p /data/qtum-x86-data
sudo chmod a+w /data/qtum-x86-data

And put you source file (like the test.c provided in the repo) into the path.

Or you can choose an existing path that includes those source file.

run x86compiler container

First check the gcc version:

$ docker run --rm qtum/x86compiler i686-qtum-gcc -v

## result:
Using built-in specs.
COLLECT_GCC=i686-qtum-gcc
COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/i686-qtum/7.2.0/lto-wrapper
Target: i686-qtum
Configured with: ../gcc-7.2.0/configure --target=i686-qtum --prefix=/opt/cross --with-sysroot=/root/x86-compiler/sysroot --enable-languages=c,c++
Thread model: single
gcc version 7.2.0 (GCC)

To use i686-qtum-gcc:

$ docker run --rm  \
             -v /data/qtum-x86-data/:/data/ \
             qtum/x86compiler \
             i686-qtum-gcc /data/test.c -o /data/test.elf

Since the /data/qtum-x86-data is mounted to /data in the container, this will compile test.c in the path and create create output file test.elf in the same path.

Interactive run

If you want to run the compiler in an interactive way,

$ docker run --rm -it \
             -v /data/qtum-x86-data/:/data/ \
             qtum/x86compiler \
             bash

Then you can use the bash of the container just like in Ubuntu command line:

root@11d4d98b45f1:/# i686-qtum-gcc /data/test.c -o /data/test.elf

For the local machine, the output files will also be placed in the path passed by -v option. (here it is /data/qtum-x86-data/).

Tag summary

Content type

Image

Digest

Size

857.5 MB

Last updated

almost 8 years ago

docker pull qtum/x86compiler