Commit 8c0a367d authored by Gustavo Zacarias's avatar Gustavo Zacarias Committed by Thomas Petazzoni
Browse files

gcc: remove 4.5.x



It's been deprecated for some time now.

Signed-off-by: default avatarGustavo Zacarias <gustavo@zacarias.com.ar>
[Thomas: move option to Config.in.legacy, as noticed by Peter.]
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent d7e8994e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -145,6 +145,13 @@ endif
###############################################################################
comment "Legacy options removed in 2016.02"

config BR2_GCC_VERSION_4_5_X
	bool "gcc 4.5.x has been removed"
	select BR2_LEGACY
	help
	  The 4.5.x version of gcc has been removed. Use a newer
	  version instead.

config BR2_PACKAGE_SQLITE_READLINE
	bool "command-line editing support was updated"
	select BR2_PACKAGE_NCURSES
+0 −13
Original line number Diff line number Diff line
--- gcc/gcc/config/--- gcc/contrib/regression/objs-gcc.sh
+++ gcc/contrib/regression/objs-gcc.sh
@@ -105,6 +105,10 @@
  then
   make all-gdb all-dejagnu all-ld || exit 1
   make install-gdb install-dejagnu install-ld || exit 1
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
+ then
+  make all-gdb all-dejagnu all-ld || exit 1
+  make install-gdb install-dejagnu install-ld || exit 1
 elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
   make bootstrap || exit 1
   make install || exit 1
+0 −125
Original line number Diff line number Diff line
http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00269.html

On glibc the libc.so carries a copy of the math function copysignl() but
on uClibc math functions like copysignl() live in libm. Since libgcc_s
contains unresolved symbols, any attempt to link against libgcc_s
without explicitely specifying -lm fails, resulting in a broken
bootstrap of the compiler.

Forward port to gcc 4.5.1 by Gustavo Zacarias <gustavo@zacarias.com.ar>

diff -Nura gcc-4.5.1.orig/gcc/config/t-slibgcc-elf-ver gcc-4.5.1/gcc/config/t-slibgcc-elf-ver
--- gcc-4.5.1.orig/gcc/config/t-slibgcc-elf-ver	2010-11-03 14:35:08.644904042 -0300
+++ gcc-4.5.1/gcc/config/t-slibgcc-elf-ver	2010-11-03 14:35:56.332904024 -0300
@@ -27,7 +27,7 @@
 SHLIB_OBJS = @shlib_objs@
 SHLIB_DIR = @multilib_dir@
 SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
-SHLIB_LC = -lc
+SHLIB_LC = @libgcc_libm@ -lc
 SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
 SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
 	$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
diff -Nura gcc-4.5.1.orig/libgcc/Makefile.in gcc-4.5.1/libgcc/Makefile.in
--- gcc-4.5.1.orig/libgcc/Makefile.in	2010-11-03 14:32:44.272904042 -0300
+++ gcc-4.5.1/libgcc/Makefile.in	2010-11-03 14:37:03.893904042 -0300
@@ -39,6 +39,7 @@
 decimal_float = @decimal_float@
 enable_decimal_float = @enable_decimal_float@
 fixed_point = @fixed_point@
+LIBGCC_LIBM = @LIBGCC_LIBM@
 
 host_noncanonical = @host_noncanonical@
 
@@ -798,9 +799,10 @@
 		@multilib_dir@,$(MULTIDIR),$(subst \
 		@shlib_objs@,$(objects),$(subst \
 		@shlib_base_name@,libgcc_s,$(subst \
+		@libgcc_libm@,$(LIBGCC_LIBM),$(subst \
 		@shlib_map_file@,$(mapfile),$(subst \
 		@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \
-		@shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK))))))))
+		@shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))))
 
 libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts)
 	# @multilib_flags@ is still needed because this may use
diff -Nura gcc-4.5.1.orig/libgcc/configure gcc-4.5.1/libgcc/configure
--- gcc-4.5.1.orig/libgcc/configure	2010-11-03 14:32:44.283904042 -0300
+++ gcc-4.5.1/libgcc/configure	2010-11-03 14:39:48.685904042 -0300
@@ -557,6 +557,7 @@
 extra_parts
 tmake_file
 set_use_emutls
+LIBGCC_LIBM
 set_have_cc_tls
 vis_hide
 fixed_point
@@ -3847,6 +3848,37 @@
   set_use_emutls="-DUSE_EMUTLS"
 fi
 
+# On powerpc libgcc_s references copysignl which is a libm function but
+# glibc apparently also provides it via libc as opposed to uClibc where
+# it lives in libm.
+echo "$as_me:$LINENO: checking for library containing copysignl" >&5
+echo $ECHO_N "checking for library containing copysignl... $ECHO_C" >&6
+if test "${libgcc_cv_copysignl_lib+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    echo '#include <features.h>' > conftest.c
+    echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c
+    libgcc_cv_copysignl_lib="-lc"
+    if { ac_try='${CC-cc} -S conftest.c -o conftest.s 1>&5'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }
+    then
+       libgcc_cv_copysignl_lib="-lm"
+    fi
+    rm -f conftest.*
+
+fi
+echo "$as_me:$LINENO: result: $libgcc_cv_copysignl_lib" >&5
+echo "${ECHO_T}$libgcc_cv_copysignl_lib" >&6
+
+case /${libgcc_cv_copysignl_lib}/ in
+  /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;;
+  *) LIBGCC_LIBM= ;;
+esac
 
 # Conditionalize the makefile for this target machine.
 tmake_file_=
diff -Nura gcc-4.5.1.orig/libgcc/configure.ac gcc-4.5.1/libgcc/configure.ac
--- gcc-4.5.1.orig/libgcc/configure.ac	2010-11-03 14:32:44.735904042 -0300
+++ gcc-4.5.1/libgcc/configure.ac	2010-11-03 14:42:11.278904045 -0300
@@ -238,6 +238,27 @@
 fi
 AC_SUBST(set_have_cc_tls)
 
+# On powerpc libgcc_s references copysignl which is a libm function but
+# glibc apparently also provides it via libc as opposed to uClibc where
+# it lives in libm.
+AC_CACHE_CHECK
+  libgcc_cv_copysignl_lib,
+    echo '#include <features.h>' > conftest.c
+    echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c
+    libgcc_cv_copysignl_lib="-lc"
+    if AC_TRY_COMMAND(${CC-cc} -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD)
+    then
+       libgcc_cv_copysignl_lib="-lm"
+    fi
+    rm -f conftest.*
+  ])
+
+case /${libgcc_cv_copysignl_lib}/ in
+  /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;;
+  *) LIBGCC_LIBM= ;;
+esac
+AC_SUBST(LIBGCC_LIBM)
+
 # See if we have emulated thread-local storage.
 GCC_CHECK_EMUTLS
 set_use_emutls=
+0 −11
Original line number Diff line number Diff line
--- gcc-4.0.0/boehm-gc/include/gc.h-orig	2005-04-28 22:28:57.000000000 -0500
+++ gcc-4.0.0/boehm-gc/include/gc.h	2005-04-28 22:30:38.000000000 -0500
@@ -500,7 +500,7 @@
 #ifdef __linux__
 # include <features.h>
 # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
-     && !defined(__ia64__)
+     && !defined(__ia64__) && !defined(__UCLIBC__)
 #   ifndef GC_HAVE_BUILTIN_BACKTRACE
 #     define GC_HAVE_BUILTIN_BACKTRACE
 #   endif
+0 −13
Original line number Diff line number Diff line
Index: gcc-4.3.0/libstdc++-v3/include/c_global/cstdio
===================================================================
--- gcc-4.3.0/libstdc++-v3/include/c_global/cstdio	(revision 129202)
+++ gcc-4.3.0/libstdc++-v3/include/c_global/cstdio	(working copy)
@@ -144,7 +144,7 @@
 
 _GLIBCXX_END_NAMESPACE
 
-#if _GLIBCXX_USE_C99
+#if _GLIBCXX_USE_C99 || defined __UCLIBC__
 
 #undef snprintf
 #undef vfscanf
Loading