@@ -6,13 +6,14 @@ let main = ./main.go;
66in
77buildGoModule rec {
88 pname = "tinygo";
9− version = "0.13.1";
9+ version = "0.16.0";
1010
1111 src = fetchFromGitHub {
1212 owner = "tinygo-org";
1313 repo = "tinygo";
1414 rev = "v${version}";
15− sha256 = "0das5z5y2x1970yi9c4yssxvwrrjhdmsj495q0r5mb02amvc954v";
15+ sha256 = "063aszbsnr0myq56kms1slmrfs7m4nmg0zgh2p66lxdsifrfly7j";
16+ fetchSubmodules = true;
1617 };
1718
1819 overrideModAttrs = (_: {
@@ -21,15 +22,23 @@ buildGoModule rec {
2122 rm -rf *
2223 cp ${main} main.go
2324 cp ${gomod} go.mod
25+ chmod +w go.mod
2426 '';
2527 });
2628
2729 preBuild = "cp ${gomod} go.mod";
2830
29− vendorSha256 = "19194dlzpl6zzw2gqybma5pwip71rw8z937f104k6c158qzzgy62";
31+ postBuild = "make gen-device";
32+
33+ vendorSha256 = "12k2gin0v7aqz5543m12yhifc0xsz26qyqra5l4c68xizvzcvkxb";
3034
3135 doCheck = false;
3236
37+ prePatch = ''
38+ sed -i s/', "-nostdlibinc"'// builder/builtins.go
39+ sed -i s/'"-nostdlibinc", '// compileopts/config.go builder/picolibc.go
40+ '';
41+
3342 subPackages = [ "." ];
3443 buildInputs = [ llvm clang-unwrapped makeWrapper ];
3544 propagatedBuildInputs = [ lld avrgcc avrdude openocd gcc-arm-embedded ];
@@ -37,7 +46,11 @@ buildGoModule rec {
3746 postInstall = ''
3847 mkdir -p $out/share/tinygo
3948 cp -a lib src targets $out/share/tinygo
40− wrapProgram $out/bin/tinygo --prefix "TINYGOROOT" : "$out/share/tinygo"
49+ wrapProgram $out/bin/tinygo --prefix "TINYGOROOT" : "$out/share/tinygo" \
50+ --prefix "PATH" : "$out/libexec/tinygo"
51+ mkdir -p $out/libexec/tinygo
52+ ln -s ${clang-unwrapped}/bin/clang $out/libexec/tinygo/clang-10
53+ ln -s ${lld}/bin/lld $out/libexec/tinygo/ld.lld-10
4154 ln -sf $out/bin $out/share/tinygo
4255 '';
4356