diff options
Diffstat (limited to 'packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch')
-rw-r--r-- | packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch b/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch new file mode 100644 index 0000000000..4e2b5667ff --- /dev/null +++ b/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch @@ -0,0 +1,251 @@ +--- + gcc/Makefile.in | 25 ++++++++++++++++--------- + gcc/configure | 22 ++++++++++++++++++---- + gcc/configure.ac | 15 ++++++++++++--- + gcc/gcc.c | 9 +++++++++ + 4 files changed, 55 insertions(+), 16 deletions(-) + +Index: gcc-3.4.4/gcc/configure.ac +=================================================================== +--- gcc-3.4.4.orig/gcc/configure.ac 2008-07-23 23:53:04.000000000 -0700 ++++ gcc-3.4.4/gcc/configure.ac 2008-07-23 23:53:05.000000000 -0700 +@@ -567,6 +567,10 @@ AC_ARG_ENABLE(shared, + ], [enable_shared=yes]) + AC_SUBST(enable_shared) + ++AC_ARG_WITH(build-sysroot, ++ [ --with-build-sysroot=sysroot ++ use sysroot as the system root during the build]) ++ + AC_ARG_WITH(sysroot, + [ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.], + [ +@@ -577,6 +581,11 @@ AC_ARG_WITH(sysroot, + + TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' + CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)' ++ if test "x$with_build_sysroot" != x; then ++ build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)' ++ else ++ build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)' ++ fi + + if test "x$exec_prefix" = xNONE; then + if test "x$prefix" = xNONE; then +@@ -1453,7 +1462,7 @@ if test x$host != x$target + then + CROSS="-DCROSS_COMPILE" + ALL=all.cross +- SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)' ++ SYSTEM_HEADER_DIR=$build_system_header_dir + case "$host","$target" in + # Darwin crosses can use the host system's libraries and headers, + # because of the fat library support. Of course, it must be the +@@ -1487,11 +1496,11 @@ fi + # then define inhibit_libc in LIBGCC2_CFLAGS. + # This prevents libgcc2 from containing any code which requires libc + # support. +-inhibit_libc= ++inhibit_libc=false + if { { test x$host != x$target && test "x$with_sysroot" = x ; } || + test x$with_newlib = xyes ; } && + { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then +- inhibit_libc=-Dinhibit_libc ++ inhibit_libc=true + fi + AC_SUBST(inhibit_libc) + +Index: gcc-3.4.4/gcc/Makefile.in +=================================================================== +--- gcc-3.4.4.orig/gcc/Makefile.in 2005-02-24 01:26:57.000000000 -0800 ++++ gcc-3.4.4/gcc/Makefile.in 2008-07-24 00:08:18.000000000 -0700 +@@ -291,7 +291,7 @@ GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./x + # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET. + # It omits XCFLAGS, and specifies -B./. + # It also specifies -isystem ./include to find, e.g., stddef.h. +-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS) ++GCC_CFLAGS=$(CFLAGS_FOR_TARGET) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS) + + # --------------------------------------------------- + # Programs which produce files for the target machine +@@ -485,10 +485,17 @@ GGC_LIB= + LIBGCC = libgcc.a + INSTALL_LIBGCC = install-libgcc + ++# "true" if the target C library headers are unavailable; "false" ++# otherwise. ++inhibit_libc = @inhibit_libc@ ++ifeq ($(inhibit_libc),true) ++INHIBIT_LIBC_CFLAGS = -Dinhibit_libc ++endif ++ + # Options to use when compiling libgcc2.a. + # + LIBGCC2_DEBUG_CFLAGS = -g +-LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@ ++LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED $(INHIBIT_LIBC_CFLAGS) + + # Additional options to use when compiling libgcc2.a. + # Some targets override this to -isystem include +@@ -500,7 +507,7 @@ TARGET_LIBGCC2_CFLAGS = + # Options to use when compiling crtbegin/end. + CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ + -finhibit-size-directive -fno-inline-functions -fno-exceptions \ +- -fno-zero-initialized-in-bss -fno-unit-at-a-time ++ -fno-zero-initialized-in-bss -fno-unit-at-a-time $(INHIBIT_LIBC_CFLAGS) + + # Additional sources to handle exceptions; overridden by targets as needed. + LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ +@@ -1247,33 +1254,33 @@ stmp-multilib: $(LIBGCC_DEPS) + $(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ + gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H) + $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \ +- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN \ ++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN \ + -o $(T)crtbegin$(objext) + + $(T)crtend.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ + gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H) + $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \ +- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_END \ ++ -c $(srcdir)/crtstuff.c -DCRT_END \ + -o $(T)crtend$(objext) + + # These are versions of crtbegin and crtend for shared libraries. + $(T)crtbeginS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ + gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H) + $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \ +- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \ ++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \ + -o $(T)crtbeginS$(objext) + + $(T)crtendS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ + gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H) + $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \ +- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \ ++ -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \ + -o $(T)crtendS$(objext) + + # This is a version of crtbegin for -static links. + $(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \ + gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H) + $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \ +- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \ ++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \ + -o $(T)crtbeginT$(objext) + + # Compile the start modules crt0.o and mcrt0.o that are linked with +@@ -2542,7 +2549,7 @@ install-gcc-tooldir: + + # Build fixed copies of system files. + stmp-fixinc: fixinc.sh gsyslimits.h +- @if test ! -d ${SYSTEM_HEADER_DIR}; then \ ++ @if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \ + echo The directory that should contain system headers does not exist: >&2 ; \ + echo " ${SYSTEM_HEADER_DIR}" >&2 ; \ + if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \ +Index: gcc-3.4.4/gcc/gcc.c +=================================================================== +--- gcc-3.4.4.orig/gcc/gcc.c 2005-05-01 03:33:14.000000000 -0700 ++++ gcc-3.4.4/gcc/gcc.c 2008-07-23 23:53:05.000000000 -0700 +@@ -1069,6 +1069,7 @@ static const struct option_map option_ma + {"--static", "-static", 0}, + {"--std", "-std=", "aj"}, + {"--symbolic", "-symbolic", 0}, ++ {"--sysroot", "--sysroot=", "aj"}, + {"--time", "-time", 0}, + {"--trace-includes", "-H", 0}, + {"--traditional", "-traditional", 0}, +@@ -3016,6 +3017,9 @@ display_help (void) + fputs (_(" -time Time the execution of each subprocess\n"), stdout); + fputs (_(" -specs=<file> Override built-in specs with the contents of <file>\n"), stdout); + fputs (_(" -std=<standard> Assume that the input sources are for <standard>\n"), stdout); ++ fputs (_("\ ++ --sysroot=<directory> Use <directory> as the root directory for headers\n\ ++ for headers and libraries\n"), stdout); + fputs (_(" -B <directory> Add <directory> to the compiler's search paths\n"), stdout); + fputs (_(" -b <machine> Run gcc for target <machine>, if installed\n"), stdout); + fputs (_(" -V <version> Run gcc version number <version>, if installed\n"), stdout); +@@ -3884,6 +3888,11 @@ warranty; not even for MERCHANTABILITY o + ; + else if (! strcmp (argv[i], "-fhelp")) + ; ++ else if (! strncmp (argv[i], "--sysroot=", strlen ("--sysroot="))) ++ { ++ target_system_root = argv[i] + strlen ("--sysroot="); ++ target_system_root_changed = 1; ++ } + else if (argv[i][0] == '+' && argv[i][1] == 'e') + { + /* Compensate for the +e options to the C++ front-end; +Index: gcc-3.4.4/gcc/configure +=================================================================== +--- gcc-3.4.4.orig/gcc/configure 2008-07-23 23:53:04.000000000 -0700 ++++ gcc-3.4.4/gcc/configure 2008-07-23 23:53:05.000000000 -0700 +@@ -907,6 +907,8 @@ Optional Packages: + --with-as arrange to use the specified as (full pathname) + --with-stabs arrange to use stabs instead of host debug format + --with-dwarf2 force the default debug format to be DWARF 2 ++ --with-build-sysroot=sysroot ++ use sysroot as the system root during the build + --with-sysroot=DIR Search for usr/lib, usr/include, et al, within DIR. + --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib + --with-system-libunwind use installed libunwind +@@ -4756,6 +4758,13 @@ fi; + + + ++# Check whether --with-build-sysroot or --without-build-sysroot was given. ++if test "${with_build_sysroot+set}" = set; then ++ withval="$with_build_sysroot" ++ ++fi; ++ ++ + # Check whether --with-sysroot or --without-sysroot was given. + if test "${with_sysroot+set}" = set; then + withval="$with_sysroot" +@@ -4767,6 +4776,11 @@ if test "${with_sysroot+set}" = set; the + + TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' + CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)' ++ if test "x$with_build_sysroot" != x; then ++ build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)' ++ else ++ build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)' ++ fi + + if test "x$exec_prefix" = xNONE; then + if test "x$prefix" = xNONE; then +@@ -5229,7 +5243,7 @@ if test "${gcc_cv_prog_makeinfo_modern+s + else + ac_prog_version=`$MAKEINFO --version 2>&1 | + sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` +- echo "configure:5232: version of makeinfo is $ac_prog_version" >&5 ++ echo "configure:5246: version of makeinfo is $ac_prog_version" >&5 + case $ac_prog_version in + '') gcc_cv_prog_makeinfo_modern=no;; + 4.[2-9]*) +@@ -9845,7 +9859,7 @@ if test x$host != x$target + then + CROSS="-DCROSS_COMPILE" + ALL=all.cross +- SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)' ++ SYSTEM_HEADER_DIR=$build_system_header_dir + case "$host","$target" in + # Darwin crosses can use the host system's libraries and headers, + # because of the fat library support. Of course, it must be the +@@ -9879,11 +9893,11 @@ fi + # then define inhibit_libc in LIBGCC2_CFLAGS. + # This prevents libgcc2 from containing any code which requires libc + # support. +-inhibit_libc= ++inhibit_libc=false + if { { test x$host != x$target && test "x$with_sysroot" = x ; } || + test x$with_newlib = xyes ; } && + { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then +- inhibit_libc=-Dinhibit_libc ++ inhibit_libc=true + fi + + |