b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | commit dcfc40358b5a3cae7320c17f8d1cebd5ad5540cd |
| 2 | Author: Felix Fietkau <nbd@openwrt.org> |
| 3 | Date: Sun Feb 12 20:25:47 2012 +0000 |
| 4 | |
| 5 | gcc 4.6: port over the missing patch 850-use_shared_libgcc.patch to prevent libgcc crap from leaking into every single binary |
| 6 | |
| 7 | SVN-Revision: 30486 |
| 8 | --- a/gcc/config/arm/linux-eabi.h |
| 9 | +++ b/gcc/config/arm/linux-eabi.h |
| 10 | @@ -132,10 +132,6 @@ |
| 11 | "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \ |
| 12 | LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC) |
| 13 | |
| 14 | -/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we |
| 15 | - do not use -lfloat. */ |
| 16 | -#undef LIBGCC_SPEC |
| 17 | - |
| 18 | /* Clear the instruction cache from `beg' to `end'. This is |
| 19 | implemented in lib1funcs.S, so ensure an error if this definition |
| 20 | is used. */ |
| 21 | --- a/gcc/config/linux.h |
| 22 | +++ b/gcc/config/linux.h |
| 23 | @@ -71,6 +71,10 @@ see the files COPYING3 and COPYING.RUNTI |
| 24 | builtin_version ("CRuntime_Musl"); \ |
| 25 | } while (0) |
| 26 | |
| 27 | +#ifndef LIBGCC_SPEC |
| 28 | +#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}" |
| 29 | +#endif |
| 30 | + |
| 31 | /* Determine which dynamic linker to use depending on whether GLIBC or |
| 32 | uClibc or Bionic or musl is the default C library and whether |
| 33 | -muclibc or -mglibc or -mbionic or -mmusl has been passed to change |
| 34 | --- a/libgcc/mkmap-symver.awk |
| 35 | +++ b/libgcc/mkmap-symver.awk |
| 36 | @@ -136,5 +136,5 @@ function output(lib) { |
| 37 | else if (inherit[lib]) |
| 38 | printf("} %s;\n", inherit[lib]); |
| 39 | else |
| 40 | - printf ("\n local:\n\t*;\n};\n"); |
| 41 | + printf ("\n\t*;\n};\n"); |
| 42 | } |
| 43 | --- a/gcc/config/rs6000/linux.h |
| 44 | +++ b/gcc/config/rs6000/linux.h |
| 45 | @@ -67,6 +67,9 @@ |
| 46 | #undef CPP_OS_DEFAULT_SPEC |
| 47 | #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)" |
| 48 | |
| 49 | +#undef LIBGCC_SPEC |
| 50 | +#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc" |
| 51 | + |
| 52 | #undef LINK_SHLIB_SPEC |
| 53 | #define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}} \ |
| 54 | %{static-pie:-static -pie --no-dynamic-linker -z text}" |