Commit Graph

26 Commits

Author SHA1 Message Date
Jean-Christophe Fillion-Robin
369d828efd Dockerfile: Remove unused default value associated IMAGE build argument 2021-04-18 19:15:26 +02:00
Leonardo Graboski Veiga
0848dfc264 Set environment variables for Linux kernel cross compilation
Set the ARCH, CROSS_COMPILE and PATH variables to support Linux kernel
cross compilation.

ARCH is set according to:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/arch?h=v5.2.2

PATH is set to include the cross toolchain path, which is used by the
kernel Makefile.

CROSS_COMPILE is the CROSS_TRIPLE with a dash appended, as the kernel
Makefile uses it to invoke the toolchain utils.

To build the kernel, depending on the config, libssl-dev and libelf-dev
are required. Those are not dealt in this commit as they are not
correlated to the environment variables.

Validated by build the kernel using default kernel config when possible,
otherwise randomly select a defconfig.

<arch> - <defconfig>
arm64 - defconfig
armv5 and armv5-musl - colibri_pxa270_defconfig
armv6 - bcm2835_defconfig
armv7 and armv7a- tegra_defconfig
*x86 - i386_defconfig
mips and mipsel - ath79_defconfig
ppc64le - wii_defconfig
s390x - defconfig
x64 - x86_64_defconfig

* x86 dockcross toolchain does not provide "ld" and compilation fails.

fix #160
2019-07-23 22:54:25 -03:00
Hubert Farnsworth
aae501313e Updated debian distro from jessie to stretch 2019-04-22 14:09:10 +00:00
Matt McCormick
c96cbdc956
versioning: Set DEFAULT_DOCKCROSS_IMAGE based on the image tag
This ensures that the dockcross script will continue to use the specific
tagged version of the image that generates it.
2019-01-16 23:25:52 -05:00
Matt McCormick
ba72994b41
common: Fix bash shell script invocation
`#!/usr/bin/env bash` should be used to avoid hard paths.

To address:

  dockcross-manylinux-x64: bad interpreter: /bin/bash^M: no such file or directory
2018-08-20 18:12:32 -04:00
Anton Chernov
eb65a8970a Added fortran compiler
* Added FC to all Dockerfiles
* Changed cmake toolchains to use environment variables for compilers
2018-05-25 18:34:23 +02:00
Francois Budin
602fb22cce ENH: Compile git with SSL support
Older versions of git included in older linux distributions are not able
to download source from Github. A newer version is required with a newer
OpenSSL. This requires to also build curl with the same OpenSSL.

CMake is downloaded precompiled if available (64bits system) or compiled
from source otherwise.
2018-04-14 19:12:07 -04:00
Jean-Christophe Fillion-Robin
286e6b5c95
Dockerfile: Explicitly depend on "dockcross/base:latest"
As recommended in by CircleCI, explicitly specify the "latest"
tag. This will be important when we will start versioning our images.

Copied from CircleCI documentation [1]:

"Make sure you tag the image you use in the FROM command in your
Dockerfile, even if it is the default “latest” tag. Otherwise, Docker
will pull down all tags for the image you specify. This will create
significant performance problems because the save/load strategy described
above only caches the image layers (and thus tags) that you specify in
the docker save command, so other tags will be re-pulled on every build
if a tag is not specified in the FROM command."

[1] https://circleci.com/docs/docker/#caching-docker-layers
2016-11-26 18:25:08 -05:00
Jean-Christophe Fillion-Robin
191d773e01
makefile: Ensure imagefiles are available in build image context 2016-11-25 15:51:38 -05:00
Jean-Christophe Fillion-Robin
0552c37fea
common.docker: Improve OpenSSL and CMake install introducing helper scripts
To accommodate the requirements associated with x86 and x64 images, the
command building OpenSSL and CMake became overly complex and hard to
maintain.

This commit has multiple purposes:

(1) simplify common.docker

(2) fix the building of 64-bit shared libraries against the static openssl
libraries by passing the -fPIC flag.

(3) ensure [many]linux-x86 and [many]linux-x64 images have an up-to-date
OpenSSL install. Openssl static libraries are installed in /usr

