Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 105 lines (83 sloc) 2.83 KB
#! /bin/bash
# Note: The test suite run address sanitizer tests. In the current mariux64 environment
# this requires
#
# sudo sysctl vm.overcommit_memory=0
PKG=gcc
VERSION=4.5.1
BUILD=0
URL=http://ftp.gnu.org/gnu/gcc/gcc-${VERSION}/gcc-${VERSION}.tar.gz
. /pkg/texinfo-4.13a-0/profile
PREFIX=/pkg/$PKG-$VERSION-$BUILD
if [ -n "$TESTING" ]; then PREFIX=/dev/shm/$PKG-$VERSION-$BUILD ; fi
set -xe
umask 022
BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.build.tmp
test -d $BUILD_TMPDIR && ( chmod -R u+rwx $BUILD_TMPDIR || true ; rm -rf $BUILD_TMPDIR )
mkdir -p $BUILD_TMPDIR/home
export TMPDIR=$BUILD_TMPDIR
export HOME=$BUILD_TMPDIR/home
exec </dev/null
mkdir -p $PREFIX
cat >$PREFIX/profile <<-EOF
PATH=$PREFIX/bin:\$PATH
if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} ; fi
EOF
. $PREFIX/profile
export MAKEFLAGS="-j $(nproc)"
BUILDDIR=$PREFIX/build
mkdir -p $BUILDDIR
cd $BUILDDIR
test -e gcc-${VERSION}.tar.gz || wget $URL
test -d gcc-$VERSION || tar xvf gcc-${VERSION}.tar.gz
cd gcc-$VERSION
patch -N -p 1 <<__EOF__ || true
From 146285bd5724fe602df2ea2d171dd3f0cfc425a8 Mon Sep 17 00:00:00 2001
From: Donald Buczek <buczek@molgen.mpg.de>
Date: Thu, 23 Apr 2020 17:19:31 +0200
Subject: [PATCH] i386/linux-unwind.h: Remove struct ucontext
With glibc 2.26, the "struct ucontext" definition was removed [1].
Replace with ucontext_t so we can compile with glibc >=2.26.
[1]: https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27struct_ucontext.27
---
gcc/config/i386/linux-unwind.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
index 36ee370..061921f 100644
--- a/gcc/config/i386/linux-unwind.h
+++ b/gcc/config/i386/linux-unwind.h
@@ -47,7 +47,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context,
if (*(unsigned char *)(pc+0) == 0x48
&& *(unsigned long *)(pc+1) == 0x050f0000000fc0c7)
{
- struct ucontext *uc_ = context->cfa;
+ ucontext_t *uc_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
The aliasing warning is correct, but should not be a problem
because it does not alias anything. */
--
2.26.2
__EOF__
mkdir -p objdir
cd objdir
$BUILDDIR/gcc-$VERSION/configure \
--prefix=$PREFIX \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-clocale=gnu \
--enable-languages=c \
--disable-multilib \
--with-system-zlib \
--with-diagnostics-color=auto-if-env \
--disable-libmudflap
make
(make -k check 2>&1 || true) | tee check.log
MAKEFLAGS= make install
cd $PREFIX
mkdir -vp lib
ln -sfv ${PREFIX}/bin/cpp lib/
ln -sfv gcc bin/cc
install -v -dm755 lib/bfd-plugins
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/$VERSION/liblto_plugin.so lib/bfd-plugins/
exit