Skip to content

Commit

Permalink
Upgraded crosstool-ng and GCC for x86
Browse files Browse the repository at this point in the history
 This required/allowed for upgrading the following components:
 - crosstool-ng:  1.24.0
 - GCC version:   8.3.0
 - uClibc-ng:     1.0.35
 - expat:         2.2.6
 - strace:        4.26
 - binutils:      2.28.1
 - automake:      1.15.1
 - efivar:        37
 - mpfr:          3.1.6
 - zlib:          1.2.11

Tested with kvm build. Installed ONIE on empty qcow2 image,
then booted that image and installed the kvm demo OS.

Signed-off-by: Alex Doyle <[email protected]>
Signed-off-by: Alex Doyle <[email protected]>
  • Loading branch information
ehdoyle committed Jan 12, 2021
1 parent 34be58f commit 252b2de
Show file tree
Hide file tree
Showing 22 changed files with 1,318 additions and 67 deletions.

Large diffs are not rendered by default.

243 changes: 243 additions & 0 deletions build-config/conf/uclibc/1.0.35/uclibc.x86_64.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
#
# Automatically generated file; DO NOT EDIT.
# uClibc-ng 1.0.25 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
# TARGET_arc is not set
# TARGET_arm is not set
# TARGET_avr32 is not set
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
# TARGET_microblaze is not set
# TARGET_mips is not set
# TARGET_nds32 is not set
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
# TARGET_sh is not set
# TARGET_sparc is not set
TARGET_x86_64=y
# TARGET_xtensa is not set

#
# Target Architecture Features and Options
#
TARGET_ARCH="x86_64"
FORCE_OPTIONS_FOR_ARCH=y
TARGET_SUBARCH=""

#
# Using ELF file format
#
ARCH_HAS_DEPRECATED_SYSCALLS=y
ARCH_LITTLE_ENDIAN=y

#
# Using Little Endian
#
ARCH_HAS_MMU=y
ARCH_USE_MMU=y
UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
# DO_C99_MATH is not set
# DO_XSI_MATH is not set
UCLIBC_HAS_FENV=y
KERNEL_HEADERS="/usr/include"
HAVE_DOT_CONFIG=y

#
# General Library Settings
#
DOPIC=y
ARCH_HAS_UCONTEXT=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
# LDSO_CACHE_SUPPORT is not set
LDSO_PRELOAD_ENV_SUPPORT=y
# LDSO_PRELOAD_FILE_SUPPORT is not set
LDSO_STANDALONE_SUPPORT=y
LDSO_PRELINK_SUPPORT=y
# UCLIBC_STATIC_LDCONFIG is not set
# LDSO_RUNPATH is not set
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
# LDSO_NO_CLEANUP is not set
UCLIBC_CTOR_DTOR=y
LDSO_GNU_HASH_SUPPORT=y
# HAS_NO_THREADS is not set
# UCLIBC_HAS_LINUXTHREADS is not set
UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
# PTHREADS_DEBUG_SUPPORT is not set
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
# MALLOC_SIMPLE is not set
MALLOC_STANDARD=y
UCLIBC_DYNAMIC_ATEXIT=y
# COMPAT_ATEXIT is not set
UCLIBC_HAS_UTMPX=y
UCLIBC_HAS_UTMP=y
# UCLIBC_SUSV2_LEGACY is not set
UCLIBC_SUSV3_LEGACY=y
# UCLIBC_HAS_CONTEXT_FUNCS is not set
# UCLIBC_SUSV3_LEGACY_MACROS is not set
UCLIBC_SUSV4_LEGACY=y
# UCLIBC_STRICT_HEADERS is not set
# UCLIBC_HAS_STUBS is not set
UCLIBC_HAS_SHADOW=y
# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
# UCLIBC_HAS___PROGNAME is not set
UCLIBC_HAS_PTY=y
ASSUME_DEVPTS=y
UNIX98PTY_ONLY=y
# UCLIBC_HAS_GETPT is not set
UCLIBC_HAS_LIBUTIL=y
UCLIBC_HAS_TM_EXTENSIONS=y
UCLIBC_HAS_TZ_CACHING=y
UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y

#
# Advanced Library Settings
#
UCLIBC_PWD_BUFFER_SIZE=256
UCLIBC_GRP_BUFFER_SIZE=256

