Skip to content

Commit

Permalink
x86_64:upgrade toolchain to gcc-6.3.0 with uClibc-ng-1.0.22
Browse files Browse the repository at this point in the history
For x86_64, move the toolchain forward to gcc-6.3.0 and
uClibc-ng-1.0.22.  To get there upgrade crosstool-NG to version
1.23.0.

These changes involve:

- using the updated crosstool-NG
- migrating the old x86_64 crosstool config
- migrating the old uClibc-0.9.33.2 config to uClibc-ng-1.0.22
- adding the new toolchain tarballs to the OCP mirror
- adding the new sha1s for the toolchain tarballs

These changes were tested using the kvm_x86_64 virtual machine,
running a 4.9.33 kernel.

Signed-off-by: Curt Brune <[email protected]>
  • Loading branch information
Curt Brune committed Jul 5, 2017
1 parent 77483d4 commit 4b887c2
Show file tree
Hide file tree
Showing 42 changed files with 1,039 additions and 2,478 deletions.

Large diffs are not rendered by default.

243 changes: 243 additions & 0 deletions build-config/conf/uclibc/1.0.22/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.22 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
# 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 is not set
# 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
# 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
UCLIBC_HAS_REGEX_OLD=y
UCLIBC_HAS_FNMATCH=y
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
23 changes: 14 additions & 9 deletions build-config/make/crosstool-ng.make
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#-------------------------------------------------------------------------------
#
# Copyright (C) 2013-2014 Curt Brune <[email protected]>
# Copyright (C) 2013,2014,2017 Curt Brune <[email protected]>
# Copyright (C) 2016 Pankaj Bansal <[email protected]>
#
# SPDX-License-Identifier: GPL-2.0
Expand All @@ -11,20 +11,21 @@
#

# Default GCC version to build for the toolchain
GCC_VERSION ?= 4.9.2
XTOOLS_LIBC ?= uClibc
XTOOLS_LIBC_VERSION ?= 0.9.33.2
GCC_VERSION ?= 6.3.0
XTOOLS_LIBC ?= uClibc-ng
XTOOLS_LIBC_VERSION ?= 1.0.22

CROSSTOOL_NG_DESC = crosstool-NG
CROSSTOOL_NG_COMMIT = 11cb2ddd43fd1ff493f4b7cd63f1cf654294165f
CROSSTOOL_NG_TARBALL = $(CROSSTOOL_NG_COMMIT).tar.gz
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_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_COMMIT)
CROSSTOOL_NG_DIR = $(CROSSTOOL_NG_BUILD_DIR)/crosstool-ng-$(CROSSTOOL_NG_VERSION)

CROSSTOOL_NG_SRCPATCHDIR = $(PATCHDIR)/crosstool-NG
CROSSTOOL_NG_DOWNLOAD_STAMP = $(DOWNLOADDIR)/crosstool-ng-$(CROSSTOOL_NG_COMMIT)-download
CROSSTOOL_NG_LOCAL_PATCHDIR = $(CROSSTOOL_NG_SRCPATCHDIR)/local
CROSSTOOL_NG_DOWNLOAD_STAMP = $(DOWNLOADDIR)/crosstool-ng-$(CROSSTOOL_NG_VERSION)-download
CROSSTOOL_NG_SOURCE_STAMP = $(CROSSTOOL_NG_STAMP_DIR)/crosstool-ng-source
CROSSTOOL_NG_PATCH_STAMP = $(CROSSTOOL_NG_STAMP_DIR)/crosstool-ng-patch
CROSSTOOL_NG_CONFIGURE_STAMP = $(CROSSTOOL_NG_STAMP_DIR)/crosstool-ng-configure
Expand All @@ -40,6 +41,7 @@ export CROSSTOOL_ONIE_MIRROR
export XTOOLS_LIBC_VERSION
export XTOOLS_LIBC
export GCC_VERSION
export CROSSTOOL_NG_LOCAL_PATCHDIR