(4) simplify and speedup CMake build avoiding the second build with
explicit -DCMAKE_USE_OPENSSL:BOOL=ON. Indeed, configuring CMake on Linux
already looks for OpenSSL.

(5) speedup download of CMake source directly downloading the archive
corresponding to the revision.

(6) test CMake by:
  - running CMake.FileDownload test
  - trying to download a file served over https
2016-11-21 06:08:30 -05:00
Jean-Christophe Fillion-Robin
cfcc7d6700
dockerfile: Keep track of buildtime metadata
This commit build each images with the following arguments:

* IMAGE: Name of the image (e.g dockcross/base, dockcross/manylinux-x64, ...)
* VCS_REF: dockcross/dockcross commit from which this image is built
* VCS_URL: this repository obtained reading remote.origin.url
* BUILD_DATE: Date and time when the build was initiated

Then, within the Dockerfile, the metadata are associated with the image
using the "LABEL" instruction.
See https://docs.docker.com/engine/reference/builder/#/label

The corresponding labels can be found here:
http://label-schema.org/rc1/#build-time-labels

See #28
2016-10-30 23:57:04 -04:00
Matt McCormick
fd2b8efe51 linux-x86: Use linux32 as entrypoint for uname -m output 2016-09-24 22:37:00 -04:00
Matt McCormick
04c7d0de18 Rename project and repository to dockcross 2016-07-15 23:46:08 -04:00
Matt McCormick
fdb18671e3 dockcross: make the default image specific to each compiler 2016-07-04 00:10:36 -04:00
Sven Fischer
60ffd750fa Adapted and corrected linux-x86 Xcompile toolset 2016-05-30 22:50:22 +02:00
Jean-Christophe Fillion-Robin
bf42ff14c8 linux-x86: Install "common" additional packages
These packages also mirror the one already available in the base images
for x86_64.
2016-04-16 16:43:13 -04:00
Jean-Christophe Fillion-Robin
dc871beb50 linux-x86: Set emulator path using a "noop" script without argument.
This will fix issue where emulator is used doing:

  COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} /path/to/prog arg1 arg2

Prior to this commit, it wasn't working because the following command
was used:

  /bin/sh -c /path/to/prog arg1 arg2
2016-04-16 16:43:13 -04:00
Jean-Christophe Fillion-Robin
4ccd459994 linux-x86: Avoid CMake issue by not setting CMAKE_AR. It is automatically set.
It is automatically set in CMakeFindBinUtils.cmake using the value
of _CMAKE_TOOLCHAIN_PREFIX extracted from the compiler name within
CMakeDetermineCCompiler.cmake.

The CMake issue is #15448 - https://cmake.org/Bug/view.php?id=15448
2016-04-16 16:43:13 -04:00
Jean-Christophe Fillion-Robin
7527b8e6e3 linux-x86: Tweak toolchain comment associated with CMAKE_IGNORE_PATH 2016-04-15 03:29:07 -04:00
Jean-Christophe Fillion-Robin
f57b97b06b linux-x86: Add toolchain file and install libc6 and stdc++6 32-bit libraries 2016-04-13 19:54:28 -04:00
Matt McCormick
af5c3fecec linux-x86: Update and add testing. 2016-04-06 16:48:12 -04:00
Steeve Morin
6daa79eab3
Add strip and objdump to the cross tools
Signed-off-by: Steeve Morin <steeve.morin@gmail.com>
2014-11-13 19:05:41 +01:00
Steeve Morin
127e07929a
[linux-x86] Add proper gcc and g++
Signed-off-by: Steeve Morin <steeve.morin@gmail.com>
2014-11-06 00:21:31 +01:00
Steeve Morin
08a10c3137
[linux] use g++ as c++
Signed-off-by: Steeve Morin <steeve.morin@gmail.com>
2014-11-05 23:40:15 +01:00
Steeve Morin
ff2d529eb5
[linux] Update images to ensure proper triples
Signed-off-by: Steeve Morin <steeve.morin@gmail.com>
2014-11-05 23:10:24 +01:00
Steeve Morin
703053871c
Use base image, add Makefile, compress RUN statements to save on disk space
Signed-off-by: Steeve Morin <steeve.morin@gmail.com>
2014-10-17 13:42:56 +02:00