patches/gcc/4.1.1/100-uclibc-conf.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Feb 17 22:08:06 2008 +0000 (2008-02-17)
changeset 431 8bde4c6ea47a
permissions -rw-r--r--
Robert P. J. DAY says:

apparently, the patchset for gcc 4.2.1 applies properly to the
source for gcc 4.2.2 and gcc 4.2.3. so, if you want, you can simply
add support for those last two just by augmenting menuconfig and
adding a couple symlinks for those two directories. seems like a
cheap way to add a couple new versions.
yann@1
     1
--- gcc-4.1.0/gcc/config/t-linux-uclibc
yann@1
     2
+++ gcc-4.1.0/gcc/config/t-linux-uclibc
yann@1
     3
@@ -0,0 +1,5 @@
yann@1
     4
+# Remove glibc specific files added in t-linux
yann@1
     5
+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
yann@1
     6
+
yann@1
     7
+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
yann@1
     8
+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
yann@1
     9
--- gcc-4.1.0/gcc/config.gcc
yann@1
    10
+++ gcc-4.1.0/gcc/config.gcc
yann@1
    11
@@ -1887,7 +1887,7 @@ s390x-ibm-tpf*)
yann@1
    12
 	;;
yann@1
    13
 sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
yann@1
    14
 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
yann@1
    15
-  sh-*-linux* | sh[346lbe]*-*-linux* | \
yann@1
    16
+  sh*-*-linux* | sh[346lbe]*-*-linux* | \
yann@1
    17
   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
yann@1
    18
    sh64-*-netbsd* | sh64l*-*-netbsd*)
yann@1
    19
 	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
yann@1
    20
@@ -2341,6 +2341,12 @@ m32c-*-elf*)
yann@1
    21
 	;;
yann@1
    22
 esac
yann@1
    23
 
yann@1
    24
+# Rather than hook into each target, just do it after all the linux
yann@1
    25
+# targets have been processed
yann@1
    26
+case ${target} in
yann@1
    27
+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
yann@1
    28
+esac
yann@1
    29
+
yann@1
    30
 case ${target} in
yann@1
    31
 i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
yann@1
    32
 	tmake_file="${tmake_file} i386/t-gmm_malloc"
yann@1
    33
--- gcc-4.1.0/boehm-gc/configure
yann@1
    34
+++ gcc-4.1.0/boehm-gc/configure
yann@1
    35
@@ -4320,6 +4320,11 @@ linux-gnu*)
yann@1
    36
   lt_cv_deplibs_check_method=pass_all
yann@1
    37
   ;;
yann@1
    38
 
yann@1
    39
+linux-uclibc*)
yann@1
    40
+  lt_cv_deplibs_check_method=pass_all
yann@1
    41
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
yann@1
    42
+  ;;
yann@1
    43
+
yann@1
    44
 netbsd* | knetbsd*-gnu)
yann@1
    45
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
yann@1
    46
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
yann@1
    47
--- gcc-4.1.0/configure
yann@1
    48
+++ gcc-4.1.0/configure
yann@1
    49
@@ -1133,7 +1133,7 @@ no)
yann@1
    50
     ;;
yann@1
    51
 "")
yann@1
    52
     case "${target}" in
yann@1
    53
-    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
yann@1
    54
+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
yann@1
    55
         # Enable libmudflap by default in GNU and friends.
yann@1
    56
 	;;
yann@1
    57
     *-*-freebsd*)
yann@1
    58
--- gcc-4.1.0/configure.in
yann@1
    59
+++ gcc-4.1.0/configure.in
yann@1
    60
@@ -341,7 +341,7 @@ no)
yann@1
    61
     ;;
yann@1
    62
 "")
yann@1
    63
     case "${target}" in
yann@1
    64
-    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
yann@1
    65
+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
yann@1
    66
         # Enable libmudflap by default in GNU and friends.
yann@1
    67
 	;;
yann@1
    68
     *-*-freebsd*)
yann@1
    69
--- gcc-4.1.0/contrib/regression/objs-gcc.sh
yann@1
    70
