| Anonymous | Login | Signup for a new account | 2013-05-20 11:34 CEST | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | ||||||
| 0004943 | OCaml | OCamlbuild (the tool) | public | 2009-12-17 15:37 | 2010-07-22 11:43 | ||||||
| Reporter | ygrek | ||||||||||
| Assigned To | xclerc | ||||||||||
| Priority | normal | Severity | feature | Reproducibility | always | ||||||
| Status | assigned | Resolution | open | ||||||||
| Platform | OS | OS Version | |||||||||
| Product Version | 3.11.1 | ||||||||||
| Target Version | Fixed in Version | ||||||||||
| Summary | 0004943: ocaml_lib is not specific enough with tags, leading to highly confusing error message | ||||||||||
| Description | Consider this ocaml_lib code (in ocaml_utils.ml) : if byte then flag_and_dep ["ocaml"; tag_name; "link"; "byte"] (libpath^".cma"); if native then flag_and_dep ["ocaml"; tag_name; "link"; "native"] (libpath^".cmxa"); When the final linking target is a program - everything is ok. If it is a library - ocamlc will work, but ocamlopt will refuse to link cmxa into another cmxa, producing highly confusing error message : "...cmxa is not a compilation unit description". Of course, this situation can be avoided by carefully specifying tags like "true and not <*.cmxa>: use_lib" but this quickly becomes cumbersome in non-trivial projects. So the suggestion is for ocaml_lib to be more specific with tags : if byte then flag_and_dep ["ocaml"; tag_name; "link"; "program"; "byte"] (libpath^".cma"); if native then flag_and_dep ["ocaml"; tag_name; "link"; "program"; "native"] (libpath^".cmxa"); Are those the only link targets : "library" and "program" ? | ||||||||||
| Additional Information | $ cat _tags true: use_str $ cat q.ml let x = Str.regexp "a" $ cat q.mllib Q $ ocamlbuild q.cma Finished, 3 targets (0 cached) in 00:00:00. $ ocamlbuild q.cmxa + /usr/bin/ocamlopt.opt -a str.cmxa q.cmx -o q.cmxa File "_none_", line 1, characters 0-1: Error: /usr/lib/ocaml/str.cmxa is not a compilation unit description. Command exited with code 2. | ||||||||||
| Tags | No tags attached. | ||||||||||
| Attached Files | |||||||||||
Notes |
|
|
(0005196) ygrek (reporter) 2009-12-17 15:43 |
Looks like more link targets should be considered : "output_obj" and "toplevel" |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2009-12-17 15:37 | ygrek | New Issue | |
| 2009-12-17 15:43 | ygrek | Note Added: 0005196 | |
| 2010-01-07 16:25 | doligez | Status | new => acknowledged |
| 2010-04-18 14:40 | xleroy | Relationship added | related to 0004958 |
| 2010-04-18 14:40 | xleroy | Status | acknowledged => assigned |
| 2010-04-18 14:40 | xleroy | Assigned To | => ertai |
| 2010-07-22 11:43 | ertai | Assigned To | ertai => xclerc |
| 2012-02-02 15:17 | protz | Category | OCamlbuild => OCamlbuild (the tool) |
| Copyright © 2000 - 2011 MantisBT Group |