summaryrefslogtreecommitdiffstats
path: root/development/avr-gcc
diff options
context:
space:
mode:
Diffstat (limited to 'development/avr-gcc')
-rw-r--r--development/avr-gcc/Revert-eeb6872bf.patch82
-rw-r--r--development/avr-gcc/avr-gcc.SlackBuild14
-rw-r--r--development/avr-gcc/avr-gcc.info6
3 files changed, 95 insertions, 7 deletions
diff --git a/development/avr-gcc/Revert-eeb6872bf.patch b/development/avr-gcc/Revert-eeb6872bf.patch
new file mode 100644
index 0000000000..1688c149a8
--- /dev/null
+++ b/development/avr-gcc/Revert-eeb6872bf.patch
@@ -0,0 +1,82 @@
+commit 43d83a70267a9e5c456d28de8e7348820446b712
+Author: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+Date: Tue May 16 07:50:42 2017 +0200
+
+ Revert "Prevent LTO wrappers to process a recursive execution"
+
+ This reverts commit eeb6872bfdfd1e71b27de6f62a5f5c08a2efb015.
+
+diff --git a/gcc/file-find.c b/gcc/file-find.c
+index b072a4993d76..b5a1fe8494e8 100644
+--- a/gcc/file-find.c
++++ b/gcc/file-find.c
+@@ -208,38 +208,3 @@ prefix_from_string (const char *p, struct path_prefix *pprefix)
+ }
+ free (nstore);
+ }
+-
+-void
+-remove_prefix (const char *prefix, struct path_prefix *pprefix)
+-{
+- struct prefix_list *remove, **prev, **remove_prev = NULL;
+- int max_len = 0;
+-
+- if (pprefix->plist)
+- {
+- prev = &pprefix->plist;
+- for (struct prefix_list *pl = pprefix->plist; pl->next; pl = pl->next)
+- {
+- if (strcmp (prefix, pl->prefix) == 0)
+- {
+- remove = pl;
+- remove_prev = prev;
+- continue;
+- }
+-
+- int l = strlen (pl->prefix);
+- if (l > max_len)
+- max_len = l;
+-
+- prev = &pl;
+- }
+-
+- if (remove_prev)
+- {
+- *remove_prev = remove->next;
+- free (remove);
+- }
+-
+- pprefix->max_len = max_len;
+- }
+-}
+diff --git a/gcc/file-find.h b/gcc/file-find.h
+index 8f49a3af273e..407feba26e74 100644
+--- a/gcc/file-find.h
++++ b/gcc/file-find.h
+@@ -41,7 +41,6 @@ extern void find_file_set_debug (bool);
+ extern char *find_a_file (struct path_prefix *, const char *, int);
+ extern void add_prefix (struct path_prefix *, const char *);
+ extern void add_prefix_begin (struct path_prefix *, const char *);
+-extern void remove_prefix (const char *prefix, struct path_prefix *);
+ extern void prefix_from_env (const char *, struct path_prefix *);
+ extern void prefix_from_string (const char *, struct path_prefix *);
+
+diff --git a/gcc/gcc-ar.c b/gcc/gcc-ar.c
+index 78d2fc1ad306..d5d80e042e5a 100644
+--- a/gcc/gcc-ar.c
++++ b/gcc/gcc-ar.c
+@@ -194,14 +194,6 @@ main (int ac, char **av)
+ #ifdef CROSS_DIRECTORY_STRUCTURE
+ real_exe_name = concat (target_machine, "-", PERSONALITY, NULL);
+ #endif
+- /* Do not search original location in the same folder. */
+- char *exe_folder = lrealpath (av[0]);
+- exe_folder[strlen (exe_folder) - strlen (lbasename (exe_folder))] = '\0';
+- char *location = concat (exe_folder, PERSONALITY, NULL);
+-
+- if (access (location, X_OK) == 0)
+- remove_prefix (exe_folder, &path);
+-
+ exe_name = find_a_file (&path, real_exe_name, X_OK);
+ if (!exe_name)
+ {
diff --git a/development/avr-gcc/avr-gcc.SlackBuild b/development/avr-gcc/avr-gcc.SlackBuild
index a91986fe8c..ab3f811380 100644
--- a/development/avr-gcc/avr-gcc.SlackBuild
+++ b/development/avr-gcc/avr-gcc.SlackBuild
@@ -8,7 +8,7 @@
# This file is placed in the public domain.
PRGNAM=avr-gcc
-VERSION=${VERSION:-4.9.2}
+VERSION=${VERSION:-7.1.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -45,9 +45,8 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf gcc-$VERSION avr-gcc-build-$VERSION
-tar xvf $CWD/gcc-$VERSION.tar.bz2 || exit 1
-mkdir avr-gcc-build-$VERSION
-cd avr-gcc-build-$VERSION || exit 1
+tar xvf $CWD/gcc-$VERSION.tar.bz2
+cd gcc-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -55,6 +54,12 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717
+patch -p1 < $CWD/Revert-eeb6872bf.patch
+
+mkdir ../avr-gcc-build-$VERSION
+cd ../avr-gcc-build-$VERSION
+
CFLAGS_FOR_BUILD="$SLKCFLAGS" \
CXXFLAGS_FOR_BUILD="$SLKCFLAGS" \
../gcc-$VERSION/configure \
@@ -99,6 +104,7 @@ make install DESTDIR=$PKG || exit 1
# Remove useless stuff
rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/libiberty.a
+rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/libcc1.*
rm -rf $PKG/usr/info
rm -rf $PKG/usr/include
rm -rf $PKG/usr/share
diff --git a/development/avr-gcc/avr-gcc.info b/development/avr-gcc/avr-gcc.info
index 6bd3a9b64d..4eda349091 100644
--- a/development/avr-gcc/avr-gcc.info
+++ b/development/avr-gcc/avr-gcc.info
@@ -1,8 +1,8 @@
PRGNAM="avr-gcc"
-VERSION="4.9.2"
+VERSION="7.1.0"
HOMEPAGE="http://www.gnu.org/software/gcc/"
-DOWNLOAD="ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2"
-MD5SUM="4df8ee253b7f3863ad0b86359cd39c43"
+DOWNLOAD="ftp://ftp.gnu.org/pub/gnu/gcc/gcc-7.1.0/gcc-7.1.0.tar.bz2"
+MD5SUM="6bf56a2bca9dac9dbbf8e8d1036964a8"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="avr-binutils"