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
I think it takes the recent N commits into the repository, which says very little,
even for wanting master/HEAD.
svn path=/nixpkgs/trunk/; revision=18277
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
tree under $out into a separate stdenv adapter named keepBuildTree.
* makeModulesClosure: support building an initrd for a kernel that has
been compiled with coverage instrumentation.
svn path=/nixpkgs/trunk/; revision=16916
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
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
* Added dsymutil to gcc wrapper env on darwin
* turned off make check for gnugrep on darwin
* added --enable-bsd=libs configure flag for gnugrep on darwin
svn path=/nixpkgs/trunk/; revision=16014
in the Nix expression evaluator (namely that comparison of attribute
sets works properly).
* Removed some redundant parentheses in builder-defs.
svn path=/nixpkgs/trunk/; revision=15551
modules for the initial ramdisk if there were no additional kernel
module packages (such as the NVIDIA driver or AUFS), leading to a
kernel panic in the initrd. This was because in that case modprobe
would print paths referring to the kernel path rather than the
module aggregation path, and then `sed "s^$kernel^$out^"' would
silently fail. Fixed.
* Also, use depmod here rather than doing sed hackery on modules.dep.
* Also, `allowMissing' was broken (missing "$" before the variable
name).
svn path=/nixpkgs/trunk/; revision=15394
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
* 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
otherwise aclocal barfs. Updated the builder to use makeWrapper
* Made Automake 1.10 the default.
* Fixed `make check' in Automake by turning off indented logging in
Make (there is a flag for that now).
* Disabled the `make check' in Automake by default because it takes a
REALLY long time (e.g. more than 2 hours on Cygwin, 50 minutes on
Darwin, 25 minutes on Linux) which is a lot for a package that
otherwise takes 10 seconds to build. We can add a Hydra job with
doCheck enabled to do regression testing.
* make-wrapper: allow --run commands to add additional flags to the
invocation of the wrapped program. An example is the aclocal
wrapper: it adds additional -I ... flags.
* make-wrapper: call the wrapped program .foo-wrapped instead of
.wrapped-foo to make it easier to tell programs apart in `ps'
output.
svn path=/nixpkgs/branches/stdenv-updates/; revision=14885
* Added a function binaryTarball to do a DESTDIR build into
/usr/local. Useful for making statically linked binaries. However,
it may be better to do this in a VM (since if you do it in a Nix
build environment, you can still end up with a lot of Nix
dependencies in your binaries, even if you do static linking).
svn path=/nixpkgs/trunk/; revision=14726
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
"*.tar.bz2 *.tar.gz" and there are no *.tar.gz files. Maybe we
should turn this on in stdenv (nullglob just seems like the right
thing to do in general).
svn path=/nixpkgs/trunk/; revision=14606
of Hydra builds more distinct (e.g. "patchelf-build-0.5pre1234"
instead of just "patchelf-build"). If the version isn't known,
append at least the revision.
* Propagate the release name of the source tarball to Nix builds.
Useful to provide sensible package names in channels.
svn path=/nixpkgs/trunk/; revision=14294
* Create some device nodes in the RPM/Deb disk images, since modern
distributions may not provide any device nodes (they're all
generated by udev).
svn path=/nixpkgs/trunk/; revision=14293
image, otherwise the post-installs script of the "passwd" package
will fail because /etc/login.defs is missing. This also fixes the
Ubuntu 8.10 image generation, woohoo!
svn path=/nixpkgs/trunk/; revision=14217
* 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
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
* checkinstall: get rid of the RUNPATH in the LD_PRELOAD library so
that it works with native Glibc (e.g. in VM builds).
* debBuild: use our own checkinstall. In particular this allows us to
build Debs on x86_64.
svn path=/nixpkgs/trunk/; revision=13608