Commit graph

77 commits

Author SHA1 Message Date
Lluís Batlle i Rossell e930a7385b Fix about the order of -rpath and -L in the ld-wrapper
svn path=/nixpkgs/branches/stdenv-updates/; revision=25128
2010-12-14 15:22:25 +00:00
Lluís Batlle i Rossell 195a90d7ce Fixing a bug in the ld-wrapper, where the dynamic-linker path was taken as a
path worth a "-rpath" entry.

This put a problem in the bootstrap, where we built 'zlib' and wanted to link programs with it, and while they got linked well, at runtime the boostrap-tools zlib came first on rpath becaue
the ld call was done with "-dynamic-linker ..." before "-lz".

I saw this trouble on the fuloong, where the zlib in boostrap-tools is not
runtime compatible with that binutils are linked to.

svn path=/nixpkgs/branches/stdenv-updates/; revision=25107
2010-12-13 22:46:21 +00:00
Lluís Batlle i Rossell 43930b36d9 I had changed the gcc-wrapper shell attribute, for it to be a specific kind of
derivation instead of a string, but this did not cover all use cases we had.
Instead of updating the use cases, I made the wrapper accept also a string.

We saw this problem trying to build gcc43_multi.


svn path=/nixpkgs/branches/stdenv-updates/; revision=25029
2010-12-07 15:18:05 +00:00
Lluís Batlle i Rossell 1b62c9c061 I made changes to achieve a working cross-built gcc wrapper. Now,
"gcc45.hostDrv" works in the host system, together with libc, binutils, dynamic
linker, ...


svn path=/nixpkgs/branches/stdenv-updates/; revision=24971
2010-12-04 21:45:37 +00:00
Lluís Batlle i Rossell 641f956581 Setting any stdenv.system references for the loongson2f system to 'mips64-linux'.
(my git-svn info:)
Merge branch 'mips64' into stdenv-updates

Conflicts:
	pkgs/applications/networking/browsers/firefox/3.6.nix
	pkgs/top-level/all-packages.nix

svn path=/nixpkgs/branches/stdenv-updates/; revision=23588
2010-09-01 09:50:12 +00:00
Lluís Batlle i Rossell 40405d03ac Trying to add the fuloong2f for bootstrap-files. It bootstraps fine
(boostrap-files cross-built)

svn path=/nixpkgs/branches/stdenv-updates/; revision=22849
2010-08-01 21:22:51 +00:00
Lluís Batlle i Rossell bd9c968158 Removing any rest of the trunk's stdenv2, that has a fix in ld-wrapper to make
it properly put the rpath for directly passed .so files, and additionally it
works much faster than the old ld-wrapper.


svn path=/nixpkgs/branches/stdenv-updates/; revision=21978
2010-05-25 20:51:01 +00:00
Lluís Batlle i Rossell 4b44717b1d Making the ld-wrapper2.sh much faster, when having lots of '-L' parameters,
breaking a double loop we had.

svn path=/nixpkgs/trunk/; revision=21583
2010-05-03 19:59:51 +00:00
Lluís Batlle i Rossell dd4ad6741e Fixing once again the ld-wrapper.sh script. I put it in a gcc-wrapper apart, to be removed
on the next stdenv-updates.
This would fix the build for many cmake packages, although that requires updating the stdenv
in those for its gcc to use this 2nd wrapper.

I updated paraview and avidemux. I can't recall now more packages with problems, but I was
quite sure there were.

If anyone sees a cmake-built package with the result binaries lacking some rpaths, then try
this wrapper.


svn path=/nixpkgs/trunk/; revision=20669
2010-03-16 20:49:26 +00:00
Lluís Batlle i Rossell 64f0d74319 Fixing the gcc/gcc-wrapper so 'ghdl' gets the proper wrapper (langVhdl = true,
from gcc).


svn path=/nixpkgs/branches/stdenv-updates/; revision=19714
2010-01-27 16:29:11 +00:00
Eelco Dolstra 116443e839 * Don't call grep from ld-wrapper (especially not O(n^2) times)
because it makes linking very slow.  Use bash's =~ operator instead
  (and only once for each argument).  We depend on bash already anyway
  because of arrays so it's not a problem.

