gcc: port missing patches from 4.6 to 4.8
[openwrt/svn-archive/archive.git] / toolchain / gcc / patches / 4.7-linaro / 200-musl.patch
index 491f8c85f363f29ad4bf435cd933d05d7cb01e18..97355507cdbc14b03046ba9852f299306bd558ad 100644 (file)
@@ -1,7 +1,6 @@
-diff --git a/gcc/config.gcc b/gcc/config.gcc
 --- a/gcc/config.gcc
 +++ b/gcc/config.gcc
-@@ -522,7 +522,7 @@
+@@ -529,7 +529,7 @@ case ${target} in
  esac
  
  # Common C libraries.
@@ -10,7 +9,7 @@ diff --git a/gcc/config.gcc b/gcc/config.gcc
  
  # Common parts for widely ported systems.
  case ${target} in
-@@ -625,6 +625,9 @@
+@@ -632,6 +632,9 @@ case ${target} in
      *-*-*uclibc*)
        tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
        ;;
@@ -20,20 +19,19 @@ diff --git a/gcc/config.gcc b/gcc/config.gcc
      *)
        tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
        ;;
-@@ -1722,6 +1725,7 @@
+@@ -1755,6 +1758,7 @@ microblaze*-linux*)
        tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
        c_target_objs="${c_target_objs} microblaze-c.o"
        cxx_target_objs="${cxx_target_objs} microblaze-c.o"
 +        tmake_file="${tmake_file} microblaze/t-microblaze"
        ;;
- microblaze*-*-*)
-         tm_file="${tm_file} dbxelf.h"
-diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
+ microblaze*-*-rtems*)
+       tm_file="${tm_file} dbxelf.h"
 --- a/gcc/config/arm/linux-eabi.h
 +++ b/gcc/config/arm/linux-eabi.h
-@@ -64,6 +64,10 @@
- #undef  GLIBC_DYNAMIC_LINKER
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
+@@ -78,6 +78,10 @@
+     %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
    %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
  
 +/* musl has no "classic" (i.e. broken) mode */
 +#undef  MUSL_DYNAMIC_LINKER
@@ -42,18 +40,16 @@ diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
  /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
     use the GNU/Linux version, not the generic BPABI version.  */
  #undef  LINK_SPEC
-diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
 --- a/gcc/config/i386/linux.h
 +++ b/gcc/config/i386/linux.h
-@@ -22,3 +22,4 @@
+@@ -22,3 +22,4 @@ along with GCC; see the file COPYING3.
  
  #define GNU_USER_LINK_EMULATION "elf_i386"
  #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 +#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
-diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
 --- a/gcc/config/i386/linux64.h
 +++ b/gcc/config/i386/linux64.h
-@@ -31,3 +31,7 @@
+@@ -31,3 +31,7 @@ see the files COPYING3 and COPYING.RUNTI
  #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
  #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
  #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
@@ -61,10 +57,9 @@ diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
 +#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
 +#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
 +#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
 --- a/gcc/config/linux.h
 +++ b/gcc/config/linux.h
-@@ -33,10 +33,12 @@
+@@ -33,10 +33,12 @@ see the files COPYING3 and COPYING.RUNTI
  #define OPTION_GLIBC  (DEFAULT_LIBC == LIBC_GLIBC)
  #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
  #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
@@ -77,7 +72,7 @@ diff --git a/gcc/config/linux.h b/gcc/config/linux.h
  #endif
  
  #define GNU_USER_TARGET_OS_CPP_BUILTINS()                     \
-@@ -54,18 +56,21 @@
+@@ -54,18 +56,21 @@ see the files COPYING3 and COPYING.RUNTI
     uClibc or Bionic is the default C library and whether
     -muclibc or -mglibc or -mbionic has been passed to change the default.  */
  
@@ -107,7 +102,7 @@ diff --git a/gcc/config/linux.h b/gcc/config/linux.h
  #else
  #error "Unsupported DEFAULT_LIBC"
  #endif /* DEFAULT_LIBC */
-@@ -85,16 +90,16 @@
+@@ -85,16 +90,16 @@ see the files COPYING3 and COPYING.RUNTI
  
  #define GNU_USER_DYNAMIC_LINKER                                               \
    CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
@@ -128,10 +123,9 @@ diff --git a/gcc/config/linux.h b/gcc/config/linux.h
  
  /* Determine whether the entire c99 runtime
     is present in the runtime library.  */
-diff --git a/gcc/config/linux.opt b/gcc/config/linux.opt
 --- a/gcc/config/linux.opt
 +++ b/gcc/config/linux.opt
-@@ -30,3 +30,7 @@
+@@ -30,3 +30,7 @@ Use GNU C library
  muclibc
  Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
  Use uClibc C library
@@ -139,19 +133,17 @@ diff --git a/gcc/config/linux.opt b/gcc/config/linux.opt
 +mmusl
 +Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc)
 +Use musl C library
-diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
 --- a/gcc/config/mips/linux.h
 +++ b/gcc/config/mips/linux.h
-@@ -19,3 +19,5 @@
+@@ -19,3 +19,5 @@ along with GCC; see the file COPYING3.
  <http://www.gnu.org/licenses/>.  */
  
  #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
 +
 +#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips.so.1"
-diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
 --- a/gcc/config/rs6000/linux64.h
 +++ b/gcc/config/rs6000/linux64.h
-@@ -362,17 +362,21 @@
+@@ -362,17 +362,21 @@ extern int dot_symbols;
  #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1"
  #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
  #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