+++ gcc-4.1.0/contrib/regression/objs-gcc.sh
yann@1
    71
@@ -105,6 +105,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H
yann@1
    72
  then
yann@1
    73
   make all-gdb all-dejagnu all-ld || exit 1
yann@1
    74
   make install-gdb install-dejagnu install-ld || exit 1
yann@1
    75
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
yann@1
    76
+ then
yann@1
    77
+  make all-gdb all-dejagnu all-ld || exit 1
yann@1
    78
+  make install-gdb install-dejagnu install-ld || exit 1
yann@1
    79
 elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
yann@1
    80
   make bootstrap || exit 1
yann@1
    81
   make install || exit 1
yann@1
    82
--- gcc-4.1.0/gcc/config/alpha/linux-elf.h
yann@1
    83
+++ gcc-4.1.0/gcc/config/alpha/linux-elf.h
yann@1
    84
@@ -27,7 +27,11 @@ Boston, MA 02110-1301, USA.  */
yann@1
    85
 #define SUBTARGET_EXTRA_SPECS \
yann@1
    86
 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
yann@1
    87
 
yann@1
    88
+#if defined USE_UCLIBC
yann@1
    89
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
yann@1
    90
+#else
yann@1
    91
 #define ELF_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
yann@1
    92
+#endif
yann@1
    93
 
yann@1
    94
 #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
yann@1
    95
   %{O*:-O3} %{!O*:-O1}						\
yann@1
    96
--- gcc-4.1.0/gcc/config/arm/linux-elf.h
yann@1
    97
+++ gcc-4.1.0/gcc/config/arm/linux-elf.h
yann@1
    98
@@ -51,7 +51,11 @@
yann@1
    99
 
yann@1
   100
 #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
yann@1
   101
 
yann@1
   102
+#ifdef USE_UCLIBC
yann@1
   103
+#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
yann@1
   104
+#else
yann@1
   105
 #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
yann@1
   106
+#endif
yann@1
   107
 
yann@1
   108
 #define LINUX_TARGET_LINK_SPEC  "%{h*} %{version:-v} \
yann@1
   109
    %{b} \
yann@1
   110
--- gcc-4.1.0/gcc/config/cris/linux.h
yann@1
   111
+++ gcc-4.1.0/gcc/config/cris/linux.h
yann@1
   112
@@ -73,6 +73,25 @@ Boston, MA 02110-1301, USA.  */
yann@1
   113
 #undef CRIS_DEFAULT_CPU_VERSION
yann@1
   114
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
yann@1
   115
 
yann@1
   116
+#ifdef USE_UCLIBC
yann@1
   117
+
yann@1
   118
+#undef CRIS_SUBTARGET_VERSION
yann@1
   119
+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
yann@1
   120
+
yann@1
   121
+#undef CRIS_LINK_SUBTARGET_SPEC
yann@1
   122
+#define CRIS_LINK_SUBTARGET_SPEC \
yann@1
   123
+ "-mcrislinux\
yann@1
   124
+  -rpath-link include/asm/../..%s\
yann@1
   125
+  %{shared} %{static}\
yann@1
   126
+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
yann@1
   127
