Skip to content

Commit

Permalink
Add toolchains for CentOS 7
Browse files Browse the repository at this point in the history
  • Loading branch information
Kartatz committed Feb 1, 2025
1 parent df0ffdd commit 625ddc8
Show file tree
Hide file tree
Showing 5 changed files with 143 additions and 2 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,16 @@ OBGGCC can also be useful if you just want to test whether your program builds o

## Supported targets

Currently, OBGGCC provides cross-compilers targeting 7 major Debian releases on 16 system architectures.
Currently, OBGGCC provides cross-compilers targeting 7 major Debian releases and 1 major CentOS release on 16 system architectures.

### Debian releases
### Distributions

| distribution_version | glibc_version | linux_version | availability_date |
| ------------------------- | ---------------- | ---------------- | ------------------ |
| Debian 5 (Lenny) | Glibc 2.7 | Linux 2.6 | 2009 |
| Debian 6 (Squeeze) | Glibc 2.11 | Linux 2.6 | 2011 |
| Debian 7 (Wheezy) | Glibc 2.13 | Linux 3.2 | 2013 |
| CentOS 7 | Glibc 2.17 | Linux 3.10 | 2014 |
| Debian 8 (Jessie) | Glibc 2.19 | Linux 3.16 | 2015 |
| Debian 9 (Stretch) | Glibc 2.24 | Linux 4.9 | 2017 |
| Debian 10 (Buster) | Glibc 2.28 | Linux 4.19 | 2019 |
Expand Down
25 changes: 25 additions & 0 deletions tools/dev/autotools/i386-unknown-linux-gnu2.17.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_PROCESSOR "i386")

set(TARGET_GLIBC "2.17")
set(TOOLCHAIN_PREFIX "${CMAKE_SYSTEM_PROCESSOR}-unknown-linux-gnu")

set(TOOLCHAIN_PATH "$ENV{OBGGCC_HOME}")

if ("${TOOLCHAIN_PATH}" STREQUAL "")
set(TOOLCHAIN_PATH "${CMAKE_CURRENT_LIST_DIR}/../..")
endif()

set(CMAKE_C_COMPILER "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}${TARGET_GLIBC}-gcc" CACHE FILEPATH "cc")
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}${TARGET_GLIBC}-g++" CACHE FILEPATH "c++")
set(CMAKE_AR "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-ar" CACHE FILEPATH "ar")
set(CMAKE_RANLIB "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-ranlib" CACHE FILEPATH "ranlib")
set(CMAKE_STRIP "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-strip" CACHE FILEPATH "strip")
set(CMAKE_OBJCOPY "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-objcopy" CACHE FILEPATH "objcopy")
set(CMAKE_NM "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-nm" CACHE FILEPATH "nm")

set(CMAKE_FIND_ROOT_PATH "${TOOLCHAIN_PATH}/${TOOLCHAIN_PREFIX}${TARGET_GLIBC}" CACHE FILEPATH "sysroot")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
45 changes: 45 additions & 0 deletions tools/dev/autotools/i386-unknown-linux-gnu2.17.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#/bin/bash

set -e

if [ -z "${OBGGCC_HOME}" ]; then
OBGGCC_HOME="$(realpath "$(dirname "${0}")")/../.."
fi

set -u

CROSS_COMPILE_TRIPLET='i386-unknown-linux-gnu'
CROSS_COMPILE_SYSTEM='linux'
CROSS_COMPILE_ARCHITECTURE='i386'
CROSS_COMPILE_GLIBCVER='2.17'
CROSS_COMPILE_SYSROOT="${OBGGCC_HOME}/${CROSS_COMPILE_TRIPLET}${CROSS_COMPILE_GLIBCVER}"

CC="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}${CROSS_COMPILE_GLIBCVER}-gcc"
CXX="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}${CROSS_COMPILE_GLIBCVER}-g++"
AR="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-ar"
AS="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-as"
LD="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-ld"
NM="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-nm"
RANLIB="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-ranlib"
STRIP="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-strip"
OBJCOPY="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-objcopy"
READELF="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-readelf"

export \
CROSS_COMPILE_TRIPLET \
CROSS_COMPILE_SYSTEM \
CROSS_COMPILE_ARCHITECTURE \
CROSS_COMPILE_GLIBCVER \
CROSS_COMPILE_SYSROOT \
CC \
CXX \
AR \
AS \
LD \
NM \
RANLIB \
STRIP \
OBJCOPY \
READELF

set +eu
25 changes: 25 additions & 0 deletions tools/dev/autotools/x86_64-unknown-linux-gnu2.17.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")

set(TARGET_GLIBC "2.17")
set(TOOLCHAIN_PREFIX "${CMAKE_SYSTEM_PROCESSOR}-unknown-linux-gnu")

set(TOOLCHAIN_PATH "$ENV{OBGGCC_HOME}")

if ("${TOOLCHAIN_PATH}" STREQUAL "")
set(TOOLCHAIN_PATH "${CMAKE_CURRENT_LIST_DIR}/../..")
endif()

set(CMAKE_C_COMPILER "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}${TARGET_GLIBC}-gcc" CACHE FILEPATH "cc")
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}${TARGET_GLIBC}-g++" CACHE FILEPATH "c++")
set(CMAKE_AR "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-ar" CACHE FILEPATH "ar")
set(CMAKE_RANLIB "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-ranlib" CACHE FILEPATH "ranlib")
set(CMAKE_STRIP "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-strip" CACHE FILEPATH "strip")
set(CMAKE_OBJCOPY "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-objcopy" CACHE FILEPATH "objcopy")
set(CMAKE_NM "${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}-nm" CACHE FILEPATH "nm")

set(CMAKE_FIND_ROOT_PATH "${TOOLCHAIN_PATH}/${TOOLCHAIN_PREFIX}${TARGET_GLIBC}" CACHE FILEPATH "sysroot")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
45 changes: 45 additions & 0 deletions tools/dev/autotools/x86_64-unknown-linux-gnu2.17.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#/bin/bash

set -e

if [ -z "${OBGGCC_HOME}" ]; then
OBGGCC_HOME="$(realpath "$(dirname "${0}")")/../.."
fi

set -u

CROSS_COMPILE_TRIPLET='x86_64-unknown-linux-gnu'
CROSS_COMPILE_SYSTEM='linux'
CROSS_COMPILE_ARCHITECTURE='x86_64'
CROSS_COMPILE_GLIBCVER='2.17'
CROSS_COMPILE_SYSROOT="${OBGGCC_HOME}/${CROSS_COMPILE_TRIPLET}${CROSS_COMPILE_GLIBCVER}"

CC="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}${CROSS_COMPILE_GLIBCVER}-gcc"
CXX="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}${CROSS_COMPILE_GLIBCVER}-g++"
AR="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-ar"
AS="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-as"
LD="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-ld"
NM="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-nm"
RANLIB="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-ranlib"
STRIP="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-strip"
OBJCOPY="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-objcopy"
READELF="${OBGGCC_HOME}/bin/${CROSS_COMPILE_TRIPLET}-readelf"

export \
CROSS_COMPILE_TRIPLET \
CROSS_COMPILE_SYSTEM \
CROSS_COMPILE_ARCHITECTURE \
CROSS_COMPILE_GLIBCVER \
CROSS_COMPILE_SYSROOT \
CC \
CXX \
AR \
AS \
LD \
NM \
RANLIB \
STRIP \
OBJCOPY \
READELF

set +eu

0 comments on commit 625ddc8

Please sign in to comment.