@@ -177,10 +169,9 @@ diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
  
  
  #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
 --- a/gcc/config/rs6000/sysv4.h
 +++ b/gcc/config/rs6000/sysv4.h
-@@ -804,15 +804,18 @@
+@@ -804,15 +804,18 @@ extern int fixuplabelno;
  
  #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
  #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
@@ -202,10 +193,9 @@ diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
  
  #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
    %{rdynamic:-export-dynamic} \
-diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
 --- a/gcc/ginclude/stddef.h
 +++ b/gcc/ginclude/stddef.h
-@@ -184,6 +184,7 @@
+@@ -184,6 +184,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
  #ifndef _GCC_SIZE_T
  #ifndef _SIZET_
  #ifndef __size_t
@@ -213,7 +203,7 @@ diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
  #define __size_t__    /* BeOS */
  #define __SIZE_T__    /* Cray Unicos/Mk */
  #define _SIZE_T
-@@ -200,6 +201,7 @@
+@@ -200,6 +201,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
  #define ___int_size_t_h
  #define _GCC_SIZE_T
  #define _SIZET_
@@ -221,7 +211,7 @@ diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
  #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
    || defined(__FreeBSD_kernel__)
  /* __size_t is a typedef on FreeBSD 5, must not trash it. */
-@@ -215,6 +217,7 @@
+@@ -215,6 +217,7 @@ typedef __SIZE_TYPE__ size_t;
  typedef long ssize_t;
  #endif /* __BEOS__ */
  #endif /* !(defined (__GNUG__) && defined (size_t)) */
@@ -229,7 +219,6 @@ diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
  #endif /* __size_t */
  #endif /* _SIZET_ */
  #endif /* _GCC_SIZE_T */
-diff --git a/libgomp/config/posix/time.c b/libgomp/config/posix/time.c
 --- a/libgomp/config/posix/time.c
 +++ b/libgomp/config/posix/time.c
 @@ -28,6 +28,8 @@
@@ -241,10 +230,9 @@ diff --git a/libgomp/config/posix/time.c b/libgomp/config/posix/time.c
  #include "libgomp.h"
  #include <unistd.h>
  #if TIME_WITH_SYS_TIME
-diff --git a/libitm/config/arm/hwcap.cc b/libitm/config/arm/hwcap.cc
 --- a/libitm/config/arm/hwcap.cc
 +++ b/libitm/config/arm/hwcap.cc
-@@ -40,7 +40,11 @@
+@@ -40,7 +40,11 @@ int GTM_hwcap HIDDEN = 0
  
  #ifdef __linux__
  #include <unistd.h>
@@ -256,7 +244,6 @@ diff --git a/libitm/config/arm/hwcap.cc b/libitm/config/arm/hwcap.cc
  #include <elf.h>
  
  static void __attribute__((constructor))
-diff --git a/libitm/config/linux/x86/tls.h b/libitm/config/linux/x86/tls.h
 --- a/libitm/config/linux/x86/tls.h
 +++ b/libitm/config/linux/x86/tls.h
 @@ -25,16 +25,19 @@
@@ -281,17 +268,16 @@ diff --git a/libitm/config/linux/x86/tls.h b/libitm/config/linux/x86/tls.h
  namespace GTM HIDDEN {
  
  #ifdef __x86_64__
-@@ -101,5 +104,6 @@
+@@ -101,5 +104,6 @@ static inline void set_abi_disp(struct a
  
  } // namespace GTM
  #endif /* >= GLIBC 2.10 */
 +#endif
  
  #endif // LIBITM_X86_TLS_H
-diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
 --- a/libstdc++-v3/configure.host
 +++ b/libstdc++-v3/configure.host
-@@ -243,6 +243,13 @@
+@@ -246,6 +246,13 @@ case "${host_os}" in
      os_include_dir="os/bsd/freebsd"
      ;;
    gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
@@ -305,7 +291,7 @@ diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
      if [ "$uclibc" = "yes" ]; then
        os_include_dir="os/uclibc"
      elif [ "$bionic" = "yes" ]; then
-@@ -251,6 +258,9 @@
+@@ -254,6 +261,9 @@ case "${host_os}" in
        os_include_dir="os/gnu-linux"
      fi
      ;;
@@ -315,16 +301,15 @@ diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
    hpux*)
      os_include_dir="os/hpux"
      ;;
-diff --git a/gcc/config/mips/linux64.h b/gcc/config/mips/linux64.h
---- a/gcc/config/mips/linux64.h        2012-11-13 12:42:00.000000000 +0100
-+++ b/gcc/config/mips/linux64.h        2012-11-29 15:35:10.434361723 +0100
-@@ -28,6 +28,9 @@
+--- a/gcc/config/mips/linux64.h
++++ b/gcc/config/mips/linux64.h
+@@ -28,6 +28,9 @@ along with GCC; see the file COPYING3.
  #define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
  #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
  #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
-+#define MUSL_DYNAMIC_LINKERN32 "/lib32/ld-musl-mips.so.1"
-+#define MUSL_DYNAMIC_LINKER32 "/lib32/ld-musl-mips.so.1"
-+#define MUSL_DYNAMIC_LINKER64 "/lib64/ld-musl-mips.so.1"
++#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mips.so.1"
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips.so.1"
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips.so.1"
  #define GNU_USER_DYNAMIC_LINKERN32 \
    CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \
 -                       BIONIC_DYNAMIC_LINKERN32)