+  %{!shared: \
yann@1
   128
+    %{!static: \
yann@1
   129
+      %{rdynamic:-export-dynamic} \
yann@1
   130
+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
yann@1
   131
+  %{!r:%{O2|O3: --gc-sections}}"
yann@1
   132
+
yann@1
   133
+#else  /* USE_UCLIBC */
yann@1
   134
+
yann@1
   135
 #undef CRIS_SUBTARGET_VERSION
yann@1
   136
 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
yann@1
   137
 
yann@1
   138
@@ -87,6 +106,8 @@ Boston, MA 02110-1301, USA.  */
yann@1
   139
   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
yann@1
   140
   %{!r:%{O2|O3: --gc-sections}}"
yann@1
   141
 
yann@1
   142
+#endif  /* USE_UCLIBC */
yann@1
   143
+
yann@1
   144
 
yann@1
   145
 /* Node: Run-time Target */
yann@1
   146
 
yann@1
   147
--- gcc-4.1.0/gcc/config/i386/linux.h
yann@1
   148
+++ gcc-4.1.0/gcc/config/i386/linux.h
yann@1
   149
@@ -107,6 +107,11 @@ Boston, MA 02110-1301, USA.  */
yann@1
   150
 #define LINK_EMULATION "elf_i386"
yann@1
   151
 #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
yann@1
   152
 
yann@1
   153
+#if defined USE_UCLIBC
yann@1
   154
+#undef DYNAMIC_LINKER
yann@1
   155
+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
yann@1
   156
+#endif
yann@1
   157
+
yann@1
   158
 #undef  SUBTARGET_EXTRA_SPECS
yann@1
   159
 #define SUBTARGET_EXTRA_SPECS \
yann@1
   160
   { "link_emulation", LINK_EMULATION },\
yann@1
   161
--- gcc-4.1.0/gcc/config/i386/linux64.h
yann@1
   162
+++ gcc-4.1.0/gcc/config/i386/linux64.h
yann@1
   163
@@ -54,14 +54,21 @@ Boston, MA 02110-1301, USA.  */
yann@1
   164
    When the -shared link option is used a final link is not being
yann@1
   165
    done.  */
yann@1
   166
 
yann@1
   167
+#ifdef USE_UCLIBC
yann@1
   168
+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
yann@1
   169
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
yann@1
   170
+#else
yann@1
   171
+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
yann@1
   172
+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
yann@1
   173
+#endif
yann@1
   174
 #undef	LINK_SPEC
yann@1
   175
 #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
yann@1
   176
   %{shared:-shared} \
yann@1
   177
   %{!shared: \
yann@1
   178
     %{!static: \
yann@1
   179
       %{rdynamic:-export-dynamic} \
yann@1
   180
-      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
yann@1
   181
-      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
yann@1
   182
+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
yann@1
   183
+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
yann@1
   184
     %{static:-static}}"
yann@1
   185
 
yann@1
   186
 /* Similar to standard Linux, but adding -ffast-math support.  */
yann@1
   187
--- gcc-4.1.0/gcc/config/ia64/linux.h
yann@1
   188
+++ gcc-4.1.0/gcc/config/ia64/linux.h
yann@1
   189
@@ -37,13 +37,18 @@ do {						\
yann@1
   190
 /* Define this for shared library support because it isn't in the main
yann@1
   191
    linux.h file.  */
yann@1
   192
 
yann@1
   193
+#ifdef USE_UCLIBC
yann@1
   194
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
yann@1
   195
+#else
yann@1
   196
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
yann@1
   197
+#endif
yann@1
   198
 #undef LINK_SPEC
yann@1
   199
 #define LINK_SPEC "\
yann@1
   200
   %{shared:-shared} \
yann@1
   201
   %{!shared: \
yann@1
   202
     %{!static: \
yann@1
   203
       %{rdynamic:-export-dynamic} \
yann@1
   204
-      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
yann@1
   205
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
yann@1
   206
       %{static:-static}}"
yann@1
   207
 
yann@1
   208
 
yann@1
   209
--- gcc-4.1.0/gcc/config/m68k/linux.h
yann@1
   210
+++ gcc-4.1.0/gcc/config/m68k/linux.h
yann@1
   211
@@ -123,12 +123,17 @@ Boston, MA 02110-1301, USA.  */
yann@1
   212
 
yann@1
   213
 /* If ELF is the default format, we should not use /lib/elf.  */
yann@1
   214
 
yann@1
   215
+#ifdef USE_UCLIBC
yann@1
   216
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
yann@1
   217
+#else
yann@1
   218
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
yann@1
   219
+#endif
yann@1
   220
 #undef	LINK_SPEC
yann@1
   221
 #define LINK_SPEC "-m m68kelf %{shared} \
yann@1
   222
   %{!shared: \
yann@1
   223
     %{!static: \
yann@1
   224
       %{rdynamic:-export-dynamic} \
yann@1
   225
-      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
yann@1
   226
+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
yann@1
   227
     %{static}}"
yann@1
   228
 
yann@1
   229
 /* For compatibility with linux/a.out */
yann@1
   230
--- gcc-4.1.0/gcc/config/mips/linux.h
yann@1
   231
+++ gcc-4.1.0/gcc/config/mips/linux.h
yann@1
   232
@@ -105,6 +105,11 @@ Boston, MA 02110-1301, USA.  */
yann@1
   233
 
yann@1
   234
 /* Borrowed from sparc/linux.h */
yann@1
   235
 #undef LINK_SPEC
yann@1
   236
+#ifdef USE_UCLIBC
yann@1
   237
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
yann@1
   238
+#else
yann@1
   239
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
yann@1
   240
+#endif
yann@1
   241
 #define LINK_SPEC \
yann@1
   242
  "%(endian_spec) \
yann@1
   243
   %{shared:-shared} \
yann@1
   244
@@ -112,7 +117,7 @@ Boston, MA 02110-1301, USA.  */
yann@1
   245
     %{!ibcs: \
yann@1
   246
       %{!static: \
yann@1
   247
         %{rdynamic:-export-dynamic} \
yann@1
   248
-        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
yann@1
   249
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
yann@1
   250
         %{static:-static}}}"
yann@1
   251
 
yann@1
   252
 #undef SUBTARGET_ASM_SPEC
yann@1
   253
--- gcc-4.1.0/gcc/config/pa/pa-linux.h
yann@1
   254
+++ gcc-4.1.0/gcc/config/pa/pa-linux.h
yann@1
   255
@@ -49,13 +49,18 @@ Boston, MA 02110-1301, USA.  */
yann@1
   256
 /* Define this for shared library support because it isn't in the main
yann@1
   257
    linux.h file.  */
yann@1
   258
 
yann@1
   259
+#ifdef USE_UCLIBC
yann@1
   260
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
yann@1
   261
+#else
yann@1
   262
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
yann@1
   263
+#endif
yann@1
   264
 #undef LINK_SPEC
yann@1
   265
 #define LINK_SPEC "\
yann@1
   266
   %{shared:-shared} \
yann@1
   267
   %{!shared: \
yann@1
   268
     %{!static: \
yann@1
   269
       %{rdynamic:-export-dynamic} \
yann@1
   270
-      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
yann@1
   271
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
yann@1
   272
       %{static:-static}}"
yann@1
   273
 
yann@1
   274
 /* glibc's profiling functions don't need gcc to allocate counters.  */
yann@1
   275
--- gcc-4.1.0/gcc/config/rs6000/linux.h
yann@1
   276
+++ gcc-4.1.0/gcc/config/rs6000/linux.h
yann@1
   277
@@ -72,7 +72,11 @@
yann@1
   278
 #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
yann@1
   279
 
yann@1
   280
 #undef	LINK_OS_DEFAULT_SPEC
yann@1
   281
+#ifdef USE_UCLIBC
yann@1
   282
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
yann@1
   283
+#else
yann@1
   284
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
yann@1
   285
+#endif
yann@1
   286
 
yann@1
   287
 #define LINK_GCC_C_SEQUENCE_SPEC \
yann@1
   288
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
yann@1
   289
--- gcc-4.1.0/gcc/config/rs6000/sysv4.h
yann@1
   290
+++ gcc-4.1.0/gcc/config/rs6000/sysv4.h
yann@1
   291
@@ -866,6 +866,7 @@ extern int fixuplabelno;
yann@1
   292
   mcall-linux  : %(link_os_linux)       ; \
yann@1
   293
   mcall-gnu    : %(link_os_gnu)         ; \
yann@1
   294
   mcall-netbsd : %(link_os_netbsd)      ; \
yann@1
   295
+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
yann@1
   296
   mcall-openbsd: %(link_os_openbsd)     ; \
yann@1
   297
                : %(link_os_default)     }"
yann@1
   298
 
yann@1
   299
@@ -1043,6 +1044,10 @@ extern int fixuplabelno;
yann@1
   300
   %{rdynamic:-export-dynamic} \
yann@1
   301
   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
yann@1
   302
 
yann@1
   303
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
yann@1
   304
+  %{rdynamic:-export-dynamic} \
yann@1
   305
+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
yann@1
   306
+
yann@1
   307
 #if defined(HAVE_LD_EH_FRAME_HDR)
yann@1
   308
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
yann@1
   309
 #endif
yann@1
   310
@@ -1209,6 +1214,7 @@ ncrtn.o%s"
yann@1
   311
   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
yann@1
   312
   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
yann@1
   313
   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
yann@1
   314
+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
yann@1
   315
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
yann@1
   316
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
yann@1
   317
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
yann@1
   318
--- gcc-4.1.0/gcc/config/s390/linux.h
yann@1
   319
+++ gcc-4.1.0/gcc/config/s390/linux.h
yann@1
   320
@@ -77,6 +77,13 @@ Software Foundation, 51 Franklin Street,
yann@1
   321
 #define MULTILIB_DEFAULTS { "m31" }
yann@1
   322
 #endif
yann@1
   323
 
yann@1
   324
+#ifdef USE_UCLIBC
yann@1
   325
+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
yann@1
   326
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
yann@1
   327
+#else
yann@1
   328
+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
yann@1
   329
+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
yann@1
   330
+#endif
yann@1
   331
 #undef  LINK_SPEC
yann@1
   332
 #define LINK_SPEC \
yann@1
   333
   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
yann@1
   334
@@ -86,8 +93,8 @@ Software Foundation, 51 Franklin Street,
yann@1
   335
       %{!static: \
yann@1
   336
 	%{rdynamic:-export-dynamic} \
yann@1
   337
 	%{!dynamic-linker: \
yann@1
   338
-          %{m31:-dynamic-linker /lib/ld.so.1} \
yann@1
   339
-          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
yann@1
   340
+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
yann@1
   341
+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
yann@1
   342
 
yann@1
   343
 
yann@1
   344
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
yann@1
   345
--- gcc-4.1.0/gcc/config/sh/linux.h
yann@1
   346
+++ gcc-4.1.0/gcc/config/sh/linux.h
yann@1
   347
@@ -56,12 +56,21 @@ Boston, MA 02110-1301, USA.  */
yann@1
   348
 #undef SUBTARGET_LINK_EMUL_SUFFIX
yann@1
   349
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
yann@1
   350
 #undef SUBTARGET_LINK_SPEC
yann@1
   351
+#ifdef USE_UCLIBC
yann@1
   352
+#define SUBTARGET_LINK_SPEC \
yann@1
   353
+  "%{shared:-shared} \
yann@1
   354
+   %{!static: \
yann@1
   355
+     %{rdynamic:-export-dynamic} \
yann@1
   356
+     %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
yann@1
   357
+   %{static:-static}"
yann@1
   358
+#else
yann@1
   359
 #define SUBTARGET_LINK_SPEC \
yann@1
   360
   "%{shared:-shared} \
yann@1
   361
    %{!static: \
yann@1
   362
      %{rdynamic:-export-dynamic} \
yann@1
   363
      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
yann@1
   364
    %{static:-static}"
yann@1
   365
+#endif
yann@1
   366
 
yann@1
   367
 /* Output assembler code to STREAM to call the profiler.  */
yann@1
   368
 
yann@1
   369
--- gcc-4.1.0/gcc/config/sparc/linux.h
yann@1
   370
+++ gcc-4.1.0/gcc/config/sparc/linux.h
yann@1
   371
@@ -125,6 +125,11 @@ Boston, MA 02110-1301, USA.  */
yann@1
   372
 
yann@1
   373
 /* If ELF is the default format, we should not use /lib/elf.  */
yann@1
   374
 
yann@1
   375
+#ifdef USE_UCLIBC
yann@1
   376
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
yann@1
   377
+#else
yann@1
   378
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
yann@1
   379
+#endif
yann@1
   380
 #undef  LINK_SPEC
yann@1
   381
 #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
yann@1
   382
   %{!mno-relax:%{!r:-relax}} \
yann@1
   383
@@ -132,7 +137,7 @@ Boston, MA 02110-1301, USA.  */
yann@1
   384
     %{!ibcs: \
yann@1
   385
       %{!static: \
yann@1
   386
         %{rdynamic:-export-dynamic} \
yann@1
   387
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
yann@1
   388
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
yann@1
   389
         %{static:-static}}}"
yann@1
   390
 
yann@1
   391
 /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
yann@1
   392
--- gcc-4.1.0/gcc/config/sparc/linux64.h
yann@1
   393
+++ gcc-4.1.0/gcc/config/sparc/linux64.h
yann@1
   394
@@ -162,12 +162,17 @@ Boston, MA 02110-1301, USA.  */
yann@1
   395
   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
yann@1
   396
   { "link_arch",	 LINK_ARCH_SPEC },
yann@1
   397
     
yann@1
   398
+#ifdef USE_UCLIBC
yann@1
   399
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
yann@1
   400
+#else
yann@1
   401
+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
yann@1
   402
+#endif
yann@1
   403
 #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
yann@1
   404
   %{!shared: \
yann@1
   405
     %{!ibcs: \
yann@1
   406
       %{!static: \
yann@1
   407
         %{rdynamic:-export-dynamic} \
yann@1
   408
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
yann@1
   409
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
yann@1
   410
         %{static:-static}}} \
yann@1
   411
 "
yann@1
   412
 
yann@1
   413
--- gcc-4.1.0/libffi/configure
yann@1
   414
+++ gcc-4.1.0/libffi/configure
yann@1
   415
@@ -3457,6 +3457,11 @@ linux-gnu*)
yann@1
   416
   lt_cv_deplibs_check_method=pass_all
yann@1
   417
   ;;
yann@1
   418
 
yann@1
   419
+linux-uclibc*)
yann@1
   420
+  lt_cv_deplibs_check_method=pass_all
yann@1
   421
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
yann@1
   422
+  ;;
yann@1
   423
+
yann@1
   424
 netbsd* | knetbsd*-gnu)
yann@1
   425
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
yann@1
   426
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
yann@1
   427
--- gcc-4.1.0/libgfortran/configure
yann@1
   428
+++ gcc-4.1.0/libgfortran/configure
yann@1
   429
@@ -3699,6 +3699,11 @@ linux-gnu*)
yann@1
   430
   lt_cv_deplibs_check_method=pass_all
yann@1
   431
   ;;
yann@1
   432
 
yann@1
   433
+linux-uclibc*)
yann@1
   434
+  lt_cv_deplibs_check_method=pass_all
yann@1
   435
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
yann@1
   436
+  ;;
yann@1
   437
+
yann@1
   438
 netbsd* | knetbsd*-gnu)
yann@1
   439
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
yann@1
   440
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
yann@1
   441
--- gcc-4.1.0/libjava/configure
yann@1
   442
+++ gcc-4.1.0/libjava/configure
yann@1
   443
@@ -5137,6 +5137,11 @@ linux-gnu*)
yann@1
   444
   lt_cv_deplibs_check_method=pass_all
yann@1
   445
   ;;
yann@1
   446
 
yann@1
   447
+linux-uclibc*)
yann@1
   448
+  lt_cv_deplibs_check_method=pass_all
yann@1
   449
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
yann@1
   450
+  ;;
yann@1
   451
+
yann@1
   452
 netbsd* | knetbsd*-gnu)
yann@1
   453
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
yann@1
   454
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
yann@1
   455
--- gcc-4.1.0/libmudflap/configure
yann@1
   456
+++ gcc-4.1.0/libmudflap/configure
yann@1
   457
@@ -5382,6 +5382,11 @@ linux-gnu*)
yann@1
   458
   lt_cv_deplibs_check_method=pass_all
yann@1
   459
   ;;
yann@1
   460
 
yann@1
   461
+linux-uclibc*)
yann@1
   462
