Skip to content

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

Merged
mmuetzel merged 4 commits intomsys2:masterfrom
mmuetzel:texlive
Jul 2, 2024
Merged

texlive-bin: Rebuild with current runtime and compiler#21290
mmuetzel merged 4 commits intomsys2:masterfrom
mmuetzel:texlive

Conversation

@mmuetzel
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown

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?

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