#
# Support various families of functions
#
UCLIBC_LINUX_SPECIFIC=y
UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
# UCLIBC_SV4_DEPRECATED is not set
UCLIBC_HAS_REALTIME=y
UCLIBC_HAS_ADVANCED_REALTIME=y
UCLIBC_HAS_EPOLL=y
UCLIBC_HAS_XATTR=y
UCLIBC_HAS_PROFILING=y
UCLIBC_HAS_CRYPT_IMPL=y
# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set
# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set
UCLIBC_HAS_CRYPT=y
UCLIBC_HAS_NETWORK_SUPPORT=y
UCLIBC_HAS_SOCKET=y
UCLIBC_HAS_IPV4=y
UCLIBC_HAS_IPV6=y
# also unused in 1.0.25 UCLIBC_HAS_RPC is not set
UCLIBC_USE_NETLINK=y
UCLIBC_SUPPORT_AI_ADDRCONFIG=y
# UCLIBC_HAS_BSD_RES_CLOSE is not set
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y

#
# String and Stdio Support
#
UCLIBC_HAS_STRING_GENERIC_OPT=y
UCLIBC_HAS_STRING_ARCH_OPT=y
UCLIBC_HAS_STDIO_FUTEXES=y
UCLIBC_HAS_CTYPE_TABLES=y
UCLIBC_HAS_CTYPE_SIGNED=y
UCLIBC_HAS_CTYPE_UNSAFE=y
# UCLIBC_HAS_CTYPE_CHECKED is not set
# UCLIBC_HAS_CTYPE_ENFORCED is not set
UCLIBC_HAS_WCHAR=y
UCLIBC_HAS_LIBICONV=y
# UCLIBC_HAS_LIBINTL is not set
# UCLIBC_HAS_LOCALE is not set
# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
# also unused in 1.0.25 UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
UCLIBC_HAS_STDIO_BUFSIZ_4096=y
# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
UCLIBC_HAS_STDIO_GETC_MACRO=y
UCLIBC_HAS_STDIO_PUTC_MACRO=y
UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
# UCLIBC_HAS_PRINTF_M_SPEC is not set
UCLIBC_HAS_ERRNO_MESSAGES=y
# UCLIBC_HAS_SYS_ERRLIST is not set
UCLIBC_HAS_SIGNUM_MESSAGES=y
# UCLIBC_HAS_SYS_SIGLIST is not set
UCLIBC_HAS_GNU_GETOPT=y
UCLIBC_HAS_GETOPT_LONG=y
UCLIBC_HAS_GNU_GETSUBOPT=y
# UCLIBC_HAS_ARGP is not set

#
# Big and Tall
#
UCLIBC_HAS_REGEX=y
# was set in 1.0.22 UCLIBC_HAS_REGEX_OLD=y
UCLIBC_HAS_FNMATCH=y
# was set in 1.0.22 UCLIBC_HAS_FNMATCH_OLD=y
# UCLIBC_HAS_WORDEXP is not set
UCLIBC_HAS_NFTW=y
UCLIBC_HAS_FTW=y
UCLIBC_HAS_FTS=y
UCLIBC_HAS_GLOB=y
# UCLIBC_HAS_GNU_GLOB is not set

#
# Library Installation Options
#
RUNTIME_PREFIX="/"
DEVEL_PREFIX="/usr"
MULTILIB_DIR="lib"
HARDWIRED_ABSPATH=y

#
# Security options
#
# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
UCLIBC_BUILD_RELRO=y
# UCLIBC_BUILD_NOW is not set
UCLIBC_BUILD_NOEXECSTACK=y

#
# Development/debugging options
#
CROSS_COMPILER_PREFIX=""
UCLIBC_EXTRA_CFLAGS=""
# DODEBUG is not set
DOSTRIP=y
# DOASSERTS is not set
SUPPORT_LD_DEBUG=y
# SUPPORT_LD_DEBUG_EARLY is not set
# UCLIBC_MALLOC_DEBUGGING is not set
# UCLIBC_HAS_BACKTRACE is not set
WARNINGS="-Wall"
EXTRA_WARNINGS=y
20 changes: 14 additions & 6 deletions build-config/make/crosstool-ng.make
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#-------------------------------------------------------------------------------
#
# Copyright (C) 2020 Alex Doyle <[email protected]>
# Copyright (C) 2013,2014,2017 Curt Brune <[email protected]>
# Copyright (C) 2016 Pankaj Bansal <[email protected]>
#
Expand All @@ -10,15 +11,22 @@
# This is a makefile fragment that defines the build of crosstool-NG
#