+  lt_cv_deplibs_check_method=pass_all
yann@1
   463
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
yann@1
   464
+  ;;
yann@1
   465
+
yann@1
   466
 netbsd* | knetbsd*-gnu)
yann@1
   467
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
yann@1
   468
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
yann@1
   469
--- gcc-4.1.0/libobjc/configure
yann@1
   470
+++ gcc-4.1.0/libobjc/configure
yann@1
   471
@@ -3312,6 +3312,11 @@ linux-gnu*)
yann@1
   472
   lt_cv_deplibs_check_method=pass_all
yann@1
   473
   ;;
yann@1
   474
 
yann@1
   475
+linux-uclibc*)
yann@1
   476
+  lt_cv_deplibs_check_method=pass_all
yann@1
   477
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
yann@1
   478
+  ;;
yann@1
   479
+
yann@1
   480
 netbsd* | knetbsd*-gnu)
yann@1
   481
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
yann@1
   482
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
yann@1
   483
--- gcc-4.1.0/libtool.m4
yann@1
   484
+++ gcc-4.1.0/libtool.m4
yann@1
   485
@@ -743,6 +743,11 @@ linux-gnu*)
yann@1
   486
   lt_cv_deplibs_check_method=pass_all
yann@1
   487
   ;;
yann@1
   488
 
