Commit graph

24 commits

Author SHA1 Message Date
Lluís Batlle i Rossell
d0ae140f69 Renamed some old glibcCross to libcCross (we can use uclibc in cross builds already).
Dealt with the gcc 4.4 expression for it to work well for a native and a cross
compiler, adding a pair of patches to get the job done without much side
effects. One (libtool problems on -B) comes from the gcc 4.3 expression, while
the other fixes a bug already fixed in gcc 4.4.3.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18833
2009-12-08 09:36:19 +00:00
Lluís Batlle i Rossell
917760a425 Adding the patch for gcc-4.3 I should have commited in already two recent commit attempts.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18814
2009-12-04 21:35:47 +00:00
Lluís Batlle i Rossell
9651069240 Adding a gcc patch I forgot to add in the proper commit, while it is already
referenced in the gcc 4.3 expression.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18813
2009-12-04 18:42:44 +00:00
Lluís Batlle i Rossell
4164de326a Making the cross-builds work with uclibc. There is no easy way of switching
between uclibc/glibc still.
I started the renaming from glibc to libc regarding the cross-toolchain, but I
still have to finish.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18801
2009-12-04 13:35:58 +00:00
Lluís Batlle i Rossell
c6b526495b Improving the crossStripping. A cross-glibc gets broken if stripped by the
native strip. So we now distinguish dontStrip and dontCrossStrip. I updated
the expressions for glibc-2.9 and glibc-2.11 accordingly.
I could get rid of the cross-glibc depending on the cross-gcc-stage-static.

Enabling nls in the final cross-gcc.

I still have problems on wint_t/wchar_t not working on cross build. Gettext
does not build.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18562
2009-11-23 17:06:57 +00:00
Lluís Batlle i Rossell
585ba8c27f Big fixes in the cross build:
- Before this changes, cflags and ldflags for the native and the cross compiler
  got mixed. Not all the gcc-wrapper/gcc-cross-wrapper variables are
  independant now, but enough, I think.
- Fixed the generic stdenv expression, which did a big mess on buildInputs and
  buildNativeInputs. Now it distinguishes when there is a stdenvCross or not.
  Maybe we should have a single stdenv and forget about the stdenvCross
  adapter - this could end in a stdenv a bit complex, but simpler than the
  generic stdenv + adapter.
- Added basic support in pkgconfig for cross-builds: a single PKG_CONFIG_PATH
  now works for both the cross and the native compilers, but I think this
  should work well for most cases I can think of.
- I tried to fix the guile expression to cross-biuld; guile is built, but not
  its manual, so the derivation still fails. Guile requires patching to
  cross-build, as far as I understnad.
- Made the glibcCross build to be done through the usage of a
  gcc-cross-wrapper over the gcc-cross-stage-static, instead of using it
  directly.
- Trying to make physfs (a neverball dependency) cross build.
- Updated the gcc expression to support building a cross compiler without getting
  derivation variables mixed with those of the stdenvCross.