# Default GCC version to build for the toolchain
GCC_VERSION ?= 6.3.0
# Default GCC version to build for the toolchain.
# Tip: Reference a Debian install for related component versions.
# To upgrade sha1 for new package:
# sha1sum ./gcc-8.3.0.tar.xz > ./upstream/gcc-8.3.0.tar.xz.sha1
# https://ftp.gnu.org/pub/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.xz
GCC_VERSION ?= 8.3.0

# https://uclibc-ng.org/
XTOOLS_LIBC ?= uClibc-ng
XTOOLS_LIBC_VERSION ?= 1.0.22
XTOOLS_LIBC_VERSION ?= 1.0.35

# http://crosstool-ng.github.io/
CROSSTOOL_NG_DESC = crosstool-NG
CROSSTOOL_NG_VERSION = 1.23.0
CROSSTOOL_NG_TARBALL = crosstool-ng-$(CROSSTOOL_NG_VERSION).tar.gz
CROSSTOOL_NG_URLS += $(ONIE_MIRROR) https://github.com/crosstool-ng/crosstool-ng/archive
CROSSTOOL_NG_VERSION = 1.24.0
CROSSTOOL_NG_TARBALL = crosstool-ng-$(CROSSTOOL_NG_VERSION).tar.xz
CROSSTOOL_NG_URLS += $(ONIE_MIRROR) http://crosstool-ng.org/download/crosstool-ng
CROSSTOOL_NG_BUILD_DIR = $(BUILDDIR)/crosstool-ng
CROSSTOOL_NG_STAMP_DIR = $(CROSSTOOL_NG_BUILD_DIR)/stamp
CROSSTOOL_NG_DIR = $(CROSSTOOL_NG_BUILD_DIR)/crosstool-ng-$(CROSSTOOL_NG_VERSION)
Expand Down
9 changes: 5 additions & 4 deletions build-config/make/efivar.make
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#-------------------------------------------------------------------------------
#
# Copyright (C) 2020 Alex Doyle <[email protected]>
# Copyright (C) 2015,2017 Curt Brune <[email protected]>
# Copyright (C) 2016 Pankaj Bansal <[email protected]>
#
Expand All @@ -10,9 +11,9 @@
# This is a makefile fragment that defines the build of efivar
#

EFIVAR_VERSION = 30
EFIVAR_VERSION = 37
EFIVAR_TARBALL = efivar-$(EFIVAR_VERSION).tar.bz2
EFIVAR_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/rhinstaller/efivar/releases/download/$(EFIVAR_VERSION)
EFIVAR_TARBALL_URLS += $(ONIE_MIRROR)https://github.com/rhboot/efivar/releases/download/${EFIVAR_VERSION}/${EFIVAR_TARBALL}
EFIVAR_BUILD_DIR = $(USER_BUILDDIR)/efivar
EFIVAR_DIR = $(EFIVAR_BUILD_DIR)/efivar-$(EFIVAR_VERSION)

Expand All @@ -34,10 +35,10 @@ PHONY += efivar efivar-download efivar-source efivar-patch \

EFIVAR_BINS = efivar
EFIVAR_LIBS = \
libefivar.so.1.30 \
libefivar.so.1.$(EFIVAR_VERSION) \
libefivar.so.1 \
libefivar.so \
libefiboot.so.1.30 \
libefiboot.so.1.$(EFIVAR_VERSION) \
libefiboot.so.1 \
libefiboot.so