yann@1
   489
+linux-uclibc*)
yann@1
   490
+  lt_cv_deplibs_check_method=pass_all
yann@1
   491
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
yann@1
   492
+  ;;
yann@1
   493
+
yann@1
   494
 netbsd* | knetbsd*-gnu)
yann@1
   495
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
yann@1
   496
     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
yann@1
   497
--- gcc-4.1.0/ltconfig
yann@1
   498
+++ gcc-4.1.0/ltconfig
yann@1
   499
@@ -603,6 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
yann@1
   500
 
yann@1
   501
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
yann@1
   502
 case $host_os in
yann@1
   503
+linux-uclibc*) ;;
yann@1
   504
 linux-gnu*) ;;
yann@1
   505
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
yann@1
   506
 esac
yann@1
   507
@@ -1274,6 +1275,23 @@ linux-gnu*)
yann@1
   508
   dynamic_linker='GNU/Linux ld.so'
yann@1
   509
   ;;
yann@1
   510
 
yann@1
   511
+linux-uclibc*)
yann@1
   512
+  version_type=linux
yann@1
   513
+  need_lib_prefix=no
yann@1
   514
+  need_version=no
yann@1
   515
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
yann@1
   516
+  soname_spec='${libname}${release}.so$major'
yann@1
   517
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
yann@1
   518
