diff options
author | khronosschoty <khronosschoty@posteo.org> | 2017-11-16 02:23:40 +0000 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2017-11-18 12:40:28 +0700 |
commit | 6f184386f29057548fc71bac170e885e71defe4a (patch) | |
tree | 781e7dbee758f9014067351f8a81cb9887de3132 | |
parent | 2a57e2ce7dec54a5184691e4e00312191d93e0ac (diff) |
development/gcclegacy494: Patched for glibc-2.26 (-current).
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
4 files changed, 381 insertions, 59 deletions
diff --git a/development/gcclegacy494/942-asan-fix-missing-include-signal-h.patch b/development/gcclegacy494/942-asan-fix-missing-include-signal-h.patch new file mode 100644 index 000000000000..5f00c04d2ba2 --- /dev/null +++ b/development/gcclegacy494/942-asan-fix-missing-include-signal-h.patch @@ -0,0 +1,36 @@ +From 205aa8e97bab553e5e6fe45896325e97962de704 Mon Sep 17 00:00:00 2001 +From: Rolf Eike Beer <eb@emlix.com> +Date: Wed, 8 Feb 2017 11:42:52 +0100 +Subject: [PATCH] asan: fix missing include of signal.h + +This breaks when building gcc 4.9.4 / 5.4.0 with +target_platform=powerpc-unknown-linux-gnu with glibc 2.25: + +../../../../gcc-host/libsanitizer/asan/asan_linux.cc: In function 'bool __asan::AsanInterceptsSignal(int)': +../../../../gcc-host/libsanitizer/asan/asan_linux.cc:222:20: error: 'SIGSEGV' was not declared in this scope + return signum == SIGSEGV && common_flags()->handle_segv; + +This has been verified to apply to at least 4.9.4 and up to 5.4, +the code has been reworked for gcc 6. + +Resolves (Buildroot) Bug: https://bugs.busybox.net/show_bug.cgi?id=10061 + +Upstream: https://patchwork.ozlabs.org/patch/725596/ + +Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> +--- + libsanitizer/asan/asan_linux.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libsanitizer/asan/asan_linux.cc b/libsanitizer/asan/asan_linux.cc +index c504168..59087b9 100644 +--- a/libsanitizer/asan/asan_linux.cc ++++ b/libsanitizer/asan/asan_linux.cc +@@ -29,6 +29,7 @@ + #include <dlfcn.h> + #include <fcntl.h> + #include <pthread.h> ++#include <signal.h> + #include <stdio.h> + #include <unistd.h> + #include <unwind.h> diff --git a/development/gcclegacy494/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch b/development/gcclegacy494/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch new file mode 100644 index 000000000000..526346c6f853 --- /dev/null +++ b/development/gcclegacy494/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch @@ -0,0 +1,190 @@ +From b7e85069238c40eae54d0ca03ab6d5470d1815f9 Mon Sep 17 00:00:00 2001 +From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> +Date: Tue, 4 Jul 2017 10:25:10 +0000 +Subject: [PATCH] Use ucontext_t not struct ucontext in linux-unwind.h files. + +Current glibc no longer gives the ucontext_t type the tag struct +ucontext, to conform with POSIX namespace rules. This requires +various linux-unwind.h files in libgcc, that were previously using +struct ucontext, to be fixed to use ucontext_t instead. This is +similar to the removal of the struct siginfo tag from siginfo_t some +years ago. + +This patch changes those files to use ucontext_t instead. As the +standard name that should be unconditionally safe, so this is not +restricted to architectures supported by glibc, or conditioned on the +glibc version. + +Tested compilation together with current glibc with glibc's +build-many-glibcs.py. + + * config/aarch64/linux-unwind.h (aarch64_fallback_frame_state), + config/alpha/linux-unwind.h (alpha_fallback_frame_state), + config/bfin/linux-unwind.h (bfin_fallback_frame_state), + config/i386/linux-unwind.h (x86_64_fallback_frame_state, + x86_fallback_frame_state), config/m68k/linux-unwind.h (struct + uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext), + config/pa/linux-unwind.h (pa32_fallback_frame_state), + config/sh/linux-unwind.h (sh_fallback_frame_state), + config/tilepro/linux-unwind.h (tile_fallback_frame_state), + config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use + ucontext_t instead of struct ucontext. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@249958 138bc75d-0d04-0410-961f-82ee72b054a4 +[Romain backport from gcc-5-branch] +Signed-off-by: Romain Naour <romain.naour@gmail.com> +--- + libgcc/config/aarch64/linux-unwind.h | 2 +- + libgcc/config/alpha/linux-unwind.h | 2 +- + libgcc/config/bfin/linux-unwind.h | 2 +- + libgcc/config/i386/linux-unwind.h | 4 ++-- + libgcc/config/m68k/linux-unwind.h | 2 +- + libgcc/config/nios2/linux-unwind.h | 2 +- + libgcc/config/pa/linux-unwind.h | 2 +- + libgcc/config/sh/linux-unwind.h | 2 +- + libgcc/config/tilepro/linux-unwind.h | 2 +- + libgcc/config/xtensa/linux-unwind.h | 2 +- + 10 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h +index 6b5b3cd..d13dc34 100644 +--- a/libgcc/config/aarch64/linux-unwind.h ++++ b/libgcc/config/aarch64/linux-unwind.h +@@ -52,7 +52,7 @@ aarch64_fallback_frame_state (struct _Unwind_Context *context, + struct rt_sigframe + { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + }; + + struct rt_sigframe *rt_; +diff --git a/libgcc/config/alpha/linux-unwind.h b/libgcc/config/alpha/linux-unwind.h +index b5bfd1c..166d3d2 100644 +--- a/libgcc/config/alpha/linux-unwind.h ++++ b/libgcc/config/alpha/linux-unwind.h +@@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context, + { + struct rt_sigframe { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_ = context->cfa; + sc = &rt_->uc.uc_mcontext; + } +diff --git a/libgcc/config/bfin/linux-unwind.h b/libgcc/config/bfin/linux-unwind.h +index dc58f0a..8b94568 100644 +--- a/libgcc/config/bfin/linux-unwind.h ++++ b/libgcc/config/bfin/linux-unwind.h +@@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_Context *context, + void *puc; + char retcode[8]; + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_ = context->cfa; + + /* The void * cast is necessary to avoid an aliasing warning. +diff --git a/libgcc/config/i386/linux-unwind.h b/libgcc/config/i386/linux-unwind.h +index 7986928..a9d621c 100644 +--- a/libgcc/config/i386/linux-unwind.h ++++ b/libgcc/config/i386/linux-unwind.h +@@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context, + if (*(unsigned char *)(pc+0) == 0x48 + && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL) + { +- 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. */ +@@ -138,7 +138,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context, + siginfo_t *pinfo; + void *puc; + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_ = context->cfa; + /* The void * cast is necessary to avoid an aliasing warning. + The aliasing warning is correct, but should not be a problem +diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h +index 1ba2a0c4..d67767e 100644 +--- a/libgcc/config/m68k/linux-unwind.h ++++ b/libgcc/config/m68k/linux-unwind.h +@@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + /* <sys/ucontext.h> is unfortunately broken right now. */ + struct uw_ucontext { + unsigned long uc_flags; +- struct ucontext *uc_link; ++ ucontext_t *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + unsigned long uc_filler[80]; +diff --git a/libgcc/config/nios2/linux-unwind.h b/libgcc/config/nios2/linux-unwind.h +index ba4bd80..8978868 100644 +--- a/libgcc/config/nios2/linux-unwind.h ++++ b/libgcc/config/nios2/linux-unwind.h +@@ -38,7 +38,7 @@ struct nios2_mcontext { + + struct nios2_ucontext { + unsigned long uc_flags; +- struct ucontext *uc_link; ++ ucontext_t *uc_link; + stack_t uc_stack; + struct nios2_mcontext uc_mcontext; + sigset_t uc_sigmask; /* mask last for extensibility */ +diff --git a/libgcc/config/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h +index 4a3cfff..d2ac437 100644 +--- a/libgcc/config/pa/linux-unwind.h ++++ b/libgcc/config/pa/linux-unwind.h +@@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context, + struct sigcontext *sc; + struct rt_sigframe { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *frame; + + /* rt_sigreturn trampoline: +diff --git a/libgcc/config/sh/linux-unwind.h b/libgcc/config/sh/linux-unwind.h +index 4875706..671bde7 100644 +--- a/libgcc/config/sh/linux-unwind.h ++++ b/libgcc/config/sh/linux-unwind.h +@@ -180,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context, + { + struct rt_sigframe { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_ = context->cfa; + /* The void * cast is necessary to avoid an aliasing warning. + The aliasing warning is correct, but should not be a problem +diff --git a/libgcc/config/tilepro/linux-unwind.h b/libgcc/config/tilepro/linux-unwind.h +index 27481cf..c24d58c 100644 +--- a/libgcc/config/tilepro/linux-unwind.h ++++ b/libgcc/config/tilepro/linux-unwind.h +@@ -61,7 +61,7 @@ tile_fallback_frame_state (struct _Unwind_Context *context, + struct rt_sigframe { + unsigned char save_area[C_ABI_SAVE_AREA_SIZE]; + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_; + + /* Return if this is not a signal handler. */ +diff --git a/libgcc/config/xtensa/linux-unwind.h b/libgcc/config/xtensa/linux-unwind.h +index 6832d0b..cb15b4c 100644 +--- a/libgcc/config/xtensa/linux-unwind.h ++++ b/libgcc/config/xtensa/linux-unwind.h +@@ -63,7 +63,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context, + + struct rt_sigframe { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_; + + /* movi a2, __NR_rt_sigreturn; syscall */ +-- +2.9.5 + diff --git a/development/gcclegacy494/944-sanitizer-linux.patch b/development/gcclegacy494/944-sanitizer-linux.patch new file mode 100644 index 000000000000..caadf2de7be9 --- /dev/null +++ b/development/gcclegacy494/944-sanitizer-linux.patch @@ -0,0 +1,88 @@ +From f9a35ba5c150da2e381c4cab01f8f12bcd6af5d2 Mon Sep 17 00:00:00 2001 +From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> +Date: Mon, 17 Jul 2017 19:41:08 +0000 +Subject: [PATCH] Backported from mainline 2017-07-14 Jakub + Jelinek <jakub@redhat.com> + + PR sanitizer/81066 + * sanitizer_common/sanitizer_linux.h: Cherry-pick upstream r307969. + * sanitizer_common/sanitizer_linux.cc: Likewise. + * sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: Likewise. + * tsan/tsan_platform_linux.cc: Likewise. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250287 138bc75d-0d04-0410-961f-82ee72b054a4 +(cherry picked from commit 72edc2c02f8b4768ad660f46a1c7e2400c0a8e06) +[Romain backport to 4.9.4] +Signed-off-by: Romain Naour <romain.naour@gmail.com> +--- + libsanitizer/sanitizer_common/sanitizer_linux.cc | 3 +-- + libsanitizer/sanitizer_common/sanitizer_linux.h | 4 +--- + libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc | 2 +- + libsanitizer/tsan/tsan_platform_linux.cc | 2 +- + 4 files changed, 4 insertions(+), 7 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.cc b/libsanitizer/sanitizer_common/sanitizer_linux.cc +index 69c9c10..8e53673 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_linux.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_linux.cc +@@ -599,8 +599,7 @@ uptr internal_prctl(int option, uptr arg2, uptr arg3, uptr arg4, uptr arg5) { + return internal_syscall(__NR_prctl, option, arg2, arg3, arg4, arg5); + } + +-uptr internal_sigaltstack(const struct sigaltstack *ss, +- struct sigaltstack *oss) { ++uptr internal_sigaltstack(const void *ss, void *oss) { + return internal_syscall(__NR_sigaltstack, (uptr)ss, (uptr)oss); + } + +diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.h b/libsanitizer/sanitizer_common/sanitizer_linux.h +index 6422df1..8e111d1 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_linux.h ++++ b/libsanitizer/sanitizer_common/sanitizer_linux.h +@@ -18,7 +18,6 @@ + #include "sanitizer_platform_limits_posix.h" + + struct link_map; // Opaque type returned by dlopen(). +-struct sigaltstack; + + namespace __sanitizer { + // Dirent structure for getdents(). Note that this structure is different from +@@ -28,8 +27,7 @@ struct linux_dirent; + // Syscall wrappers. + uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count); + uptr internal_prctl(int option, uptr arg2, uptr arg3, uptr arg4, uptr arg5); +-uptr internal_sigaltstack(const struct sigaltstack* ss, +- struct sigaltstack* oss); ++uptr internal_sigaltstack(const void* ss, void* oss); + uptr internal_sigaction(int signum, const __sanitizer_kernel_sigaction_t *act, + __sanitizer_kernel_sigaction_t *oldact); + uptr internal_sigprocmask(int how, __sanitizer_kernel_sigset_t *set, +diff --git a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc +index 6ee63ec..50c21a3 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc +@@ -238,7 +238,7 @@ static int TracerThread(void* argument) { + + // Alternate stack for signal handling. + InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize); +- struct sigaltstack handler_stack; ++ stack_t handler_stack; + internal_memset(&handler_stack, 0, sizeof(handler_stack)); + handler_stack.ss_sp = handler_stack_memory.data(); + handler_stack.ss_size = kHandlerStackSize; +diff --git a/libsanitizer/tsan/tsan_platform_linux.cc b/libsanitizer/tsan/tsan_platform_linux.cc +index fe69430..49f5270 100644 +--- a/libsanitizer/tsan/tsan_platform_linux.cc ++++ b/libsanitizer/tsan/tsan_platform_linux.cc +@@ -351,7 +351,7 @@ bool IsGlobalVar(uptr addr) { + // closes within glibc. The code is a pure hack. + int ExtractResolvFDs(void *state, int *fds, int nfd) { + int cnt = 0; +- __res_state *statp = (__res_state*)state; ++ struct __res_state *statp = (struct __res_state*)state; + for (int i = 0; i < MAXNS && cnt < nfd; i++) { + if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1) + fds[cnt++] = statp->_u._ext.nssocks[i]; +-- +2.9.5 + diff --git a/development/gcclegacy494/gcclegacy494.SlackBuild b/development/gcclegacy494/gcclegacy494.SlackBuild index 30cf14416277..3e148854f43b 100644 --- a/development/gcclegacy494/gcclegacy494.SlackBuild +++ b/development/gcclegacy494/gcclegacy494.SlackBuild @@ -24,7 +24,7 @@ PRGNAM=gcclegacy494 VERSION=${VERSION:-4.9.4} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} TAG=${TAG:-_SBo} INSTLOC=${INSTLOC:-/opt/$PRGNAM} @@ -47,58 +47,54 @@ if [ "$ARCH" = "i386" ]; then LIBDIRSUFFIX="" LIB_ARCH=i386 elif [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" - LIBDIRSUFFIX="" - LIB_ARCH=i386 + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 elif [ "$ARCH" = "i586" ]; then - SLKCFLAGS="-O2 -march=i586 -mtune=i686" - LIBDIRSUFFIX="" - LIB_ARCH=i386 + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 elif [ "$ARCH" = "i686" ]; then - SLKCFLAGS="-O2 -march=i686" - LIBDIRSUFFIX="" - LIB_ARCH=i386 + SLKCFLAGS="-O2 -march=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 elif [ "$ARCH" = "s390" ]; then - SLKCFLAGS="-O2" - LIBDIRSUFFIX="" - LIB_ARCH=s390 + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + LIB_ARCH=s390 elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-O2 -fPIC" - LIBDIRSUFFIX="64" - LIB_ARCH=amd64 + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + LIB_ARCH=amd64 elif [ "$ARCH" = "armv7hl" ]; then - SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" - LIBDIRSUFFIX="" - LIB_ARCH=armv7hl + SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" + LIBDIRSUFFIX="" + LIB_ARCH=armv7hl else - SLKCFLAGS="-O2" - LIBDIRSUFFIX="" - LIB_ARCH=$ARCH + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + LIB_ARCH=$ARCH fi -mkdir -p $TMP - case "$ARCH" in arm*) TARGET=$ARCH-slackware-linux-gnueabi ;; *) TARGET=$ARCH-slackware-linux ;; esac -if [ "$ARCH" != "x86_64" ]; then - GCC_ARCHOPTS="--with-arch=$ARCH" -else +if [ "$ARCH" = "x86_64" ]; then GCC_ARCHOPTS="--disable-multilib" +else + GCC_ARCHOPTS="--with-arch=$ARCH" fi set -e -cd $TMP/ -rm -rf gcc-4.9.4/ -tar -xzf $CWD/gcc-4.9.4.tar.gz -cd gcc-4.9.4 - -# Do not run fixincludes -cp -v gcc/Makefile.in{,.orig} -sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf gcc-$VERSION +tar xvf $CWD/gcc-$VERSION.tar.gz +cd gcc-$VERSION tar xjf $CWD/mpfr-2.4.2.tar.bz2 ln -sf mpfr-2.4.2 mpfr @@ -109,23 +105,35 @@ ln -sf mpc-0.8.1 mpc tar xjf $CWD/isl-0.12.2.tar.bz2 ln -sf isl-0.12.2 isl tar xzf $CWD/cloog-0.18.1.tar.gz -ln -sf cloog-0.18.1 cloog +ln -sf cloog-0.18.1 cloog chown -R root:root . find -L . \ -\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ -\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Do not run fixincludes +cp -v gcc/Makefile.in{,.orig} +sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in + +# Apply patches if we are compiling against glibc 2.26 +if [ $(ldd --version | head -1) = 'ldd (GNU libc) 2.26' ]; then + patch -p1 -i "$CWD/942-asan-fix-missing-include-signal-h.patch" + patch -p1 -i "$CWD/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch" + patch -p1 -i "$CWD/944-sanitizer-linux.patch" + export glibcxx_cv_c99_math=yes +fi + rm -rf $TMP/objdir mkdir $TMP/objdir cd $TMP/objdir -rm -rf $PKG -mkdir -p $PKG -CFLAGS="$SLKCFLAGS" -CXXFLAGS="$SLKCFLAGS" - $PWD/../gcc-4.9.4/configure --prefix=$INSTLOC \ - --program-suffix=-4.9.4 \ + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +../gcc-$VERSION/configure --prefix=$INSTLOC \ + --program-suffix=-$VERSION \ --enable-languages=c,c++ \ --with-system-zlib \ --libdir=$INSTLOC/lib$LIBDIRSUFFIX \ @@ -145,25 +153,25 @@ make DESTDIR=$PKG install-strip # Thank you to 'idlemoor' mkdir -p $PKG/usr/bin -cd /$PKG/usr/bin +cd $PKG/usr/bin for COMPILER in gcc g++ ; do - sed \ - -e "s~%LIBDIRSUFFIX%~$LIBDIRSUFFIX~" \ - -e "s~%COMPILER%~$COMPILER~" \ - -e "s~%INSTLOC%~$INSTLOC~" \ - < $CWD/wrapper.sh \ - > $PKG/usr/bin/$ARCH-slackware-linux-$COMPILER-4.9.4 - chmod ugo+x $PKG/usr/bin/$ARCH-slackware-linux-$COMPILER-4.9.4 + sed \ + -e "s~%LIBDIRSUFFIX%~$LIBDIRSUFFIX~" \ + -e "s~%COMPILER%~$COMPILER~" \ + -e "s~%INSTLOC%~$INSTLOC~" \ + < $CWD/wrapper.sh \ + > $PKG/usr/bin/$ARCH-slackware-linux-$COMPILER-$VERSION + chmod ugo+x $PKG/usr/bin/$ARCH-slackware-linux-$COMPILER-$VERSION done -ln -s $ARCH-slackware-linux-gcc-4.9.4 $PKG/usr/bin/gcc-4.9.4 -ln -s $ARCH-slackware-linux-g++-4.9.4 $PKG/usr/bin/g++-gcc-4.9.4 +ln -s $ARCH-slackware-linux-gcc-$VERSION $PKG/usr/bin/gcc-$VERSION +ln -s $ARCH-slackware-linux-g++-$VERSION $PKG/usr/bin/g++-gcc-$VERSION mv -f $PKG$INSTLOC/share/man $PKG/usr/man cd $PKG/usr/man/man7 # we do not need these; according to "diff" there is no difference between these files # and the ones Slackware ships with; except this man page named "gfdl.7"; which shall be -# saved; and renamed so that it does not conflict with Slackware's. -find . ! -name 'gfdl.7' -exec rm -rf {} \; +# saved; and renamed so that it does not conflict with Slackware's. +find . ! -name 'gfdl.7' -exec rm -rf {} \; mv gfdl.7 gfdl494.7 find $PKG/usr/man -type f -exec gzip -9 {} \; for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done @@ -172,7 +180,7 @@ mv -f $PKG$INSTLOC/share/info $PKG/usr/info rm -f $PKG/usr/info/dir cd $PKG/usr/info #rename the .info files so they do not conflict with Slackware's own .info files. -for info in *.info; do mv "$info" "${info%.*}-4.9.4.info"; done +for info in *.info; do mv "$info" "${info%.*}-$VERSION.info"; done gzip -9 $PKG/usr/info/*.info* mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION |