Skip to content
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

Some problems with library on Windows #87

Closed
giordano opened this issue Aug 31, 2022 · 5 comments · Fixed by #97
Closed

Some problems with library on Windows #87

giordano opened this issue Aug 31, 2022 · 5 comments · Fixed by #97
Assignees
Labels
bug Something isn't working

Comments

@giordano
Copy link
Collaborator

giordano commented Aug 31, 2022

There are currently two orthogonal issues with the library on Windows (spotted in jump-dev/Ipopt.jl#327 (comment)):

  • the soversion of the library, fixed in src/Make.inc is stalling:
    LBT_SOVERSION_MAJOR := 5
    LBT_SOVERSION_MINOR := 0
    LBT_SOVERSION_PATCH := 2
    but the latest release at the moment is v5.1.1
  • $(builddir)/$(LIB_FULL_VERSION): $(MAIN_OBJS)
    @$(call PRINT_CC,$(CC) -o "$@" $(call IMPLIB_FLAGS,$@) $(LBT_CFLAGS) $(SONAME_FLAG) $^ -shared $(LBT_LDFLAGS))
    generates the import library for $@, which is LIB_FULL_VERSION, which is a bad idea because it means the ABI is broken in every single version (well, every single version where the soversion is actually bumped, see point above)

An overall solution is probably to stop generating the library with the full name on Windows, or at least generating the import library for LIB_MAJOR_VERSION instead of LIB_FULL_VERSION.

It remains the problem of actually remembering to update the soversion in src/Make.inc when doing a new release.

CC: @ViralBShah

@giordano giordano added the bug Something isn't working label Aug 31, 2022
@ViralBShah
Copy link
Collaborator

So should we sync the version, or just have only the major version? I assume we need Julia 1.8.1 with this fix, right?

@giordano
Copy link
Collaborator Author

So should we sync the version, or just have only the major version?

In any case we should generate the import library for LIB_MAJOR_VERSION, not for LIB_FULL_VERSION, that's a really bad idea. There is the question of whether to keep LIB_FULL_VERSION around.

Going forward it'd be great the have the soversion actually match the "version number" of the package, otherwise it's an inconsistent mess.

I assume we need Julia 1.8.1 with this fix, right?

Yes, but fixing this issue will break the ABI of the library on Windows.

@ViralBShah
Copy link
Collaborator

Will this fix the null pointer issue in mumps_seq and ipopt_jll on windows? Is it still something else?

@giordano
Copy link
Collaborator Author

giordano commented Sep 1, 2022

I don't think this is the culprit there, but it is a compatibility problem

@giordano
Copy link
Collaborator Author

Will this fix the null pointer issue in mumps_seq and ipopt_jll on windows? Is it still something else?

For the record, that issue is tracked by #89, and may be related to the confusion between the libraries available on Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants