Package: gcc-4.4 Version: 4.4.4-5 Severity: wishlist Tags: patch Here is a simple patch for your consideration that modifies the rules makefile for the gcc-4.4 package to allow an option to build statically when creating a cross compiler by passing the environment variable 'BUILD_STATIC=yes' on the command line to dpkg-buildpackage.
The rationale for providing the ability to compile a statically linked gcc-4.4 is to allow greater portability of that toolchain to environments other than the stock Debian environment in which the toolchain was built. This becomes especially interesting in the embedded world where cross compilers (such as ones that can be created in Debian) have long lifetimes and can be deployed to varied buildserver enviroments to support cross compiling software for target embedded systems. It removes the dependence on such things as having the exact correct version of GLIBC (and other libraries) installed on the buildserver and makes the toolchain standalone. A static toolchain also provides the ultimate in repeatablilty, since it does not depend on dynamically loadable modules that can change on the build system. I have tested this patch by using dpkg-buildpackage to build gcc-4.4 version 4.4.4-7. The resulting binaries were not dynamic. I have also submitted a similar patch for the binutils-2.20.51.20100710-2 package when compiling cross tools. -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages gcc-4.4 depends on: ii binutils 2.20.1-11 The GNU assembler, linker and bina ii cpp-4.4 4.4.4-5 The GNU C preprocessor ii gcc-4.4-base 4.4.4-5 The GNU Compiler Collection (base ii libc6 2.11.2-2 Embedded GNU C Library: Shared lib ii libgcc1 1:4.4.4-5 GCC support library ii libgomp1 4.4.4-5 GCC OpenMP (GOMP) support library Versions of packages gcc-4.4 recommends: ii libc6-dev 2.11.2-2 Embedded GNU C Library: Developmen Versions of packages gcc-4.4 suggests: pn gcc-4.4-doc <none> (no description available) pn gcc-4.4-locales <none> (no description available) pn gcc-4.4-multilib <none> (no description available) ii libcloog-ppl0 0.15.9-1 the Chunky Loop Generator (runtime pn libgcc1-dbg <none> (no description available) pn libgomp1-dbg <none> (no description available) pn libmudflap0-4.4-dev <none> (no description available) pn libmudflap0-dbg <none> (no description available) ii libppl-c2 0.10.2-6 Parma Polyhedra Library (C interfa ii libppl7 0.10.2-6 Parma Polyhedra Library (runtime l -- no debconf information
--- gcc-4.4-4.4.4/debian/rules2.orig 2010-07-22 16:20:30.000000000 -0400 +++ gcc-4.4-4.4.4/debian/rules2 2010-07-22 15:29:15.000000000 -0400 @@ -119,6 +119,10 @@ CFLAGS = -g -O2 endif +ifeq ($(BUILD_STATIC),yes) + LDFLAGS += -static +endif + CFLAGS_TO_PASS = \ $(if $(CFLAGS),CFLAGS="$(CFLAGS)") \ $(if $(BOOT_CFLAGS),BOOT_CFLAGS="$(BOOT_CFLAGS)") \