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

texlive-bin: Rebuild with current runtime and compiler #21290

Merged
merged 4 commits into from
Jul 2, 2024

Conversation

mmuetzel
Copy link
Collaborator

@mmuetzel mmuetzel commented Jul 1, 2024

This is an attempt to fix some build errors of the texlive-bin package. It is based on the changes from #19921.

It works around the issue with the conversion of path lists (msys2/msys2-runtime#208) by manually converting the respective paths from relative to absolute using cygpath.
It also cherry-picks some fixes from upstream and uses the -Wno-error=incompatible-pointer-types work-around to avoid some build errors with GCC 14.

It still fails with errors (in an ICU header iiuc). Maybe, someone has hints how to fix that or would like to continue from here.

It fails with errors like the following for me locally:

In file included from C:/msys64/mingw64/include/unicode/ubidi.h:26,
                 from ../../../texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:37:
C:/msys64/mingw64/include/unicode/localpointer.h:561:26: error: 'auto' parameter not permitted in this context
  561 | template <typename Type, auto closeFunction>
      |                          ^~~~
C:/msys64/mingw64/include/unicode/localpointer.h:573:76: error: template argument 2 is invalid
  573 |     explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p)
      |                                                                            ^
C:/msys64/mingw64/include/unicode/localpointer.h:583:78: error: template argument 2 is invalid
  583 |     LocalOpenPointer &operator=(std::unique_ptr<Type, decltype(closeFunction)> &&p) {
      |                                                                              ^
C:/msys64/mingw64/include/unicode/localpointer.h:599:59: error: template argument 2 is invalid
  599 |     operator std::unique_ptr<Type, decltype(closeFunction)> () && {
      |                                                           ^
C:/msys64/mingw64/include/unicode/ubidi.h:579:1: note: invalid template non-type parameter
  579 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUBiDiPointer, UBiDi, ubidi_close);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~

@jhol
Copy link
Contributor

jhol commented Jul 1, 2024

Those errors look like what you would get from g++ if the C++ language standard was not set to C++11 or newer.

@mmuetzel
Copy link
Collaborator Author

mmuetzel commented Jul 1, 2024

Aaah. Doesn't ICU require C++17 now?
It's set to C++14 currently. Let me try that...

Edit: That seems to be the case indeed: https://icu.unicode.org/download/75
I'll try building locally with that changed first.

@mmuetzel
Copy link
Collaborator Author

mmuetzel commented Jul 1, 2024

That seems to have done the trick (at least for me locally in the MINGW64 environment).

@mmuetzel mmuetzel marked this pull request as ready for review July 1, 2024 20:00
@mmuetzel mmuetzel force-pushed the texlive branch 2 times, most recently from cf32f9b to bf4df77 Compare July 2, 2024 07:17
See: https://icu.unicode.org/download/75

Also append the flag that changes the C++ standard to `CXX` instead of
`CXXFLAGS` so that configure test involving only the preprocessor (not
the compiler) are using the same standard.

Fix typos.
@ReinhardBiegelIntech
Copy link

ReinhardBiegelIntech commented Jul 2, 2024

That looks like a lot of effort, considering similar fixes might also be necessary for other packages. Maybe we could have another go on this one msys2/msys2-runtime#213 @lazka?

@mmuetzel mmuetzel merged commit 1798c60 into msys2:master Jul 2, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants