···11-source $stdenv/setup
22-33-44-export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
55-mkdir $NIX_FIXINC_DUMMY
66-77-88-if test "$noSysDirs" = "1"; then
99-1010- if test -e $NIX_CC/nix-support/orig-libc; then
1111-1212- # Figure out what extra flags to pass to the gcc compilers
1313- # being generated to make sure that they use our glibc.
1414- extraCFlags="$(cat $NIX_CC/nix-support/libc-cflags)"
1515- extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags) $(cat $NIX_CC/nix-support/libc-ldflags-before)"
1616-1717- # Use *real* header files, otherwise a limits.h is generated
1818- # that does not include Glibc's limits.h (notably missing
1919- # SSIZE_MAX, which breaks the build).
2020- export NIX_FIXINC_DUMMY=$(cat $NIX_CC/nix-support/orig-libc)/include
2121-2222- else
2323- # Hack: support impure environments.
2424- extraCFlags="-isystem /usr/include"
2525- extraLDFlags="-L/usr/lib64 -L/usr/lib"
2626- export NIX_FIXINC_DUMMY=/usr/include
2727- fi
2828-2929- export NIX_EXTRA_CFLAGS=$extraCFlags
3030- for i in $extraLDFlags; do
3131- export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
3232- done
3333- export CFLAGS=$extraCFlags
3434- export CXXFLAGS=$extraCFlags
3535-fi
3636-3737-3838-preConfigure() {
3939- # Perform the build in a different directory.
4040- mkdir ../build
4141- cd ../build
4242- configureScript=../$sourceRoot/configure
4343-}
4444-4545-4646-postInstall() {
4747- # Remove precompiled headers for now. They are very big and
4848- # probably not very useful yet.
4949- find $out/include -name "*.gch" -exec rm -rf {} \; -prune
5050-5151- # Remove `fixincl' to prevent a retained dependency on the
5252- # previous gcc.
5353- rm -rf $out/libexec/gcc/*/*/install-tools
5454-}
5555-5656-5757-if test -z "$profiledCompiler"; then
5858- buildFlags="bootstrap $buildFlags"
5959-else
6060- buildFlags="profiledbootstrap $buildFlags"
6161-fi
6262-6363-genericBuild
···11-diff -rc gcc-orig/gcc/cppdefault.c gcc-patched/gcc/cppdefault.c
22-*** gcc-orig/gcc/cppdefault.c 2003-03-01 15:31:12.000000000 +0100
33---- gcc-patched/gcc/cppdefault.c 2004-06-29 10:08:45.000000000 +0200
44-***************
55-*** 41,46 ****
66---- 41,50 ----
77- # undef CROSS_INCLUDE_DIR
88- #endif
99-1010-+ #undef LOCAL_INCLUDE_DIR
1111-+ #undef SYSTEM_INCLUDE_DIR
1212-+ #undef STANDARD_INCLUDE_DIR
1313-+
1414- const struct default_include cpp_include_defaults[]
1515- #ifdef INCLUDE_DEFAULTS
1616- = INCLUDE_DEFAULTS;
1717-diff -rc gcc-orig/gcc/Makefile.in gcc-patched/gcc/Makefile.in
1818-*** gcc-orig/gcc/Makefile.in 2004-04-01 18:47:54.000000000 +0200
1919---- gcc-patched/gcc/Makefile.in 2004-06-29 13:50:45.000000000 +0200
2020-***************
2121-*** 199,205 ****
2222- CPPFLAGS = @CPPFLAGS@
2323-2424- # These exists to be overridden by the x-* and t-* files, respectively.
2525-! X_CFLAGS =
2626- T_CFLAGS =
2727-2828- X_CPPFLAGS =
2929---- 199,205 ----
3030- CPPFLAGS = @CPPFLAGS@
3131-3232- # These exists to be overridden by the x-* and t-* files, respectively.
3333-! X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
3434- T_CFLAGS =
3535-3636- X_CPPFLAGS =
3737-***************
3838-*** 345,351 ****
3939- PARTITION_H = $(srcdir)/../include/partition.h
4040-4141- # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
4242-! NATIVE_SYSTEM_HEADER_DIR = /usr/include
4343- # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
4444- CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
4545-4646---- 345,355 ----
4747- PARTITION_H = $(srcdir)/../include/partition.h
4848-4949- # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
5050-! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
5151-! # `fixinc' from fixing header files in /usr/include. However,
5252-! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
5353-! # it to some dummy directory.
5454-! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
5555- # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
5656- CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
5757-5858-diff -rc gcc-orig/libstdc++-v3/include/Makefile.in gcc-patched/libstdc++-v3/include/Makefile.in
5959-*** gcc-orig/libstdc++-v3/include/Makefile.in 2004-03-18 18:36:43.000000000 +0100
6060---- gcc-patched/libstdc++-v3/include/Makefile.in 2004-06-29 19:01:33.000000000 +0200
6161-***************
6262-*** 896,903 ****
6363- if [ ! -d "${pch_output_builddir}" ]; then \
6464- mkdir -p ${pch_output_builddir}; \
6565- fi; \
6666-! $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g; \
6767-! $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g;
6868-6969- # For robustness sake (in light of junk files or in-source
7070- # configuration), copy from the build or source tree to the install
7171---- 896,903 ----
7272- if [ ! -d "${pch_output_builddir}" ]; then \
7373- mkdir -p ${pch_output_builddir}; \
7474- fi; \
7575-! $(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g; \
7676-! $(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g;
7777-7878- # For robustness sake (in light of junk files or in-source
7979- # configuration), copy from the build or source tree to the install
8080-diff -rc gcc-orig/ltcf-cxx.sh gcc-patched/ltcf-cxx.sh
8181-*** gcc-orig/ltcf-cxx.sh 2003-11-19 06:29:32.000000000 +0100
8282---- gcc-patched/ltcf-cxx.sh 2004-06-29 15:26:01.000000000 +0200
8383-***************
8484-*** 985,991 ****
8585- # the conftest object file.
8686- pre_test_object_deps_done=no
8787-8888-! for p in `eval $output_verbose_link_cmd`; do
8989-9090- case $p in
9191-9292---- 985,991 ----
9393- # the conftest object file.
9494- pre_test_object_deps_done=no
9595-9696-! for p in `true`; do
9797-9898- case $p in
9999-100100-diff -rc gcc-orig/Makefile.in gcc-patched/Makefile.in
101101-*** gcc-orig/Makefile.in 2004-01-14 21:09:37.000000000 +0100
102102---- gcc-patched/Makefile.in 2004-06-29 16:21:36.000000000 +0200
103103-***************
104104-*** 228,234 ****
105105- NM = @NM@
106106-107107- LD = @LD@
108108-! LDFLAGS =
109109-110110- RANLIB = @RANLIB@
111111-112112---- 228,234 ----
113113- NM = @NM@
114114-115115- LD = @LD@
116116-! LDFLAGS = $(NIX_EXTRA_LDFLAGS)
117117-118118- RANLIB = @RANLIB@
119119-120120-***************
121121-*** 277,283 ****
122122- # CFLAGS will be just -g. We want to ensure that TARGET libraries
123123- # (which we know are built with gcc) are built with optimizations so
124124- # prepend -O2 when setting CFLAGS_FOR_TARGET.
125125-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
126126- # If GCC_FOR_TARGET is not overriden on the command line, then this
127127- # variable is passed down to the gcc Makefile, where it is used to
128128- # build libgcc2.a. We define it here so that it can itself be
129129---- 277,283 ----
130130- # CFLAGS will be just -g. We want to ensure that TARGET libraries
131131- # (which we know are built with gcc) are built with optimizations so
132132- # prepend -O2 when setting CFLAGS_FOR_TARGET.
133133-! CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(NIX_EXTRA_CFLAGS)
134134- # If GCC_FOR_TARGET is not overriden on the command line, then this
135135- # variable is passed down to the gcc Makefile, where it is used to
136136- # build libgcc2.a. We define it here so that it can itself be
137137-***************
138138-*** 290,296 ****
139139- RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
140140- CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
141141- RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
142142-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
143143- LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
144144-145145- DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
146146---- 290,296 ----
147147- RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
148148- CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
149149- RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
150150-! CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(NIX_EXTRA_CFLAGS)
151151- LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
152152-153153- DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
154154-***************
155155-*** 321,327 ****
156156- fi; \
157157- fi`
158158-159159-! LDFLAGS_FOR_TARGET =
160160-161161- NM_FOR_TARGET=@NM_FOR_TARGET@
162162- USUAL_NM_FOR_TARGET = ` \
163163---- 321,327 ----
164164- fi; \
165165- fi`
166166-167167-! LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
168168-169169- NM_FOR_TARGET=@NM_FOR_TARGET@
170170- USUAL_NM_FOR_TARGET = ` \