Expand Down
5 changes: 4 additions & 1 deletion build-config/make/images.make
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#-------------------------------------------------------------------------------
#
# Copyright (C) 2020 Alex Doyle <[email protected]>
# Copyright (C) 2013,2014,2015,2016,2017 Curt Brune <[email protected]>
# Copyright (C) 2014,2015,2016,2017 david_yang <[email protected]>
# Copyright (C) 2014 Stephen Su <[email protected]>
Expand Down Expand Up @@ -184,6 +185,8 @@ ifeq ($(REQUIRE_CXX_LIBS),yes)
SYSROOT_LIBS += libstdc++.so.6.0.22
else ifeq ($(GCC_VERSION),4.9.2)
SYSROOT_LIBS += libstdc++.so.6.0.20
else ifeq ($(GCC_VERSION),8.3.0)
SYSROOT_LIBS += libstdc++.so.6.0.25
else
$(error C++ support: Unsupported GCC version: $(GCC_VERSION))
endif
Expand Down Expand Up @@ -216,7 +219,7 @@ $(SYSROOT_CHECK_STAMP): $(PACKAGES_INSTALL_STAMPS)
find $(DEV_SYSROOT)/lib64 $(DEV_SYSROOT)/lib -name $$file | xargs -i cp -av {} $(SYSROOTDIR)/lib/ || exit 1 ; \
else \
[ -r "$(DEV_SYSROOT)/lib/$$file" ] || { \
echo "ERROR: Missing SYSROOT_LIB: $$file" ; \
echo "ERROR: Missing SYSROOT_LIB: $$file under $(DEV_SYSROOT)/lib" ; \
exit 1; } ; \
find $(DEV_SYSROOT)/lib -name $$file | xargs -i cp -av {} $(SYSROOTDIR)/lib/ || exit 1 ; \
fi; \
Expand Down
19 changes: 16 additions & 3 deletions build-config/make/xtools.make
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#-------------------------------------------------------------------------------
#
# Copyright (C) 2020 Alex Doyle <[email protected]>
# Copyright (C) 2013,2014,2015,2017 Curt Brune <[email protected]>
# Copyright (C) 2016 Pankaj Bansal <[email protected]>
#
Expand Down Expand Up @@ -44,7 +45,7 @@ PHONY += xtools xtools-prep xtools-download xtools-config \
# List of common packages needed by crosstool-NG
CT_NG_COMPONENTS = \
autoconf-2.69.tar.xz \
automake-1.15.tar.xz \
automake-1.15.1.tar.xz \
duma_2_5_15.tar.gz \
gettext-0.19.8.1.tar.xz \
libelf-0.8.13.tar.gz \
Expand All @@ -55,7 +56,19 @@ CT_NG_COMPONENTS = \
make-4.2.1.tar.bz2 \
ncurses-6.0.tar.gz

ifeq ($(GCC_VERSION),6.3.0)
ifeq ($(GCC_VERSION),8.3.0)
CT_NG_COMPONENTS += \
binutils-2.28.1.tar.bz2 \
expat-2.2.6.tar.bz2 \
gcc-8.3.0.tar.xz \
gdb-7.12.1.tar.xz \
gmp-6.1.2.tar.xz \
isl-0.16.1.tar.xz \
mpc-1.0.3.tar.gz \
mpfr-3.1.6.tar.xz \
strace-4.26.tar.xz \
zlib-1.2.11.tar.xz
else ifeq ($(GCC_VERSION),6.3.0)
CT_NG_COMPONENTS += \
gcc-6.3.0.tar.bz2 \
binutils-2.28.tar.bz2 \
Expand Down Expand Up @@ -121,7 +134,7 @@ xtools-download-only: $(XTOOLS_BUILD_DIR)/.config $(CROSSTOOL_NG_BUILD_STAMP)
xtools-build: $(XTOOLS_BUILD_STAMP)
$(XTOOLS_BUILD_STAMP): $(XTOOLS_BUILD_DIR)/.config $(XTOOLS_DOWNLOAD_STAMP) $(CROSSTOOL_NG_BUILD_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Building xtools for $(XTOOLS_VERSION) ===="
$(Q) echo "==== Building xtools for $(XTOOLS_VERSION) in $(XTOOLS_BUILD_DIR) ===="
$(Q) cd $(XTOOLS_BUILD_DIR) && \
$(CROSSTOOL_NG_DIR)/ct-ng build || (rm $(XTOOLS_BUILD_DIR)/.config.2 && false)
$(Q) touch $@
Expand Down
Loading

0 comments on commit 252b2de

Please sign in to comment.