Skip to content

Can't build on Archlinux #86

Closed
serialhex opened this Issue Dec 29, 2012 · 2 comments

2 participants

@serialhex

I have yet to succeed building F# on my Archlinux box - I have tried a few things & I am not sure what is going wrong. The error I am getting does not make any sort of sense to me (they fixed it in Mono on OSX but nothing else because nothing else needed it? IDK!??!) Maybe i'm asking in the wrong place but hopefully I will at least be pointed in the right place. Here is what i get from trying to build from the AUR (and no this isn't being run as root - i already saw that bug report) - i get a similar error message when i try to build from the git repo.

serialhex@multi-hex [~]$ yaourt -S fsharp-git

==> Downloading fsharp-git PKGBUILD from AUR...
x PKGBUILD
Comment by jputcu  (2011-09-07 07:43)
Small update:
- depend on mono = 2.10.2 (the current)
- use https for cloning git repository, more firewall friendly

Comment by jputcu  (2011-09-24 08:25)
Renaming binaries, to avoid name collision with scala, is no longer needed, it's now done in the fsharp repository.

fsharp-git 20110924-1  (Sat Feb  5 08:40:19 EST 2011)
( Unsupported package: Potentially dangerous ! )
==> Edit PKGBUILD ? [Y/n] ("A" to abort)
==> ------------------------------------
==> n

==> fsharp-git dependencies:
 - mono>=2.10.2 (already installed)
 - git (already installed)


==> Continue building fsharp-git ? [Y/n]
==> ------------------------------------
==> 
==> Building and installing package
==> Determining latest git revision...
  -> Version found: 20121228
==> Making package: fsharp-git 20121228-1 (Fri Dec 28 23:10:44 EST 2012)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving Sources...
==> Extracting Sources...
==> Entering fakeroot environment...
==> Starting build()...
==> Getting source from GIT server....
Cloning into 'fsharp'...
remote: Counting objects: 612, done.
remote: Compressing objects: 100% (490/490), done.
remote: Total 612 (delta 145), reused 230 (delta 100)
Receiving objects: 100% (612/612), 9.90 MiB | 1.33 MiB/s, done.
Resolving deltas: 100% (145/145), done.
==> Configuring...
checking whether make sets $(MAKE)... yes
checking for pkg-config... /usr/bin/pkg-config
configure: WARNING: Mono 3.0 or higher is recommended, for better MSBuild (xbuild) compatibility
checking for mono-sgen... /usr/bin/mono-sgen
configure: creating ./config.status
config.status: creating launcher
config.status: creating Makefile
config.status: creating config.make
config.status: creating src/fsharp/Makefile
config.status: creating src/fsharp/FSharp.Build-proto/Makefile
config.status: creating src/fsharp/FSharp.Compiler-proto/Makefile
config.status: creating src/fsharp/Fsc-proto/Makefile
config.status: creating src/fsharp/FSharp.Core/Makefile
config.status: creating src/fsharp/FSharp.Build/Makefile
config.status: creating src/fsharp/FSharp.Compiler/Makefile
config.status: creating src/fsharp/Fsc/Makefile
config.status: creating src/fsharp/FSharp.Compiler.Interactive.Settings/Makefile
config.status: creating src/fsharp/FSharp.Compiler.Server.Shared/Makefile
config.status: creating src/fsharp/fsi/Makefile
config.status: creating src/fsharp/fsiAnyCpu/Makefile
config.status: creating src/fsharp/policy.2.0.FSharp.Core/Makefile
config.status: creating src/fsharp/policy.4.0.FSharp.Core/Makefile
config.status: creating src/fsharp/policy.2.3.FSharp.Core/Makefile
config.status: creating src/fsharp/policy.4.3.FSharp.Core/Makefile
==> Building...
make -C src/fsharp all
make[1]: Entering directory `/tmp/yaourt-tmp-serialhex/aur-fsharp-git/src/fsharp/src/fsharp'
make do-proto
make[2]: Entering directory `/tmp/yaourt-tmp-serialhex/aur-fsharp-git/src/fsharp/src/fsharp'
make -C FSharp.Build-proto do-proto
make[3]: Entering directory `/tmp/yaourt-tmp-serialhex/aur-fsharp-git/src/fsharp/src/fsharp/FSharp.Build-proto'
mkdir -p .libs//
mkdir -p .libs//2.0
mkdir -p .libs//4.0
mono --gc=sgen /tmp/yaourt-tmp-serialhex/aur-fsharp-git/src/fsharp/lib/bootstrap/4.0/../2.0/fssrgen.exe ../FSharp.Build/FSBuild.txt .libs/FSBuild.fs .libs/FSBuild.resx
* Assertion at sgen-gc.c:2506, condition `mono_sgen_need_bridge_processing ()' not met

Stacktrace:


Native stacktrace:

    mono-sgen() [0x4995c9]
    /usr/lib/libpthread.so.0(+0xf1a0) [0x7fd2b6e341a0]
    /usr/lib/libc.so.6(gsignal+0x35) [0x7fd2b6ab2fd5]
    /usr/lib/libc.so.6(abort+0x148) [0x7fd2b6ab4458]
    mono-sgen() [0x5f6e3f]
    mono-sgen() [0x5f6f66]
    mono-sgen() [0x5965d6]
    mono-sgen(mono_gc_collect+0x3e) [0x5a17ce]
    mono-sgen(mono_domain_finalize+0x94) [0x51bd24]
    mono-sgen() [0x417c30]
    mono-sgen(mono_main+0xc79) [0x474e69]
    /usr/lib/libc.so.6(__libc_start_main+0xf5) [0x7fd2b6a9f725]
    mono-sgen() [0x4177a9]

Debug info from gdb:


=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

make[3]: *** [.libs/FSBuild.resources] Aborted (core dumped)
make[3]: Leaving directory `/tmp/yaourt-tmp-serialhex/aur-fsharp-git/src/fsharp/src/fsharp/FSharp.Build-proto'
make[2]: *** [do-proto] Error 2
make[2]: Leaving directory `/tmp/yaourt-tmp-serialhex/aur-fsharp-git/src/fsharp/src/fsharp'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/yaourt-tmp-serialhex/aur-fsharp-git/src/fsharp/src/fsharp'
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
==> ERROR: Makepkg was unable to build fsharp-git.
==> Restart building fsharp-git ? [y/N]
==> -----------------------------------
==> 

sys details: Arch 64 w/
serialhex@multi-hex [~]$ mono -V
Mono JIT compiler version 2.10.8 (tarball Sat Oct 6 23:22:30 UTC 2012)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)

any other Q's just let me know!

@knocte
knocte commented Dec 29, 2012

It must be a Mono bug in the generational garbage collector (as the flag --gc=sgen is being used). Upgrade your mono version, maybe that fixes it.

Anyway we should not use sgen if Mono version detected during configure is older than 3.0.

@serialhex

beautiful! the latest "official" package archlinux supports is mono 2.10.8, i found a package in the aur for mono 3 and it works beautifully! no problems, thanks!!!

@serialhex serialhex closed this Dec 29, 2012
@ctaggart ctaggart pushed a commit to ctaggart/FSharp.Compiler.Service that referenced this issue Jul 2, 2014
@knocte knocte configure: do not use SGen if Mono < 3.0
As pointed out in fsharp/fsharp#86 , Mono 2.10.x
may be still too unstable to use Mono's generational garbage collector.
5623f87
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.