svn path=/nixpkgs/branches/stdenv-updates/; revision=19699
2010-01-26 22:42:43 +00:00
Eelco Dolstra 64f1191313 * Fix Perl on FreeBSD.
svn path=/nixpkgs/branches/stdenv-updates/; revision=19685
2010-01-26 18:10:59 +00:00
Lluís Batlle i Rossell 3189e7a393 Adding two files I forgot to the gcc-wrapper, comming from the old
gnat-wrapper.


svn path=/nixpkgs/branches/stdenv-updates/; revision=19494
2010-01-16 23:09:27 +00:00
Lluís Batlle i Rossell 08eb3243c9 Merging the ghdl-wrapper and gcc-wrapper into one.
I will remove the ghdl-wrapper files later, if all this works.


svn path=/nixpkgs/branches/stdenv-updates/; revision=19493
2010-01-16 21:41:27 +00:00
Lluís Batlle i Rossell e72908036f Merging the gnat-wrapper and gcc-wrapper into a single gcc-wrapper.
(I will remove the gnat-wrapper files if this works, later)


svn path=/nixpkgs/branches/stdenv-updates/; revision=19492
2010-01-16 21:32:44 +00:00
Lluís Batlle i Rossell 20e75e0cf0 Fixing the gcc-wrapper, so it does not link when gcc is called with '-x
something'.
It should not link at least for '-x c-header' and '-x c++-header', and maybe
link for '-x c' or '-x c++', but we expect noone will be linking using these
later strings.

Adding opencv, which required '-x c-header' working, and that's why I have
updated gcc wrapper.


svn path=/nixpkgs/branches/stdenv-updates/; revision=19491
2010-01-16 21:26:10 +00:00
Lluís Batlle i Rossell 193f70d887 Updating the ld-wrapper about linking of direct .so files. The previous
regexp looking for such ld arguments did not work well with "--soname=xxx.so".
Now I added the condition that the argument should not start with a hyphen, for
it to be possibly considered a .so file to link with.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18919
2009-12-13 16:18:53 +00:00
Lluís Batlle i Rossell 6bacb66dd3 Updating the gcc-wrapper with the changes done in trunk's gcc-wrapper2.
Removing any reference to the gcc-wrapper2, as now the gcc-wrapper already conveys
the changes, I created gcc-wrapper2 in trunk for.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18913
2009-12-12 18:48:07 +00:00
Lluís Batlle i Rossell 9dcff09187 Fixing the coreutils reference in the gcc-wrapper - they did not get properly
in the path still.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18531
2009-11-22 18:39:27 +00:00
Lluís Batlle i Rossell 4b27d28701 Porting changes from stdenv-updates into this branch.
This comes from:
svn diff  ^/nixpkgs/trunk/@18255 ^/nixpkgs/branches/stdenv-updates/ > diff
patch -p0 < diff
and then adding into svn all files new from the patch.

trunk@18255 comes from the last time I updated stdenv-updates from trunk.


svn path=/nixpkgs/stdenv-updates2/; revision=18272
2009-11-08 00:32:12 +00:00
Ludovic Courtès a58d165524 Revert r16645, which was intended for the `stdenv-updates' branch.
svn path=/nixpkgs/trunk/; revision=16646
2009-08-10 13:37:18 +00:00
Ludovic Courtès 09ab84a431 GCC wrapper: Don't create dangling symlinks; create a `gcj' symlink.
svn path=/nixpkgs/trunk/; revision=16645
2009-08-10 13:33:58 +00:00
Lluís Batlle i Rossell d4aedd92cc I revert my changes to get nixpkgs working on armv5tel-linux.
I thought I didn't change stdenv, but I did. This will go soon into the stdenv
branch then.
Reverse-merging r16467 through r16465.


svn path=/nixpkgs/trunk/; revision=16468
2009-07-26 22:47:33 +00:00
Lluís Batlle i Rossell 532fc4a05d Adding armv5tel to the 'if' checks in stdenv, gcc-wrapper and kernel headers
svn path=/nixpkgs/trunk/; revision=16466
2009-07-26 21:48:10 +00:00
Eelco Dolstra cdf4cf5c23 * Sync with the trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=16094
2009-06-30 11:42:15 +00:00
Peter Simons 7534cbe4b8 Define "brokenRedHatKernel = true" in $NIXPKGS_CONFIG to build a system that
works on Red Hat Linux, i.e. that is based on glibc version 2.5.

Furthermore, this patch fixes a number of gcc 4.3.3 build errors in glibc 2.5
that occur on both x86 and x86_64. The older version of this library is still
useful for running Nix on a Red Hat host. Newer version of glibc fail to detect
the kernel's capabilities correctly (due to mad patches applied to the kernel
by Red Hat).

The individual changes are:

 * Re-activated glibc 2.5 in all-packages.nix.

 * Fix incomplete header search path in bootstrap tools.

   Gcc-wrapper sets "-B<prefix>" to tell the compiler about its installation
   root. Unfortunately, the setting doesn't add $gcc/lib/gcc/*/*/include-fixed
   to the search path. That directory is required, however, because it contains
   the system-specific "limits.h" file, and the glibc 2.5 builds tries to find
   that file via #include_next.

 * Support intrinsic functions like __signbit() or atof() correctly to avoid
   compile-time conflicts.

 * Switch to NPTL. Linuxthreads is no longer supported.

 * Added a meta attribute to glibc package.

 * Updated nixUnstable to version 0.13pre15614 from trunk. The previous version
   failed regression tests.

 * Fix more strict type checking in binutils since 2.18.50.0.3.

   Without this patch, the build failed on x86, saying:

     ../sysdeps/i386/fpu/ftestexcept.c: Assembler messages:
     ../sysdeps/i386/fpu/ftestexcept.c:33: Error: suffix or operands invalid for `fnstsw'

svn path=/nixpkgs/branches/stdenv-updates/; revision=16037
2009-06-24 20:10:51 +00:00
Marc Weber f7f938a1d1 big breaking change: renaming lib.getAttr to lib.attrByPath
getAttr was ambiguous. It's also a builtin function

fix

svn path=/nixpkgs/trunk/; revision=15692
2009-05-24 10:57:41 +00:00
Eelco Dolstra 5175cce9a9 * Oops. We don't call genericBuild, so the fixupPhase (which creates
the setup hook) is never run.  So revert.

svn path=/nixpkgs/branches/stdenv-updates/; revision=15281
2009-04-23 16:23:12 +00:00
Eelco Dolstra 7689a348c4 * Got rid of a lot of "postInstall=postInstall" and similar lines in
builders.  These are redundant now.
* Inlined some trivial builders.
* Removed a few explicit setup-hook creations.  This is done
  automatically now if setupHook is set.
* Deleted the initscripts package.  NixOS doesn't use it anymore.

svn path=/nixpkgs/branches/stdenv-updates/; revision=15276
2009-04-23 13:31:10 +00:00
Eelco Dolstra 35e42d3e5c * Fix missing description errors.
svn path=/nixpkgs/branches/stdenv-updates/; revision=15157
2009-04-19 16:00:46 +00:00
Eelco Dolstra 6b9ccbaf78 * setup.sh: turn on nullglob globally.
* setup.sh: removed some obsolete features, specifically some that
  were only used by the old build farm.
* addToSearchPath: removed some parameters that weren't used
  anywhere.

svn path=/nixpkgs/branches/stdenv-updates/; revision=15136
2009-04-18 22:22:51 +00:00
Eelco Dolstra eeed10ba8e * g77 -> gfortran throughout. Got rid of the separate
expressions/builders for Fortran.  Tested by building Octave with
  gfortran 4.3.

svn path=/nixpkgs/branches/stdenv-updates/; revision=14978
2009-04-09 15:24:33 +00:00
Eelco Dolstra e032d40614 * Some meta.description attributes.
svn path=/nixpkgs/branches/stdenv-updates/; revision=14712
2009-03-25 18:34:27 +00:00
Eelco Dolstra d9213df2c1 * gcc-wrapper: put "gcc-wrapper" in the name, e.g. "gcc-wrapper-4.3.3"
instead of "gcc-4.3.3".  This fixed the long-standing annoyance that
  you can't distinguish the two in (say) nix-store -qR.
* On x86_64-linux, put $out/lib64 in the RPATH in addition to
  $out/lib, because some packages (in particular GCC) put libraries in
  $out/lib64 and ended up linking against the wrong library.
* Strip $out/lib64.
* Removed g77_42 because it's exactly the same as gfortran.

svn path=/nixpkgs/branches/stdenv-updates/; revision=14708
2009-03-25 17:34:38 +00:00
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