svn path=/nixpkgs/branches/stdenv-updates/; revision=18534
2009-11-22 19:51:45 +00:00
Lluís Batlle i Rossell
a263cb814e Fixed some details on cross compilation. Among others:
- Stating better the guile dependencies (native/host) for guile to build
- Fixing cross-linking, through --rpath-link (ld(1) explains well about it
- Made gcc call the linker and the assembler through the gcc wrapper instead of
  directly. I thought this was the source of missing -rpath's, but the source
  of the problem ended up being the lack of --rpath-link. But I think the
  native gcc calls the wrapped ld and as, so let's do the same cross
  compiling.
- Removed the binutilsCross from the glibc expressions. Now they are built
  using the gcc-cross-wrapper, and they were built with the direct gcc and
  binutils before this change.
- I think patchelf and strip don't break the cross-compiled binaries, so I
  reallow them on cross compilation.
- I disable the checkPhase on cross compilation. This made gmp and libtool
  fail when cross compiled, iirc.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18498
2009-11-21 02:42:52 +00:00
Lluís Batlle i Rossell
2c7fa189fb Making the definition of the cross compiling target an attribute set.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18378
2009-11-16 23:21:13 +00:00
Lluís Batlle i Rossell
81f695899a I think I fixed the gcc builder for the usual stdenv, I broke in the commit
before.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18356
2009-11-15 17:48:10 +00:00
Lluís Batlle i Rossell
307cbd7b3b First attempt for the full stdenvCross. I think that it should work. The
toolchain for arm built.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18355
2009-11-15 16:48:36 +00:00
Lluís Batlle i Rossell
9b977f5c60 Fixing many things related to the cross compilation in stdenvCross.
It still does not work, but I think I already get glibc cross compiled.
Next: gcc and g++, and set some setup script hooks on stdenvCross.

It took quite enough hours for this commit.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18351
2009-11-15 05:28:35 +00:00
Lluís Batlle i Rossell
2aba922d30 My first attempt at getting cross compilers in nixpkgs.
My idea is to provide special stdenv expressions that will contain in the path
additional cross compilers. As most expressions for programs accept a stdenv parameter, 
we could substitute this parameter with the special stdenv, which will have a
generic builder that attempts the usual "--target=..." and can additionally
have an env variable like "cross" with the target architecture set.
So, finally we could have additional expressions like this:

bashRealArm = makeOverridable (import ../shells/bash) {
    inherit fetchurl bison;
    stdenv = stdenvCross "armv5tel-unknown-linux-gnueabi";
};

Meanwhile it does not work - I still cannot get the cross-gcc to build.

I think it does not fill the previous expressions with a lot of noise, so I
think it may be a good path to follow.

I only touched some files of the current stdenv: gcc-4.3, kernel headers
2.6.28, glibc 2.9, ...

I tried to use the gcc-cross-wrapper, that may be very outdated. Maybe I will
update it, or update the gcc-wrapper expression to make it fit the cross tools,
but meanwhile I even cannot build gcc, so I have not tested the wrapper.

This new idea on cross compiling is not similar to that of the
nixpkgs/branches/cross-compilation, which mostly added bare new expressions for
anything to be cross compiled, if I understood it correctly.

I cared not to break anything of the usual stdenv in all this work.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18343
2009-11-14 08:11:30 +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
5ed15d55ba GCJ 4.3: Fix the Java patch.
svn path=/nixpkgs/trunk/; revision=16164
2009-07-03 14:13:58 +00:00
Ludovic Courtès
5964e20243 GCJ 4.3: Try to incrementally fix things.
svn path=/nixpkgs/trunk/; revision=16163
2009-07-03 13:30:25 +00:00
Michael Raskin
2a82c141ec An attempt to add gcj-4.3. It fails not finding some GC-related symbols. I failed to understand the reason - for now
svn path=/nixpkgs/trunk/; revision=15523
2009-05-10 09:11:41 +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
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
112c86e719 * Typo in the URLs.
svn path=/nixpkgs/branches/stdenv-updates/; revision=13891
2009-01-28 13:44:44 +00:00
Eelco Dolstra
cfda61c7c6 * GCC 4.3.3, just in time too :-)
svn path=/nixpkgs/branches/stdenv-updates/; revision=13877
2009-01-27 11:53:35 +00:00
Eelco Dolstra
d09042b7d9 * GCC 4.3.2.
svn path=/nixpkgs/branches/stdenv-updates/; revision=12992
2008-10-07 17:33:40 +00:00
Eelco Dolstra
48ac8018ca Improved support for building 32-bit binaries on x86_64-linux.
* glibc_multi: a wrapper that combines the 32-bit and 64-bit Glibcs.
  This is necessary so that 64-bit GCC can find gnu/stubs-32.h and the
  32-bit Glibc libraries.

  To build glibc_multi on x86_64-linux, you still need either the
  i686-linux Glibc derivation from a channel, or to have configured
  Nix with support for forwarding the build to a i686-linux machine.
  In the future this may become unnecessary by providing a prebuilt
  binary of 32-bit Glibc somewhere (like the binaries used in the
  stdenvLinux bootstrap).

* With glibc_multi, it becomes possible to build gcc with multilib
  support (i.e. it builds 32-bit and 64-bit versions of libgcc,
  libstdc++, etc.).

svn path=/nixpkgs/trunk/; revision=12203
2008-06-27 18:26:19 +00:00
Eelco Dolstra
aaccd6f6e2 * Fix building the Fortran compiler.
svn path=/nixpkgs/trunk/; revision=12201
2008-06-27 14:43:25 +00:00
Eelco Dolstra
34f583224d * GCC 4.3.1. (g++ doesn't work yet though.)
svn path=/nixpkgs/trunk/; revision=12194
2008-06-26 10:20:33 +00:00