Relevant part of output is: ... checking for ocamlfind... /usr/bin/ocamlfind ... configure: WARNING: --enable-bindings=ocaml specified, but ctypes is not installed configure: WARNING: --enable-bindings=ocaml specified, but OUnit 2 is not installed. Tests will not run configure: error: Prequisites for bindings not satisfied. Fix them or use configure --disable-bindings. With -ocaml it configures and builds fine Reproducible: Always
Created attachment 398988 [details] build.log
Created attachment 398990 [details] emerge --info
dev-lang/ocaml is installed in version 4.01.0 from official tree with USE="X latex ncurses ocamlopt tk -emacs -xemacs". I'll try with version 3.* to see if it makes a difference
In addition llvm-3.6 package have to depend on dev-ml/findlib: configure: WARNING: --enable-bindings=ocaml specified, but ocamlfind not found. Try configure OCAMLFIND=/path/to/ocamlfind configure: WARNING: --enable-bindings=ocaml specified, but ctypes is not installed configure: WARNING: --enable-bindings=ocaml specified, but OUnit 2 is not installed. Tests will not run
Thanks for the report! It looks like a few things changed in ocaml bindings since the rc where I tested with USE=ocaml :/ Adding dev-ml/ounit and dev-ml/findlib to dependencies is easy, but I can not find ctypes, is it this one? https://github.com/ocamllabs/ocaml-ctypes/releases Cc'ing ml folks for opinion on this potentially new package to add in tree
added dev-ml/ocaml-ctypes-0.4.0 ; please test
(In reply to Alexis Ballier from comment #6) > added dev-ml/ocaml-ctypes-0.4.0 ; please test configure ran to the end, thanks for the speedy add!I did not have time to check the entire compilation process though Also, I have not committed the new deps yet, as they will require some ppc/arm keywording For those that want to test in the meantime, the packages to add: dev-ml/findlib dev-ml/ocaml-ctypes dev-ml/ounit
Hey all, thanks for the quick reaction and the ebuild. I emerged dev-ml/ocaml-ctypes and dev-ml/ounit (findlib was already installed) and retried. While the configuration phase shows no problems, the compilation fails at a later stage.
Created attachment 399052 [details] build.log if ocaml-ctypes is installed (xz compressed) relevant part: File "/var/tmp/portage/sys-devel/llvm-3.6.0/work/llvm-3.6.0.src-abi_x86_64.amd64/bindings/ocaml/executionengine/Release/llvm_executionengine.ml", line 54, characters 28-77: Error: This expression has type nativeint but an expression was expected of type int64
As stated at http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html it needs OCaml >=4.00.0, ocamlfind, ctypes >=0.3.0 <0.4 and OUnit 2, so it seems to me that ctypes 0.4 release is too fresh for it.
I am trying to build it with ctypes v. 0.3.4 now.
It built and installed fine with =dev-ml/ocaml-ctypes-0.3.4.
(In reply to David Kredba from comment #10) > As stated at > > http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html > > it needs OCaml >=4.00.0, ocamlfind, ctypes >=0.3.0 <0.4 and OUnit 2, > so it seems to me that ctypes 0.4 release is too fresh for it. yeah so it need porting to ctypes 0.4; no point in supporting legacy packages that were never in tree
Indeed, this is probably caused by: * Use nativeint to represent pointers in https://github.com/ocamllabs/ocaml-ctypes/blob/master/CHANGES.md This looks cleaner, I have a one-liner patch that seems to fix this. Testing compilation, then I'll add it here
Created attachment 399102 [details, diff] Patch to support ocaml-ctypes-0.4.0 Not really a one-liner in the end, but all it does is changing int64 to nativeint. If you use ocaml bindings actively, can you check they work fine in 3.6.0? I'll commit it once the new dependencies are keyworded (blocker to this bug)
(In reply to Bernard Cafarelli from comment #15) > Created attachment 399102 [details, diff] [details, diff] > Patch to support ocaml-ctypes-0.4.0 > > Not really a one-liner in the end, but all it does is changing int64 to > nativeint. If you use ocaml bindings actively, can you check they work fine > in 3.6.0? > > I'll commit it once the new dependencies are keyworded (blocker to this bug) I tried to use the patch(In reply to Bernard Cafarelli from comment #15) > Created attachment 399102 [details, diff] [details, diff] > Patch to support ocaml-ctypes-0.4.0 > > Not really a one-liner in the end, but all it does is changing int64 to > nativeint. If you use ocaml bindings actively, can you check they work fine > in 3.6.0? > > I'll commit it once the new dependencies are keyworded (blocker to this bug) The patch does not help here: >>> Emerging (1 of 1) sys-devel/llvm-3.6.0::local * llvm-3.6.0.src.tar.xz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] * compiler-rt-3.6.0.src.tar.xz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] * cfe-3.6.0.src.tar.xz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] * clang-tools-extra-3.6.0.src.tar.xz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] * Checking for at least 2400 MiB disk space at "/var/tmp/portage/sys-devel/llvm-3.6.0/temp" ... [ ok ] * Trying to build a C++11 test program ... [ ok ] >>> Unpacking source... >>> Unpacking llvm-3.6.0.src.tar.xz to /var/tmp/portage/sys-devel/llvm-3.6.0/work >>> Unpacking compiler-rt-3.6.0.src.tar.xz to /var/tmp/portage/sys-devel/llvm-3.6.0/work >>> Unpacking cfe-3.6.0.src.tar.xz to /var/tmp/portage/sys-devel/llvm-3.6.0/work >>> Unpacking clang-tools-extra-3.6.0.src.tar.xz to /var/tmp/portage/sys-devel/llvm-3.6.0/work >>> Source unpacked in /var/tmp/portage/sys-devel/llvm-3.6.0/work >>> Preparing source in /var/tmp/portage/sys-devel/llvm-3.6.0/work/llvm-3.6.0.src ... * Applying llvm-3.2-nodoctargz.patch ... [ ok ] * Applying llvm-3.5-gcc-4.9.patch ... [ ok ] * Applying llvm-3.6-gentoo-install.patch ... [ ok ] * Applying clang-3.5-gentoo-runtime-gcc-detection-v3.patch ... [ ok ] * Applying clang-3.6-gentoo-install.patch ... [ ok ] * Applying clang-3.4-darwin_prefix-include-paths.patch ... [ ok ] * Adjusting to prefix / * InitHeaderSearch.cpp ... [ ok ] * Fixing install dirs * Applying llvm-3.6.0-ocaml-ctypes-0.4.0.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/sys-devel/llvm-3.6.0/work/llvm-3.6.0.src ... * abi_x86_32.x86: running multilib-minimal_abi_src_configure ... checking for GCC atomic builtins... yes checking for 32-bit userspace on 64-bit system... no checking for __dso_handle... yes configure: WARNING: --enable-bindings=ocaml specified, but ctypes is not installed configure: WARNING: --enable-bindings=ocaml specified, but OUnit 2 is not installed. Tests will not run configure: error: Prequisites for bindings not satisfied. Fix them or use configure --disable-bindings. !!! Please attach the following file when seeking support: !!! /var/tmp/portage/sys-devel/llvm-3.6.0/work/llvm-3.6.0.src-abi_x86_64.amd64/config.log * ERROR: sys-devel/llvm-3.6.0::local failed (configure phase): * econf failed 'USE=-ocaml emerge -v1 llvm' works.
Created attachment 400176 [details, diff] Patch to llvm-3.6.0.ebuild Yes, you also need to manually install the missing dependencies: * dev-ml/findlib * dev-ml/ocaml-ctypes and optionally dev-ml/ounit for tests Or update the ebuild with this patch, to automate it
(In reply to Bernard Cafarelli from comment #17) > Created attachment 400176 [details, diff] [details, diff] > Patch to llvm-3.6.0.ebuild > > Yes, you also need to manually install the missing dependencies: > * dev-ml/findlib > * dev-ml/ocaml-ctypes > and optionally dev-ml/ounit for tests > > Or update the ebuild with this patch, to automate it Your patch fails here with: root@gepard:/usr/local/portage/llvm(18)# patch < /home_caiman/rose/Txt/Patches/llvm-3.6.0.ebuild.patch patching file llvm-3.6.0.ebuild Reversed (or previously applied) patch detected! Assume -R? [n] Apply anyway? [n] Skipping patch. 4 out of 4 hunks ignored -- saving rejects to file llvm-3.6.0.ebuild.rej root@gepard:/usr/local/portage/llvm(19)# rm llvm-3.6.0.ebuild.rej I modified your patch a little bit, now it works: root@gepard:/usr/local/portage/llvm(21)# patch < /home_caiman/rose/Txt/Patches/llvm-3.6.0_new.ebuild.patch patching file llvm-3.6.0.ebuild
Created attachment 403672 [details, diff] The modified ebuild patch
Now I get the same error with llvm-3.6.1: ... checking for __dso_handle... yes configure: WARNING: --enable-bindings=ocaml specified, but ctypes is not installed configure: WARNING: --enable-bindings=ocaml specified, but OUnit 2 is not installed. Tests will not run configure: error: Prequisites for bindings not satisfied. Fix them or use configure --disable-bindings.
I hit the error at the next system.
Created attachment 404816 [details] llvm-3.6.1.ebuild which works for me, if ocaml-ctypes is not instlled
(In reply to Bernard Cafarelli from comment #17) > Created attachment 400176 [details, diff] [details, diff] > Patch to llvm-3.6.0.ebuild > > Yes, you also need to manually install the missing dependencies: > * dev-ml/findlib > * dev-ml/ocaml-ctypes > and optionally dev-ml/ounit for tests > > Or update the ebuild with this patch, to automate it @Bernard Cafarelli Can these patches not add to default portage tree?
(In reply to Juergen Rose from comment #23) > @Bernard Cafarelli > > Can these patches not add to default portage tree? The patch is already applied in 3.6.1 :) So for now you just need to install the mising deps as listed in comment #17 (findlib, ocaml-ctypes, and optionnaly ounit) I can not add these dependencies in the ebuild yet, as they lack some keywords (that's blocker bug #543604)
Now I get the same error with llvm-3.6.2.
I masked the USE-flag on missing arches (sparc and powerpc), so I could finally add the dependencies, thanks everyone!