summaryrefslogtreecommitdiffstats
path: root/sources/gcc/2.95
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2004-09-03 00:49:43 +0000
committerManuel Novoa III <mjn3@codepoet.org>2004-09-03 00:49:43 +0000
commit3ad3d8a1d8c25bab9937e2d9e08ccdbb0b042543 (patch)
tree56c0b25562b460f75a4191b826be6690a8015db9 /sources/gcc/2.95
parente694138b173d963ab0348f652e3882db97e2d296 (diff)
downloadbuildroot-novena-3ad3d8a1d8c25bab9937e2d9e08ccdbb0b042543.tar.gz
buildroot-novena-3ad3d8a1d8c25bab9937e2d9e08ccdbb0b042543.zip
Update to what I'm currently using. Lots of changes...
1) Allow selection of binutils/gcc/gdb/kernel headers to build, although some of the older tool patches probably need updating. 2) Rework gdb build so that remote debugging now works with gdbserver. 3) Misc. other package updates.3) Misc. other package updates.3) Misc. other package updates.
Diffstat (limited to 'sources/gcc/2.95')
-rw-r--r--sources/gcc/2.95/050-debian-subset.patchbin0 -> 125297 bytes
-rw-r--r--sources/gcc/2.95/100-uclibc-conf.patch291
2 files changed, 291 insertions, 0 deletions
diff --git a/sources/gcc/2.95/050-debian-subset.patch b/sources/gcc/2.95/050-debian-subset.patch
new file mode 100644
index 000000000..4dffd849b
--- /dev/null
+++ b/sources/gcc/2.95/050-debian-subset.patch
Binary files differ
diff --git a/sources/gcc/2.95/100-uclibc-conf.patch b/sources/gcc/2.95/100-uclibc-conf.patch
new file mode 100644
index 000000000..f244387cc
--- /dev/null
+++ b/sources/gcc/2.95/100-uclibc-conf.patch
@@ -0,0 +1,291 @@
+Warning! The powerpc patch (rs6000/linux.h) is hack-ish and would
+definitely need to be improved to be acceptable upstream. Also,
+this patch isn't complete as it only supports i386, arm, mips, and
+powerpc (rs6000).
+diff -urN gcc-20011006/config.sub gcc-20011006-new/config.sub
+--- gcc-20011006/config.sub 2004-01-13 06:15:28.000000000 -0600
++++ gcc-20011006-new/config.sub 2004-01-10 11:09:35.000000000 -0600
+@@ -68,7 +68,7 @@
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+- linux-gnu*)
++ linux-gnu* | linux-uclibc*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+@@ -936,7 +936,8 @@
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -mingw32* | -linux-gnu* | -linux-uclibc* \
++ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* )
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+diff -urN gcc-20011006/gcc/config/arm/linux-elf.h gcc-20011006-new/gcc/config/arm/linux-elf.h
+--- gcc-20011006/gcc/config/arm/linux-elf.h 2004-01-13 06:15:28.000000000 -0600
++++ gcc-20011006-new/gcc/config/arm/linux-elf.h 2004-01-10 11:12:11.000000000 -0600
+@@ -90,6 +90,18 @@
+ #define ENDFILE_SPEC \
+ "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+
++#ifdef USE_UCLIBC
++#define LINK_SPEC "%{h*} %{version:-v} \
++ %{b} %{Wl,*:%*} \
++ %{static:-Bstatic} \
++ %{shared:-shared} \
++ %{symbolic:-Bsymbolic} \
++ %{rdynamic:-export-dynamic} \
++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \
++ -X \
++ %{mbig-endian:-EB}" \
++ SUBTARGET_EXTRA_LINK_SPEC
++#else
+ #define LINK_SPEC "%{h*} %{version:-v} \
+ %{b} %{Wl,*:%*} \
+ %{static:-Bstatic} \
+@@ -100,6 +112,7 @@
+ -X \
+ %{mbig-endian:-EB}" \
+ SUBTARGET_EXTRA_LINK_SPEC
++#endif
+
+ #undef CPP_PREDEFINES
+ #define CPP_PREDEFINES \
+diff -urN gcc-20011006/gcc/config/i386/linux.h gcc-20011006-new/gcc/config/i386/linux.h
+--- gcc-20011006/gcc/config/i386/linux.h 2001-04-03 17:38:59.000000000 -0500
++++ gcc-20011006-new/gcc/config/i386/linux.h 2004-01-10 11:15:38.000000000 -0600
+@@ -199,6 +199,15 @@
+ %{static:-static}}}"
+ #endif
+ #else
++#if defined USE_UCLIBC
++#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
++ %{!shared: \
++ %{!ibcs: \
++ %{!static: \
++ %{rdynamic:-export-dynamic} \
++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
++ %{static:-static}}}"
++#else
+ #define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+@@ -207,6 +216,7 @@
+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
+ %{static:-static}}}"
+ #endif
++#endif
+
+ /* Get perform_* macros to build libgcc.a. */
+ #include "i386/perform.h"
+diff -urN gcc-20011006/gcc/config/mips/linux.h gcc-20011006-new/gcc/config/mips/linux.h
+--- gcc-20011006/gcc/config/mips/linux.h 2004-01-13 06:15:28.000000000 -0600
++++ gcc-20011006-new/gcc/config/mips/linux.h 2004-01-10 11:16:39.000000000 -0600
+@@ -154,6 +154,17 @@
+
+ /* Borrowed from sparc/linux.h */
+ #undef LINK_SPEC
++#ifdef USE_UCLIBC
++#define LINK_SPEC \
++ "%(endian_spec) \
++ %{shared:-shared} \
++ %{!shared: \
++ %{!ibcs: \
++ %{!static: \
++ %{rdynamic:-export-dynamic} \
++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
++ %{static:-static}}}"
++#else
+ #define LINK_SPEC \
+ "%(endian_spec) \
+ %{shared:-shared} \
+@@ -163,6 +174,7 @@
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
+ %{static:-static}}}"
++#endif
+
+
+ #undef SUBTARGET_ASM_SPEC
+diff -urN old/gcc-20011006/gcc/config/mips/t-linux-uclibc gcc-20011006/gcc/config/mips/t-linux-uclibc
+--- old/gcc-20011006/gcc/config/mips/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600
++++ gcc-20011006/gcc/config/mips/t-linux-uclibc 2004-01-14 02:51:10.000000000 -0600
+@@ -0,0 +1 @@
++T_CFLAGS = -DUSE_UCLIBC
+diff -urN gcc-20011006/gcc/config/rs6000/linux.h gcc-20011006-new/gcc/config/rs6000/linux.h
+--- gcc-20011006/gcc/config/rs6000/linux.h 2001-04-03 17:38:59.000000000 -0500
++++ gcc-20011006-new/gcc/config/rs6000/linux.h 2004-01-10 11:15:38.000000000 -0600
+@@ -36,12 +36,21 @@
+ #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
+
+ #undef LINK_SPEC
++#ifdef USE_UCLIBC
++#define LINK_SPEC "-m elf32ppclinux %{G*} %{shared:-shared} \
++ %{!shared: \
++ %{!static: \
++ %{rdynamic:-export-dynamic} \
++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
++ %{static:-static}}"
++#else
+ #define LINK_SPEC "-m elf32ppclinux %{G*} %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
+ %{static:-static}}"
++#endif
+
+ #undef LIB_DEFAULT_SPEC
+ #define LIB_DEFAULT_SPEC "%(lib_linux)"
+diff -urN gcc-20011006/gcc/config/t-linux-uclibc gcc-20011006-new/gcc/config/t-linux-uclibc
+--- gcc-20011006/gcc/config/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600
++++ gcc-20011006-new/gcc/config/t-linux-uclibc 2004-01-10 11:18:46.000000000 -0600
+@@ -0,0 +1,18 @@
++T_CFLAGS = -DUSE_UCLIBC
++
++# Don't run fixproto
++STMP_FIXPROTO =
++
++# Don't install "assert.h" in gcc. We use the one in glibc.
++INSTALL_ASSERT_H =
++
++# Compile crtbeginS.o and crtendS.o with pic.
++CRTSTUFF_T_CFLAGS_S = -fPIC
++# Compile libgcc2.a with pic.
++TARGET_LIBGCC2_CFLAGS = -fPIC
++
++# Do not build libgcc1. Let gcc generate those functions. The GNU/Linux
++# C library can handle them.
++LIBGCC1 =
++CROSS_LIBGCC1 =
++LIBGCC1_TEST =
+diff -urN gcc-20011006/gcc/configure gcc-20011006-new/gcc/configure
+--- gcc-20011006/gcc/configure 2004-01-13 06:15:28.000000000 -0600
++++ gcc-20011006-new/gcc/configure 2004-01-10 11:28:54.000000000 -0600
+@@ -3219,6 +3219,24 @@
+ ;;
+ esac
+ ;;
++ arm*-*-linux-uclibc*) # ARM GNU/Linux with ELF - uClibc
++ xm_file=arm/xm-linux.h
++ xmake_file=x-linux
++ tm_file="arm/linux-elf.h"
++ case $machine in
++ armv2*-*-*)
++ tm_file="arm/linux-elf26.h $tm_file"
++ ;;
++ esac
++ tmake_file="t-linux-uclibc arm/t-linux"
++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ gnu_ld=yes
++ case x${enable_threads} in
++ x | xyes | xpthreads | xposix)
++ thread_file='posix'
++ ;;
++ esac
++ ;;
+ arm*-*-aout)
+ tm_file=arm/aout.h
+ tmake_file=arm/t-bare
+@@ -3631,6 +3649,18 @@
+ thread_file='single'
+ fi
+ ;;
++ i[34567]86-*-linux*uclibc*) # Intel 80386's running GNU/Linux
++ # with ELF format using uClibc
++ xmake_file=x-linux
++ tm_file=i386/linux.h
++ tmake_file="t-linux-uclibc i386/t-crtstuff"
++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ gnu_ld=yes
++ float_format=i386
++ if test x$enable_threads = xyes; then
++ thread_file='posix'
++ fi
++ ;;
+ i[34567]86-*-linux-gnu*) # Intel 80386's running GNU/Linux
+ # aka GNU/Linux C library 6
+ xmake_file=x-linux
+@@ -4696,7 +4726,19 @@
+ # On NetBSD, the headers are already okay, except for math.h.
+ tmake_file=t-netbsd
+ ;;
+- mips*-*-linux*) # Linux MIPS, either endian.
++ mips*-*-linux-uclibc*) # Linux (uclibc) MIPS, either endian.
++ tmake_file=mips/t-linux-uclibc
++ xmake_file=x-linux
++ xm_file="xm-siglist.h ${xm_file}"
++ case $machine in
++ mipsel-*) tm_file="mips/elfl.h mips/linux.h" ;;
++ *) tm_file="mips/elf.h mips/linux.h" ;;
++ esac
++ extra_parts="crtbegin.o crtend.o"
++ gnu_ld=yes
++ gas=yes
++ ;;
++ mips*-*-linux*) # Linux MIPS, either endian.
+ xmake_file=x-linux
+ xm_file="xm-siglist.h ${xm_file}"
+ case $machine in
+@@ -5159,6 +5201,24 @@
+ thread_file='posix'
+ fi
+ ;;
++ powerpc-*-linux-uclibc*)
++ tm_file=rs6000/linux.h
++ xm_file="xm-siglist.h rs6000/xm-sysv4.h"
++ xm_defines="USG ${xm_defines}"
++ out_file=rs6000/rs6000.c
++ if test x$gas = xyes
++ then
++ tmake_file="rs6000/t-ppcos t-linux-uclibc rs6000/t-ppccomm"
++ else
++ tmake_file="rs6000/t-ppc t-linux-uclibc rs6000/t-ppccomm"
++ fi
++ xmake_file=x-linux
++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ extra_headers=ppc-asm.h
++ if test x$enable_threads = xyes; then
++ thread_file='posix'
++ fi
++ ;;
+ powerpc-wrs-vxworks*)
+ cpu_type=rs6000
+ xm_file="xm-siglist.h rs6000/xm-sysv4.h"
+diff -urN gcc-20011006/ltconfig gcc-20011006-new/ltconfig
+--- gcc-20011006/ltconfig 1999-06-21 21:35:12.000000000 -0500
++++ gcc-20011006-new/ltconfig 2004-01-10 11:34:23.000000000 -0600
+@@ -436,6 +436,7 @@
+ # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+ case "$host_os" in
+ linux-gnu*) ;;
++linux-uclibc*) ;;
+ linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+ esac
+
+@@ -1773,6 +1774,22 @@
+ fi
+ ;;
+
++linux-uclibc*)
++ version_type=linux
++ need_lib_prefix=no
++ need_version=no
++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
++ soname_spec='${libname}${release}.so$major'
++ finish_cmds='PATH="$PATH:/sbin" ldconfig -n $libdir'
++ shlibpath_var=LD_LIBRARY_PATH
++ shlibpath_overrides_runpath=no
++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
++ file_magic_cmd=/usr/bin/file
++ file_magic_test_file=`echo /lib/libuClibc-*.so`
++ # Assume using the uClibc dynamic linker.
++ dynamic_linker="uClibc ld.so"
++ ;;
++
+ netbsd*)
+ version_type=sunos
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then