+  shlibpath_var=LD_LIBRARY_PATH
yann@1
   519
+  shlibpath_overrides_runpath=no
yann@1
   520
+  # This implies no fast_install, which is unacceptable.
yann@1
   521
+  # Some rework will be needed to allow for fast_install
yann@1
   522
+  # before this can be enabled.
yann@1
   523
+  hardcode_into_libs=yes
yann@1
   524
+  # Assume using the uClibc dynamic linker.
yann@1
   525
+  dynamic_linker="uClibc ld.so"
yann@1
   526
+  ;;
yann@1
   527
+
yann@1
   528
 netbsd*)
yann@1
   529
   need_lib_prefix=no
yann@1
   530
   need_version=no
yann@1
   531
--- gcc-4.1.0/zlib/configure
yann@1
   532
+++ gcc-4.1.0/zlib/configure
yann@1
   533
@@ -3426,6 +3426,11 @@ linux-gnu*)
yann@1
   534
   lt_cv_deplibs_check_method=pass_all
yann@1
   535
   ;;
yann@1
   536
 
yann@1
   537
+linux-uclibc*)
yann@1
   538
+  lt_cv_deplibs_check_method=pass_all
yann@1
   539
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
yann@1
   540
+  ;;
yann@1
   541
+
yann@1
   542
 netbsd* | knetbsd*-gnu)
yann@1
   543
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
yann@1
   544
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'