123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- 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
|