Submitted By: Robert Connolly (ashes) Date: 2006-06-24 Initial Package Version: 4.1.0 Upstream Status: Not submitted - LFS specific Origin: None Description: This patch is a replacement for the LFS gcc-specs patch. This patch adds --with-dynamic-linker= and --with-nostdinc to gcc/configure. --with-dynamic-linker= can point to glibc, uclibc, or whatever. diff -Naur gcc-4.1.0.orig/gcc/Makefile.in gcc-4.1.0/gcc/Makefile.in --- gcc-4.1.0.orig/gcc/Makefile.in 2006-02-16 15:23:24.000000000 +0000 +++ gcc-4.1.0/gcc/Makefile.in 2006-05-08 20:39:23.000000000 +0000 @@ -793,7 +793,7 @@ # This is the variable actually used when we compile. If you change this, # you probably want to update BUILD_CFLAGS in configure.ac -ALL_CFLAGS = $(X_CFLAGS) $(T_CFLAGS) \ +ALL_CFLAGS = $(X_CFLAGS) $(T_CFLAGS) @NOSTDINC@ \ $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@ # Likewise. Put INCLUDES at the beginning: this way, if some autoconf macro @@ -1611,7 +1611,8 @@ (SHLIB_LINK='$(SHLIB_LINK)' \ SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \ $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \ - $(DRIVER_DEFINES) \ + $(DRIVER_DEFINES) `if test -n "@DYNAMICLINKER@" ; then \ + echo -D__DYNAMIC_LINKER__=\"@DYNAMICLINKER@\" ; fi` \ -c $(srcdir)/gcc.c $(OUTPUT_OPTION)) gccspec.o: gccspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) diff -Naur gcc-4.1.0.orig/gcc/config/i386/linux.h gcc-4.1.0/gcc/config/i386/linux.h --- gcc-4.1.0.orig/gcc/config/i386/linux.h 2005-08-10 17:53:01.000000000 +0000 +++ gcc-4.1.0/gcc/config/i386/linux.h 2006-05-08 20:42:31.000000000 +0000 @@ -105,7 +105,11 @@ /* If ELF is the default format, we should not use /lib/elf. */ #define LINK_EMULATION "elf_i386" +#ifdef __DYNAMIC_LINKER__ +#define DYNAMIC_LINKER __DYNAMIC_LINKER__ +#else #define DYNAMIC_LINKER "/lib/ld-linux.so.2" +#endif #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ diff -Naur gcc-4.1.0.orig/gcc/config/linux.h gcc-4.1.0/gcc/config/linux.h --- gcc-4.1.0.orig/gcc/config/linux.h 2005-08-06 13:26:35.000000000 +0000 +++ gcc-4.1.0/gcc/config/linux.h 2006-05-08 20:43:06.000000000 +0000 @@ -104,3 +104,8 @@ #define TARGET_C99_FUNCTIONS 1 #define TARGET_POSIX_IO + +#ifdef NOSTDINC +#undef STANDARD_INCLUDE_DIR +#define STANDARD_INCLUDE_DIR 0 +#endif diff -Naur gcc-4.1.0.orig/gcc/configure gcc-4.1.0/gcc/configure --- gcc-4.1.0.orig/gcc/configure 2006-02-14 16:50:45.000000000 +0000 +++ gcc-4.1.0/gcc/configure 2006-05-08 20:51:37.000000000 +0000 @@ -935,6 +935,10 @@ with the compiler --with-system-zlib use installed libz --with-slibdir=DIR shared libraries in DIR LIBDIR + --with-dynamic-linker=PATH + specifies path to dynamic linker. + example: "/lib/ld-linux.so.2" + --with-nostdinc build gcc to ignore standard include directories Some influential environment variables: CC C compiler command @@ -4678,6 +4682,29 @@ #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF +# Check whether --with-dynamic-linker= was given. + +if test "${with_dynamic_linker+set}" = set; then + withval="$with_dynamic_linker" + case "${withval}" in +yes) { { echo "$as_me:$LINENO: error: bad value ${withval} given for dynamic linker" >&5 +echo "$as_me: error: bad value ${withval} given for dynamic linker" >&2;} + { (exit 1); exit 1; }; } ;; +no) ;; +*) DYNAMICLINKER=$withval ;; +esac +fi; + +# Check whether --with-nostdinc was given. + +if test "${with_nostdinc+set}" = set; then + withval="$with_nostdinc" + case "${withval}" in +yes) NOSTDINC="-DNOSTDINC" ;; +no) ;; +*) NOSTDINC="-DNOSTDINC" ;; +esac +fi; echo "$as_me:$LINENO: checking for long" >&5 echo $ECHO_N "checking for long... $ECHO_C" >&6 @@ -17240,6 +17267,8 @@ s,@TARGET_SYSTEM_ROOT_DEFINE@,$TARGET_SYSTEM_ROOT_DEFINE,;t t s,@CROSS_SYSTEM_HEADER_DIR@,$CROSS_SYSTEM_HEADER_DIR,;t t s,@onestep@,$onestep,;t t +s,@DYNAMICLINKER@,$DYNAMICLINKER,;t t +s,@NOSTDINC@,$NOSTDINC,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@AWK@,$AWK,;t t s,@LN_S@,$LN_S,;t t