PHONY += crosstool-ng crosstool-ng-download crosstool-ng-source crosstool-ng-patch \
crosstool-ng-configure crosstool-ng-build crosstool-ng-clean \
Expand All @@ -62,6 +64,9 @@ $(CROSSTOOL_NG_SOURCE_STAMP): $(CROSSTOOL_NG_DOWNLOAD_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Extracting upstream $(CROSSTOOL_NG_DESC) ===="
$(Q) $(SCRIPTDIR)/extract-package $(CROSSTOOL_NG_BUILD_DIR) $(DOWNLOADDIR)/$(CROSSTOOL_NG_TARBALL)
$(Q) if [ -d "$(CROSSTOOL_NG_BUILD_DIR)/crosstool-ng-crosstool-ng-$(CROSSTOOL_NG_VERSION)" ] ; then \
mv "$(CROSSTOOL_NG_BUILD_DIR)/crosstool-ng-crosstool-ng-$(CROSSTOOL_NG_VERSION)" $(CROSSTOOL_NG_DIR) ; \
fi
$(Q) mkdir -p $(CROSSTOOL_NG_STAMP_DIR)
$(Q) touch $@

Expand All @@ -86,7 +91,7 @@ $(CROSSTOOL_NG_CONFIGURE_STAMP): $(CROSSTOOL_NG_PATCH_STAMP)
crosstool-ng-build: $(CROSSTOOL_NG_BUILD_STAMP)
$(CROSSTOOL_NG_BUILD_STAMP): $(CROSSTOOL_NG_CONFIGURE_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Building crosstool-ng-$(CROSSTOOL_NG_COMMIT) ===="
$(Q) echo "==== Building crosstool-ng-$(CROSSTOOL_NG_VERSION) ===="
$(Q) $(MAKE) -C $(CROSSTOOL_NG_DIR) MAKELEVEL=0
$(Q) touch $@

Expand Down
13 changes: 10 additions & 3 deletions build-config/make/images.make
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,13 @@ CHECKDIR = $(CHECKROOT)/checkdir
CHECKFILES = $(CHECKROOT)/checkfiles.txt
SYSFILES = $(CHECKROOT)/sysfiles.txt

ifeq ($(XTOOLS_LIBC),uClibc)
SYSROOT_LIBS = ld$(CLIB64)-uClibc.so.0 ld$(CLIB64)-uClibc-$(XTOOLS_LIBC_VERSION).so \
ifeq ($(XTOOLS_LIBC),uClibc-ng)
SYSROOT_LIBS = ld$(CLIB64)-uClibc.so.0 ld$(CLIB64)-uClibc-$(XTOOLS_LIBC_VERSION).so \
ld$(CLIB64)-uClibc.so.1 \
libc.so.0 libuClibc-$(XTOOLS_LIBC_VERSION).so \
libgcc_s.so.1 libgcc_s.so
else ifeq ($(XTOOLS_LIBC),uClibc)
SYSROOT_LIBS = ld$(CLIB64)-uClibc.so.0 ld$(CLIB64)-uClibc-$(XTOOLS_LIBC_VERSION).so \
libm.so.0 libm-$(XTOOLS_LIBC_VERSION).so \
libgcc_s.so.1 libgcc_s.so \
libc.so.0 libuClibc-$(XTOOLS_LIBC_VERSION).so \
Expand Down Expand Up @@ -166,7 +171,9 @@ endif

ifeq ($(REQUIRE_CXX_LIBS),yes)
SYSROOT_LIBS += libstdc++.so libstdc++.so.6
ifeq ($(GCC_VERSION),4.9.2)
ifeq ($(GCC_VERSION),6.3.0)
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),4.7.3)
SYSROOT_LIBS += libstdc++.so.6.0.17
Expand Down
13 changes: 10 additions & 3 deletions build-config/make/uclibc-download.make
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#-------------------------------------------------------------------------------
#
# Copyright (C) 2013-2014 Curt Brune <[email protected]>
# Copyright (C) 2013,2014,2017 Curt Brune <[email protected]>
# Copyright (C) 2016 Pankaj Bansal <[email protected]>
#
# SPDX-License-Identifier: GPL-2.0
Expand All @@ -10,8 +10,15 @@
# This is a makefile fragment that defines the download of uClibc
#

UCLIBC_TARBALL = uClibc-$(XTOOLS_LIBC_VERSION).tar.xz
UCLIBC_TARBALL_URLS += $(ONIE_MIRROR) http://www.uclibc.org/downloads
UCLIBC_MAJOR_VERSION = $(word 1, $(subst ., ,$(XTOOLS_LIBC_VERSION)))
ifeq ($(UCLIBC_MAJOR_VERSION),1)
# From version 1.x.y.z onward uClibc is Uclibc-ng
UCLIBC_TARBALL = uClibc-ng-$(XTOOLS_LIBC_VERSION).tar.xz
UCLIBC_TARBALL_URLS += $(ONIE_MIRROR) http://downloads.uclibc-ng.org/releases/$(XTOOLS_LIBC_VERSION)
else
UCLIBC_TARBALL = uClibc-$(XTOOLS_LIBC_VERSION).tar.xz
UCLIBC_TARBALL_URLS += $(ONIE_MIRROR) http://www.uclibc.org/downloads
endif
UCLIBC_CONFIG = $(realpath conf)/uclibc/$(XTOOLS_LIBC_VERSION)/uclibc.$(ONIE_ARCH).config

UCLIBC_DOWNLOAD_STAMP = $(DOWNLOADDIR)/uclibc-$(XTOOLS_LIBC_VERSION)-download
Expand Down
Loading

0 comments on commit 4b887c2

Please sign in to comment.