-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue with link order of archive files specified twice on the command line #87
Comments
Indeed, if we could wind back time, |
Ah sorry - I overlooked it : I uploaded the log to my AWS account - Github seems to have some hickups (https://msoegtrop-public.s3.eu-central-1.amazonaws.com/CoqIdeFlexlink.zip) |
A Gist is the other way to link large log files |
Thanks, I will try this next time. If the size is the issue, Github could at least give a proper error message. I got "Something went really wrong - please try again" (about 10x). Would scripts to get you to this point help? |
Gist doesn-t work for me either - I get a time out during the upload after a few minutes - upload to AWS takes 2 seconds. (https://msoegtrop-public.s3.eu-central-1.amazonaws.com/CoqIdeFlexlink_explain.zip) Here is one of the error messages I get:
|
If you can post the scripts yes, I think it might! |
I will post the scripts tomorrow (there is a Coq workshop today) |
@dra27 : I pushed the build scripts here : (https://github.com/MSoegtropIMC/coq-platform/tree/windows-8.12.0) You need the opam and windows folders (this is pretty much the complete repo). In the windows folder, adjust the paths in The script should end with:
|
P.S.: running the script will take about 5GB of disk space in the folders you specified. |
Previous versions of coqide stopped working with lablgtk3.3.0.beta7 and later. This looks like the same issue. Did you examine the differences between these version of lablgtk3? Perhaps it's not related to flexdll at all, but due to the changes inside lablgtk3. |
@fdopen: I spent about half a day looking into what is going on and as far as I can tell there are linker errors on missing symbols which are there and the library order is fine. It might be that labgtk changed the link order - I can check this. But to me it looks like a bug in the link phase. If it is flexlink's or ld's fault I cannot say, but from the debug dumps flexlink produces I would more say it is flexlink's fault. |
I am currently in the process of moving the Coq Windows build from our old shell scripts to opam. Doing so, I have an issue with linking CoqIDE with flexlink. I (or ocamlfind) specify one archive twice on the command line like this:
liblablgtk3_stubs needs symbols defined in lpangocairo-1.0 and the
nm
tool tells me that the symbols are there. Still I get an error that the symbols are undefined.I looked into this with SysInternals ProcMon and all involved tools (flexlink, mingw gcc and ld) read the archives in the order libpangocairo and then lablgtk3_stubs. Notably pangocairo-1.0 is not read a second time although it is specified twice.
As far as I know at least ld does not use objects in an archive when they don't contain currently needed symbols, so in this order pangocairo-1.0 get's ignored.
Another interesting point is that the command line to gcc does not contain libpangocairo at all, although it does read it later - not sure what kind of magic this is (See line 9175 in the attached log).
I must admit I am not 100% sure what version of flexlink I have since it is supplied by opam and it doesn't seem to have an option to display this.
If this helps I can supply batch/shell scripts which install a fresh cygwin and bring you to the point of this error.
P.S.: I tried to attach the ProcMon log as txt or zip - it won't let me giving obscure errors. I will try again after creating the issue.
The text was updated successfully, but these errors were encountered: