gcc6: initial import

This commit is contained in:
Danny Rawlins 2021-02-03 19:47:17 +11:00
parent ae0967749a
commit fd8a6be9f6
6 changed files with 1599 additions and 0 deletions

1430
gcc6/.footprint Normal file

File diff suppressed because it is too large Load Diff

4
gcc6/.md5sum Normal file
View File

@ -0,0 +1,4 @@
61a057afa31006764b957a483ba90b9d gcc-4.7.3-multilib-dirs.patch
edaeff1cc020b16a0c19a6d5e80dc2fd gcc-6.5.0.tar.xz
7c9128522053af79791bcfdd55834c2a gcc-nocheck-fixincludes.patch
b685d5d712adc38129cbe4fd426ed703 libsanitizer.patch

65
gcc6/Pkgfile Normal file
View File

@ -0,0 +1,65 @@
# Description: The GNU Compiler Collection, Version 6
# URL: http://gcc.gnu.org
# Maintainer: John Vogel, jvogel4 at stny dot rr dot com
# Depends on: zlib libmpc
name=gcc6
version=6.5.0
release=1
source=(https://gcc.gnu.org/pub/gcc/releases/gcc-$version/gcc-$version.tar.xz
gcc-nocheck-fixincludes.patch gcc-4.7.3-multilib-dirs.patch
libsanitizer.patch)
build() {
patch -d gcc-$version -p1 -i $SRC/gcc-nocheck-fixincludes.patch
patch -d gcc-$version -p1 -i $SRC/gcc-4.7.3-multilib-dirs.patch
patch -d gcc-$version -p2 -i $SRC/libsanitizer.patch
# Do not run fixincludes
#sed -i 's@\./fixinc\.sh@-c true@' gcc-$version/gcc/Makefile.in
#export LD_PRELOAD=/usr/lib/libstdc++.so
export CFLAGS="-O2 -march=x86-64"
export CXXFLAGS="${CFLAGS}"
mkdir build
cd build
../gcc-$version/configure \
--prefix=/usr \
--libexecdir=/usr/lib \
--enable-bootstrap \
--enable-version-specific-runtime-libs \
--enable-languages=c,c++,objc \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-clocale=gnu \
--enable-shared \
--disable-nls \
--with-x=no \
--with-system-zlib \
--disable-multilib \
--enable-default-pie \
--enable-default-ssp \
--with-pkgversion="CRUX-x86_64" \
--program-suffix="-${version%%.*}"
make bootstrap
make -j1 DESTDIR=$PKG install
target_alias=$(sed -n -e 's/^target=\(.*\)$/\1/p' Makefile)
mv $PKG/usr/lib/libcc1.* $PKG/usr/lib/gcc/$target_alias/$version
mv $PKG/usr/lib/gcc/$target_alias/$version/include-fixed/{limits.h,syslimits.h} \
$PKG/usr/lib/gcc/$target_alias/$version/include/
mv $PKG/usr/lib/gcc/$target_alias/lib/libgcc_s.so* \
$PKG/usr/lib/gcc/$target_alias/$version/
rm -r $PKG/usr/lib/gcc/$target_alias/lib
rm -r $PKG/usr/share/{info,gcc-$version}
rm -r $PKG/usr/bin/$target_alias-*
rm -r $PKG/usr/lib/gcc/$target_alias/$version/{install-tools,include-fixed}
rm -r $PKG/usr/share/man/man7
sed -i "s|-L$SRC[^ ]* ||g" \
$PKG/usr/lib/gcc/x86_64-pc-linux-gnu/$version/{libstdc++.la,libsupc++.la}
}

View File

@ -0,0 +1,23 @@
diff -Nru gcc-4.7.3.orig/gcc/config/i386/linux64.h gcc-4.7.3/gcc/config/i386/linux64.h
--- gcc-4.7.3.orig/gcc/config/i386/linux64.h 2013-04-13 18:33:41.015109554 +0200
+++ gcc-4.7.3/gcc/config/i386/linux64.h 2013-04-13 18:34:01.147713013 +0200
@@ -28,6 +28,6 @@
#define GNU_USER_LINK_EMULATION64 "elf_x86_64"
#define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
diff -Nru gcc-4.7.3.orig/gcc/config/i386/t-linux64 gcc-4.7.3/gcc/config/i386/t-linux64
--- gcc-4.7.3.orig/gcc/config/i386/t-linux64 2013-04-13 18:33:41.015109554 +0200
+++ gcc-4.7.3/gcc/config/i386/t-linux64 2013-04-13 18:39:13.269752565 +0200
@@ -34,6 +34,6 @@
comma=,
MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
+MULTILIB_OSDIRNAMES = m64=../lib$(call if_multiarch,:x86_64-linux-gnu)
MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)

View File

@ -0,0 +1,14 @@
diff -Nru gcc-4.7.3.orig/fixincludes/Makefile.in gcc-4.7.3/fixincludes/Makefile.in
--- gcc-4.7.3.orig/fixincludes/Makefile.in 2013-04-13 18:33:41.098439867 +0200
+++ gcc-4.7.3/fixincludes/Makefile.in 2013-04-13 18:41:29.354868695 +0200
@@ -173,9 +173,7 @@
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
check : all
- autogen -T $(srcdir)/check.tpl $(srcdir)/inclhack.def
- $(SHELL) ./check.sh $(srcdir)/tests/base
- @rm -f ./check.sh
+ echo "No check here.."
install : all
-rm -rf $(DESTDIR)$(itoolsdir)

63
gcc6/libsanitizer.patch Normal file
View File

@ -0,0 +1,63 @@
diff -aur src.pristine/gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc src.new/gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
--- src.pristine/gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2020-02-26 21:58:22.465728543 -0500
+++ src.new/gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2020-02-26 22:17:14.997803617 -0500
@@ -1130,8 +1130,9 @@
#ifndef __GLIBC_PREREQ
#define __GLIBC_PREREQ(x, y) 0
#endif
-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
+//#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
+///* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
#endif
diff -aur src.pristine/gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h src.new/gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
--- src.pristine/gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2020-02-26 21:58:22.459061884 -0500
+++ src.new/gcc-6.5.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2020-02-26 22:16:16.651201784 -0500
@@ -200,27 +200,28 @@
unsigned __seq;
u64 __unused1;
u64 __unused2;
-#elif defined(__mips__) || defined(__aarch64__)
- unsigned int mode;
- unsigned short __seq;
- unsigned short __pad1;
- unsigned long __unused1;
- unsigned long __unused2;
+ //#elif defined(__mips__) || defined(__aarch64__)
+ // unsigned int mode;
+ //unsigned short __seq;
+ //unsigned short __pad1;
+ //unsigned long __unused1;
+ //unsigned long __unused2;
#elif defined(__sparc__)
-# if defined(__arch64__)
+ //# if defined(__arch64__)
unsigned mode;
- unsigned short __pad1;
-# else
- unsigned short __pad1;
- unsigned short mode;
- unsigned short __pad2;
-# endif
+ //unsigned short __pad1;
+ //# else
+ //unsigned short __pad1;
+ //unsigned short mode;
+ unsigned short __pad2;
+ //# endif
unsigned short __seq;
unsigned long long __unused1;
unsigned long long __unused2;
#else
- unsigned short mode;
- unsigned short __pad1;
+ //unsigned short mode;
+ //unsigned short __pad1;
+ unsigned int mode;
unsigned short __seq;
unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)
Only in src.new/gcc-6.5.0/libsanitizer/sanitizer_common: sanitizer_platform_limits_posix.h~