You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 4422 Reporter: jessicah Assigned to:@xclerc Status: closed (set by @xavierleroy on 2015-12-11T18:20:55Z) Resolution: unable to duplicate Priority: normal Severity: major Version: 3.10.0 Target version: 4.01.0+dev Category: -for ocamlbuild use https://github.com/ocaml/ocamlbuild/issues
Bug description
This is probably user-error, as I can't find quite enough documentation on ocamlbuild, being how new and experimental it is... ;-)
I have a myocamlbuild plugin that replaces the link step using ocamlopt to a custom command using ld, but sometimes it doesn't perform this part of the build even if dependencies were rebuilt.
My ocamlbuild plugin looks something like:
let ld_linker tags deps out =
Cmd (S [A"ld"; A"-nostdlib"; A"-export-dynamic"; A"-T";
A"../libkernel/kernel.lds"; flags_of_pathname out;
A"-s"; P"startup/stage1.o"; P"startup/stage2.o";
P"libasmrun/libasmrun.a";
atomize_paths deps; T tags; A"-o"; Px out]);;
let ld_native_link x =
OComp.link_gen "cmx" "cmxa" "a" ["o"; "cmi"] ld_linker
(fun tags -> tags++"ocaml"++"link"++"native"++"program") x;;
In the root dir, I have snowflake.ml, that calls a function in a module, snowflake/soundblaster16.ml.
Often times, when I make changes to soundblaster16.ml and run ocamlbuild, it will rebuild soundblaster16.ml, but it doesn't rebuild snowflake.native.
I often end up having to clean my tree and start building from scratch to get a successful build, which is frustrating. Things like changing the values of constants always fails to trigger a rebuild of snowflake.native.
Thanks,
Jessica
The text was updated successfully, but these errors were encountered:
I cannot reproduce the bug. Please provide sources and a method to trigger the bug, i.e. some changes that are not detected by ocamlbuild.
There used to be a problem because .cmx files don't change when you just modify constants in the code, so digest-base build tools don't rebuild in this case, but this is fixed in ocamlbuild thanks to a dependency towards the .o file.
Original bug ID: 4422
Reporter: jessicah
Assigned to: @xclerc
Status: closed (set by @xavierleroy on 2015-12-11T18:20:55Z)
Resolution: unable to duplicate
Priority: normal
Severity: major
Version: 3.10.0
Target version: 4.01.0+dev
Category: -for ocamlbuild use https://github.com/ocaml/ocamlbuild/issues
Bug description
This is probably user-error, as I can't find quite enough documentation on ocamlbuild, being how new and experimental it is... ;-)
I have a myocamlbuild plugin that replaces the link step using ocamlopt to a custom command using ld, but sometimes it doesn't perform this part of the build even if dependencies were rebuilt.
My ocamlbuild plugin looks something like:
let ld_linker tags deps out =
Cmd (S [A"ld"; A"-nostdlib"; A"-export-dynamic"; A"-T";
A"../libkernel/kernel.lds"; flags_of_pathname out;
A"-s"; P"startup/stage1.o"; P"startup/stage2.o";
P"libasmrun/libasmrun.a";
atomize_paths deps; T tags; A"-o"; Px out]);;
let ld_native_link x =
OComp.link_gen "cmx" "cmxa" "a" ["o"; "cmi"] ld_linker
(fun tags -> tags++"ocaml"++"link"++"native"++"program") x;;
rule "cmx* & o* -> native"
~tags:["ocaml"; "native"; "program"]
~prod:"%.native"
~deps:["%.cmx"; "%.o"; "%.startup"]
~insert:`top
(ld_native_link "%.cmx" "%.native");;
Pathname.define_context "" ["snowflake"; "snowflake/net"];;
In the root dir, I have snowflake.ml, that calls a function in a module, snowflake/soundblaster16.ml.
Often times, when I make changes to soundblaster16.ml and run ocamlbuild, it will rebuild soundblaster16.ml, but it doesn't rebuild snowflake.native.
I often end up having to clean my tree and start building from scratch to get a successful build, which is frustrating. Things like changing the values of constants always fails to trigger a rebuild of snowflake.native.
Thanks,
Jessica
The text was updated successfully, but these errors were encountered: