* 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
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#! /bin/sh
|
||||
|
||||
export NIX_DEBUG=1
|
||||
|
||||
. $stdenv/setup
|
||||
|
||||
export NIX_CFLAGS_COMPILE="-v $NIX_CFLAGS_COMPILE"
|
||||
|
||||
mkdir $out
|
||||
mkdir $out/bin
|
||||
|
||||
cat > hello.c <<EOF
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char * * argv)
|
||||
{
|
||||
printf("Hello World!\n");
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
gcc hello.c -o $out/bin/hello
|
||||
|
||||
$out/bin/hello
|
||||
|
||||
cat > hello2.cc <<EOF
|
||||
#include <iostream>
|
||||
|
||||
int main(int argc, char * * argv)
|
||||
{
|
||||
std::cout << "Hello World!\n";
|
||||
std::cout << VALUE << std::endl;
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
|
||||
g++ hello2.cc -o $out/bin/hello2 -DVALUE="1 + 2 * 3"
|
||||
|
||||
$out/bin/hello2
|
||||
|
||||
ld -v
|
||||
@@ -0,0 +1,18 @@
|
||||
let {
|
||||
system = "i686-linux";
|
||||
|
||||
stdenvInitial = (import ../../stdenv/initial) {
|
||||
name = "stdenv-initial";
|
||||
inherit system;
|
||||
};
|
||||
|
||||
stdenv = (import ../../stdenv/native) {stdenv = stdenvInitial;};
|
||||
|
||||
test = derivation {
|
||||
name = "simple-test";
|
||||
inherit system stdenv;
|
||||
builder = ./builder.sh;
|
||||
};
|
||||
|
||||
body = test;
|
||||
}
|
||||
Reference in New Issue
Block a user