Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005339OCaml~DO NOT USE (was: OCaml general)public2011-08-16 15:082012-09-25 20:06
Assigned Tofrisch 
PlatformOSOS Version
Product Version3.12.1 
Target VersionFixed in Version 
Summary0005339: flexlink may fail to parse directives

One of my compilation failed during the linking phase, with the following message:

$ ocamlbuild ms_gates.dll
ocamlfind ocamlopt -o ms_gates.native.dll -linkpkg -package mtsvrac -package gates -output-obj gates/gates_dll.cmx gates/ms_gates_rev.o
** Fatal error: Cannot parse directive: -export:"ms_gates_min_max_porte" -export:"ms_gates_get_color" -export:"ms_gates_set_color" -export:"ms_gates_get_mode" -export:"ms_gates_set_mode" -export:"ms_gates_get_synchro" -export:"ms_gates_set_synchro" -export:"ms_gates_set_synchro_with_opt" -export:"ms_gates_get_sme" -export:"ms_gates_set_sme" -export:"ms_gates_get_width" -export:"ms_gates_set_width" -export:"ms_gates_get_shown" -export:"ms_gates_set_shown" -export:"ms_gates_get_active" -export:"ms_gates_set_active" -export:"ms_gates_get_level" -export:"ms_gates_set_level" -export:"ms_gates_get_begin" -export:"ms_gates_set_begin" -export:"ms_gates_compute_ascan_array_u8" -export:"ms_gates_compute_ascan_array_i8" -export:"ms_gates_compute_ascan_array_i16" -export:"ms_gates_compute_u8" -export:"ms_gates_compute_i8" -export:"Java_com_metalscan_ndtcomponents_gatesdevice_GatesDll_computeGates" -export:"ms_gates_compute_i16" -export:"ms_gates_table_size" -export:"ms_gates_mini_maxi" -export:"ms_gates_swap" -export:"ms_gates_suppress_gate" -export:"ms_gates_suppress_gate_with_opt" -export:"ms_gates_add_gate" -export:"ms_gates_add_gate_with_opt" -export:"ms_gates_forget_table" -export:"ms_gates_create_table" -export:"ms_gates_init_ok" -export:"ms_gates_init" -export:"ms_gates_version"

File "caml_startup", line 1, characters 0-1:
Error: Error during linking
Exit code 2 while executing this command:
  ocamlfind ocamlopt -o ms_gates.native.dll -linkpkg -package mtsvrac -package gates -output-obj gates/gates_dll.cmx gates/ms_gates_rev.o

After some investigation, it appears that the directive parsing function fails because the last char of the directive string is the closing '"' of an exported symbol. I'm attaching a patch (against rev 195 of [^]) that solves the bug, and I hope do not add other one.

Sidenote : this case was encountered during my experiments to use i686-w64-mingw32- cross-compilation tools.

TagsNo tags attached.
Attached Filespatch file icon flexlink_parse_directive.patch [^] (1,052 bytes) 2011-08-16 15:08 [Show Content]

- Relationships

-  Notes
frisch (developer)
2011-09-07 10:14

Thank, well spotted! I've applied a similar patch to the development version of flexdll (commit 198 on flexdll SVN repository).

- Issue History
Date Modified Username Field Change
2011-08-16 15:08 matt New Issue
2011-08-16 15:08 matt File Added: flexlink_parse_directive.patch
2011-08-16 18:14 frisch Status new => assigned
2011-08-16 18:14 frisch Assigned To => frisch
2011-09-07 10:14 frisch Note Added: 0006119
2011-09-07 10:15 frisch Status assigned => resolved
2011-09-07 10:15 frisch Resolution open => fixed
2012-09-25 20:06 xleroy Status resolved => closed
2017-02-23 16:36 doligez Category OCaml general => -OCaml general
2017-03-03 17:55 doligez Category -OCaml general => -(deprecated) general
2017-03-03 18:01 doligez Category -(deprecated) general => ~deprecated (was: OCaml general)
2017-03-06 17:04 doligez Category ~deprecated (was: OCaml general) => ~DO NOT USE (was: OCaml general)

Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker