Commit graph

93 commits

Author SHA1 Message Date
Eelco Dolstra 472a0d2057 * Pass -rpath flags in the same order as -L flags.
* Put the Glibc linker flags in front of the GCC linker flags.  Needed
  for the stdenv-linux bootstrap.

svn path=/nixpkgs/branches/stdenv-updates/; revision=13940
2009-02-01 21:26:28 +00:00
Eelco Dolstra 72822ebbc0 * Put Glibc at the very end of the GCC header search path. This
should fix previous problems with GCC 4.3 in compiling C++ code
  where e.g. <cassert> has to appear before <assert.h> in the search
  path due to the former's use of #include_next.  The previous "fix"
  broke compilation of C code by placing the C++ include directory
  before the Glibc include directory (which would barf on
  e.g. <complex.h>, which appears in both).

svn path=/nixpkgs/branches/stdenv-updates/; revision=13806
2009-01-19 16:22:27 +00:00
Eelco Dolstra 69b538fde3 * gcc-wrapper-new -> gcc-wrapper, setup-new -> setup.
svn path=/nixpkgs/branches/stdenv-updates/; revision=12991
2008-10-07 17:33:20 +00:00
Eelco Dolstra 76e8254689 svn path=/nixpkgs/branches/stdenv-updates/; revision=12990 2008-10-07 17:03:52 +00:00
Eelco Dolstra 7bf0c5ba01 * Folded the Cygwin, powerpc-darwin and FreeBSD stdenv into the "native"
stdenv.

svn path=/nixpkgs/trunk/; revision=12147
2008-06-18 15:09:13 +00:00
Eelco Dolstra 89815eb9a0 * gcc-wrapper: Propagate the wrapped gcc, binutils and glibc to the
user environment.  (NIXPKGS-63)

svn path=/nixpkgs/branches/stdenv-updates/; revision=10664
2008-02-13 19:41:37 +00:00
Eelco Dolstra 5f45fb3ae9 * substitute() in stdenv: use the replace program instead of awful
sed hackery.
* Some indentation fixes in setup.sh.

svn path=/nixpkgs/branches/stdenv-updates/; revision=10658
2008-02-13 14:23:09 +00:00
Eelco Dolstra 13567556bf * Give the real GCC a lower priority than the GCC wrapper so that both
can be installed in a user environment without conflict.  This is
  useful if you need gcov (which isn't symlinked in the GCC wrapper).

svn path=/nixpkgs/trunk/; revision=8809
2007-05-31 13:00:49 +00:00
Eelco Dolstra 37aa92faec * Merge gcc-wrapper-new.
svn path=/nixpkgs/trunk/; revision=8758
2007-05-24 15:35:14 +00:00
Eelco Dolstra d3b29d16a0 * wrapGCC: pass the right purity options for the platform.
svn path=/nixpkgs/trunk/; revision=8710
2007-05-16 15:15:46 +00:00
Eelco Dolstra 138c0ae751 * Merge the new generic builder.
* Removed substitute, it's part of the generic builder now.
* stdenv-initial (Linux): use the real generic builder script.  This
  does require that sed is in the path of the builder of the initial
  stdenv.

svn path=/nixpkgs/trunk/; revision=7498
2006-12-27 18:14:57 +00:00
Eelco Dolstra ee2b63c872 * Argggggghhhh.
svn path=/nixpkgs/trunk/; revision=6872
2006-10-27 12:07:03 +00:00
Eelco Dolstra 29961dbb85 * Doh.
svn path=/nixpkgs/trunk/; revision=6866
2006-10-26 22:40:44 +00:00
Eelco Dolstra c8cc992038 * Put a symlink to the assembler in the GCC wrapper. Otherwise, when
we use the GCC wrapper in a user environment, the wrong assembler
  will be called.  This is not usually a problem, but sometimes it is
  (e.g., when using G++ 4.1.1 with binutils 2.16 or so).

svn path=/nixpkgs/trunk/; revision=6862
2006-10-26 20:25:31 +00:00
Eelco Dolstra fd2b826b17 * Add -B$gcc/lib64 when appropriate. This is so that configure
(calling gcc -print-search-dirs) builds a libtool that searches in
  lib64 for libstdc++.so.

svn path=/nixpkgs/trunk/; revision=6850
2006-10-25 16:32:13 +00:00
Eelco Dolstra b342dcb13b * gcc-wrapper: separately store the flags necessary to find GCC and
Glibc.  This is useful when building GCC.
* gcc-wrapper: the dynamic linker has a different name on x86_64 and
  powerpc.
* gcc-wrapper: "glibc" -> "libc", because someday we might support
  different C libraries.
* gcc: don't do a multilib build (e.g., 32-bit support on x86_64),
  don't need it.
* gcc: merge in support for static builds.
* gcc: various simplifications in the compiler/linker flags, hope they
  work.

svn path=/nixpkgs/trunk/; revision=6823
2006-10-24 18:26:23 +00:00
Eelco Dolstra 361cf08c59 * Add $pkg/lib64 (if it exists) to the library search path in addition
to $pkg/lib.

svn path=/nixpkgs/trunk/; revision=6820
2006-10-24 13:50:21 +00:00
Eelco Dolstra bb28c87406 * Filter out the meta attribute.
svn path=/nixpkgs/trunk/; revision=5091
2006-03-24 14:20:31 +00:00
Eelco Dolstra baec8f5b38 * stdenv.mkDerivation now takes an optional attribute "meta" that
contains arbitrary information about a package, like this:

  meta = {
    homepage = "http://gcc.gnu.org/";
    license = "GPL/LGPL";
    description = "GNU Compiler Collection, 4.0.x";
  };

  The "meta" attribute is not passed to the actual derivation
  operation, so it's not a dependency --- changes to "meta" attributes
  don't trigger a recompilation.

  Now we have to standardise some useful attributes ;-)

svn path=/nixpkgs/branches/usability/; revision=5024
2006-03-10 16:12:46 +00:00
Eelco Dolstra ded942b341 * Make sure that `gcc -v' (i.e., with no other arguments) does the
right thing.  This is necessary to make libtool detect g++
  properly.  (Fixes the `libtool: compile: unable to infer tagged
  configuration' error on FreeBSD when building Berkeley DB 4.4.)

svn path=/nixpkgs/trunk/; revision=4370
2005-12-15 13:37:36 +00:00
Eelco Dolstra 82e678362f * "." -> "source".
svn path=/nixpkgs/trunk/; revision=4335
2005-12-05 14:11:09 +00:00
Eelco Dolstra 6f8e9bc2f6 * Make the grep call optional.
svn path=/nixpkgs/trunk/; revision=3330
2005-07-13 09:07:54 +00:00
Eelco Dolstra a85877edaf * r3317 was wrong: grep should be applied to gcc's stderr, not stdout.
svn path=/nixpkgs/trunk/; revision=3329
2005-07-13 08:45:57 +00:00
Eelco Dolstra 620d5b9d4a * Make gcc work properly again in nix-env installations (e.g., when
used outside of builders).

svn path=/nixpkgs/trunk/; revision=3317
2005-07-12 14:02:36 +00:00
Eelco Dolstra 9cc0ac9090 * Merge r3019.
svn path=/nixpkgs/trunk/; revision=3186
2005-06-17 09:23:15 +00:00
Eelco Dolstra 2e0380b7a0 * Use the generic substituter in the generation of stdenv and gcc-wrapper.
svn path=/nixpkgs/trunk/; revision=2269
2005-02-22 14:32:56 +00:00
Eelco Dolstra ecd2596677 * Do the generic sed thing for Glibc.
* Remove debug stuff from ld-wrapper.

svn path=/nixpkgs/trunk/; revision=2261
2005-02-21 17:57:53 +00:00
Eelco Dolstra e6744d0f89 * Merge diff between trunk/pkgs@1646 and branches/nixos-pkgs@2256;
this contains mostly Armijn's pure stdenv-linux.

* After unpacking the statically linked GCC, patch all store paths to
  /nix/store/ffffffffffffffffffffffffffffffff.  Ugly hack to prevent
  undeclared references but it works.

* We don't need Glib's dynamic libraries in the first bootstrap stage;
  delete them.  Actually the downloaded Glibc binary is only needed
  for building Glibc, since GCC needs a C compiler to build some
  programs in `configure'.  So static linking is fine for that.  Maybe
  it would be better to patch `configure' so that we don't need a
  pre-built Glibc at all.

* Set the svn:executable property on `cp' and `patchelf'.

* In Glibc, revert to LinuxThreads.  Maybe NPTL will work, but TLS
  support is a problem.

* Delete most Glibc patches; they're no longer needed since the branch
  updated it to 20050110.
  
* Some cleanups.

svn path=/nixpkgs/trunk/; revision=2258
2005-02-21 16:03:34 +00:00
Armijn Hemel 4b16211201 use new kernel headers
svn path=/nixpkgs/branches/nixos-pkgs/; revision=2053
2005-01-18 13:16:42 +00:00
Armijn Hemel aad382248f add modified gcc-wrapper
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1793
2004-11-22 16:36:27 +00:00
Eelco Dolstra 2bf90b3fbf * gcc-wrapper: inherit gcc's name by default.
* gcc: upgraded to 3.4.1.

  Zie je wel, Martin, gcc is niet eng :-)

svn path=/nixpkgs/trunk/; revision=1128
2004-07-05 12:00:19 +00:00
Eelco Dolstra 9c55897afc * Accept relative paths such as -I ..' (-I..' was already being
accepted).

svn path=/nixpkgs/trunk/; revision=924
2004-04-07 14:15:54 +00:00
Eelco Dolstra beaff0a892 * Ensure that when building gcc, libstdc++ is linked against the
libgcc of the gcc being built, not the gcc building it.
* Only include a directory in the rpath of an executable/library if it
  is actually used.  Before, the `/lib' directory of every build input
  was added to the rpath, causing many unnecessary retained
  dependencies.  For instance, Perl has a `/lib' directory, but most
  applications whose build process uses Perl don't actually link
  against Perl.  (Also added a test for this.)
* After building glibc, remove glibcbug, to prevent a retained
  dependency on gcc.
* Add a newline after `building X' in GNU Make.

svn path=/nixpkgs/trunk/; revision=911
2004-04-04 22:02:41 +00:00
Eelco Dolstra 1550034ac4 * Various bug fixes in setup.sh and ld-wrapper.sh.
svn path=/nixpkgs/trunk/; revision=909
2004-04-02 17:49:44 +00:00
Eelco Dolstra 01a1658c6b * Finally we have a working stdenvLinux again.
On the downside, the build process of stdenvLinux builds gcc 9 times
  (3 x 3 bootstrap stages).  That's a bit excessive.

svn path=/nixpkgs/trunk/; revision=880
2004-03-30 12:46:52 +00:00
Eelco Dolstra 8ed9ea8b51 * Use a Nix shell for gcc-wrapper and ld-wrapper.
svn path=/nixpkgs/trunk/; revision=875
2004-03-29 17:34:00 +00:00
Eelco Dolstra 12ae5363ea * Remove trivial builders.
* Make builders unexecutable by removing the hash-bang line and
  execute permission.
* Convert calls to `derivation' to `mkDerivation'.
* Remove `system' and `stdenv' attributes from calls to
  `mkDerivation'.  These transformations were all done automatically,
  so it is quite possible I broke stuff.
* Put the `mkDerivation' function in stdenv/generic.

svn path=/nixpkgs/trunk/; revision=874
2004-03-29 17:23:01 +00:00
Eelco Dolstra 0fd59fd7a4 * Re-enabled purity checking: it should work now. First we only
checked whether absolute paths passed to gcc/ld refer to the store,
  which is wrong: they can also refer to the build tree
  (/tmp/nix-...).

* Less static composition in the construction of stdenv-nix-linux:
  gcc-wrapper and generic are now passed in as arguments, rather then
  referenced by relative path.  This makes it easier to hack on a
  specific stage of the bootstrap process (before, a change to, e.g.,
  generic/setup.sh would cause all bootstrap stages to be redone).

svn path=/nixpkgs/trunk/; revision=833
2004-03-12 11:12:18 +00:00
Eelco Dolstra de13527000 * Finally got stdenv-nix-linux working again. Still not perfect,
though.
* libxml2: upgrade to latest.
* octavefront/rna: keep debug info.

svn path=/nixpkgs/trunk/; revision=830
2004-03-11 17:26:14 +00:00
Eelco Dolstra b8b4f9ce4b * Reject inputs outside of the store in ld if NIX_ENFORCE_PURITY is
set.
* Various bug fixes.

svn path=/nixpkgs/trunk/; revision=824
2004-03-09 17:08:41 +00:00
Eelco Dolstra 5c5db47443 * Set a flag to indicate whether we're doing a native build.
svn path=/nixpkgs/trunk/; revision=821
2004-03-09 10:36:45 +00:00
Eelco Dolstra 946a2d4a48 * gcc-wrapper now filters out -L and -I flags referring to paths
outside the store (in pure builds).

svn path=/nixpkgs/trunk/; revision=817
2004-03-08 18:29:08 +00:00
Eelco Dolstra ce50734cf0 * Started reorganising stdenv:
- gcc/ld-wrappers have been factored out into a separate
    derivation.  This allows a working gcc to be installed in the user
    environment.  (Previously the Nix gcc didn't work because it
    needed a whole bunch of flags to point to glibc.)
    
  - Better modularity: packages can specify hooks into the setup
    scripts.  For instance, setup no longer knows about the
    PKG_CONFIG_PATH variable; pkgconfig can set it up instead.

  - gcc not longer depends on binutils.  This simplifies the bootstrap
    process.

svn path=/nixpkgs/trunk/; revision=816
2004-03-08 16:02:46 +00:00