The spec file in buildroot needs to be updated to include "blktap" as a dependency, since that provides vhd/libvhd.h, but even with that change ocaml-vhd cannot build as the search path does not include %{libdir}/blktap/ which is where buildroot deposits the code. This 'works' on other distributions as xen-devel includes a version of vhd/libvhd.h that seems to be 'good enough'.
It seems that buildroot depends on xen-c6 not just for an updated Xen, but for the headers being re-added to the Xen RPM:
# yum provides */libvhd.h
xen-devel-4.2.2-23.el6.centos.alt.x86_64 : Development libraries for Xen tools
Repo : xen-c6
Matched from:
Filename : /usr/include/vhd/libvhd.h
+ ocaml setup.ml -configure
Configuration:
ocamlfind: ........................................... /usr/bin/ocamlfind
ocamlc: .............................................. /usr/bin/ocamlc.opt
ocamlopt: ............................................ /usr/bin/ocamlopt.opt
ocamlbuild: .......................................... /usr/bin/ocamlbuild
Package name: ........................................ vhdlib
Package version: ..................................... 0.9.1
os_type: ............................................. Unix
system: .............................................. linux
architecture: ........................................ amd64
ccomp_type: .......................................... cc
ocaml_version: ....................................... 4.01.1
standard_library_default: ............................ /usr/lib64/ocaml
standard_library: .................................... /usr/lib64/ocaml
standard_runtime: .................................... /usr/bin/ocamlrun
bytecomp_c_compiler: ................................. gcc -fno-defer-pop -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protec
tor-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC
native_c_compiler: ................................... gcc -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --pa
ram=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic
model: ............................................... default
ext_obj: ............................................. .o
ext_asm: ............................................. .s
ext_lib: ............................................. .a
ext_dll: ............................................. .so
default_executable_name: ............................. a.out
systhread_supported: ................................. true
Install architecture-independent files dir: .......... /usr/local
Install architecture-dependent files in dir: ......... $prefix
User executables: .................................... $exec_prefix/bin
System admin executables: ............................ $exec_prefix/sbin
Program executables: ................................. $exec_prefix/libexec
Read-only single-machine data: ....................... $prefix/etc
Modifiable architecture-independent data: ............ $prefix/com
Modifiable single-machine data: ...................... $prefix/var
Object code libraries: ............................... $exec_prefix/lib
Read-only arch-independent data root: ................ $prefix/share
Read-only architecture-independent data: ............. $datarootdir
Info documentation: .................................. $datarootdir/info
Locale-dependent data: ............................... $datarootdir/locale
Man documentation: ................................... $datarootdir/man
Documentation root: .................................. $datarootdir/doc/$pkg_name
HTML documentation: .................................. $docdir
DVI documentation: ................................... $docdir
PDF documentation: ................................... $docdir
PS documentation: .................................... $docdir
findlib_version: ..................................... 1.4
is_native: ........................................... true
suffix_program: ......................................
Remove a file.: ...................................... rm -f
Remove a directory.: ................................. rm -rf
Turn ocaml debug flag on: ............................ true
Turn ocaml profile flag on: .......................... false
Compiler support generation of .cmxs.: ............... true
OCamlbuild additional flags: .........................
Create documentations: ............................... true
Compile tests executable and library and run them: ... false
ocaml setup.ml -build
+ make
/usr/bin/ocamlopt.opt unix.cmxa -I /usr/lib64/ocaml/ocamlbuild /usr/lib64/ocaml/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /usr/lib64/ocaml/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
ocamlfind ocamlc -c lib/vhd_stubs.c
+ ocamlfind ocamlc -c lib/vhd_stubs.c
lib/vhd_stubs.c:11:24: fatal error: vhd/libvhd.h: No such file or directory
#include <vhd/libvhd.h>
^
compilation terminated.
Command exited with code 2.
E: Failure("Command ''/usr/bin/ocamlbuild' lib/libvhdlib_stubs.a lib/dllvhdlib_stubs.so lib/vhdlib.cma lib/vhdlib.cmxa lib/vhdlib.a lib/vhdlib.cmxs lib_test/open.byte -tag debug' terminated with error code 10")
Makefile:5: recipe for target 'build' failed