-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Move crt & headers to common target prefix #10634
Conversation
For historical reasons, crt was installed under ${MINGW_PREFIX}/${MINGW_CHOST}, but there is no reason to use a sub-directory of the target prefix. This aligned with other mingw target directory structures in Fedora, Debian ... Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
For historical reasons, headers were installed under ${MINGW_PREFIX}/${MINGW_CHOST}, but there is no reason to use a sub-directory of the target prefix. This aligned with other mingw target directory structures in Fedora, Debian ... Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
hm, don't gcc and clang also reference this? |
${MINGW_PREFIX}/${MINGW_CHOST}/ is part of default include & library search path. But the file names used in specs (or elsewhere?) are not absolute, so we can move them to the common target prefix. |
Thanks! They don't have to be rebuilt right away, but they may need to be updated. I see some cases where the path shouldn't be hardcoded, but rely on compiler default search path instead. |
I've asked @Alexpux if he remembers why things are the way they are right now. |
That's a distribution policy, it's not strictly required for end users. Many distributions accept a temporary FTBFS state (fail to build from source). This happend every now and then because a new compiler or library dependency regression. Is there a way to trigger a mass-rebuild of all the packages for testing? |
This argument I don't quite understand. When not cross compiling, it's ok to assume that files in For msys2, I guess this change would be ok, as all toolchains there are mainly non-cross, but I don't see the argument about likeness with how cross compilers are set up in at least Debian (I'm not familiar with Fedora). |
On msys2, ${MINGW_PREFIX} is the equivalent of (for ex) Debian On Debian, Fedora etc, mingw crt & headers, and various libraries are all installed under the same prefix. There is no need for an extra sub-directory ${MINGW_PREFIX}/${MINGW_CHOST}. (having the same directory structure allows to install msys2/mingw packages on Linux and link |
I presume you mean the equivalent of
Ok, sure, that usecase makes sense. And yes, there's a maybe unusal split in msys2 today with the toolchain's files being in |
Some feedback on mingw-w64 IRC:
ok, let's give this a try then.
|
thanks, I am not experienced with pacman, but let me know if I can help. |
Here is a list of file conflicts created by the move:
If anyone has any idea how to handle these, go ahead. |
Ok, some ideas below. I suppose ideally you would want to fix all before moving the crt & headers.
Hi @freddy77 ! the file name conflicts with a windows system header. can it be renamed or moved upstream?
Existing conflict. They look like the same file, we should ask upstream to use the system one.
The file doesn't seem to be included by the rest of the headers. Furthermore the symbols are not exported by the dll.
Those 2, perhaps msys2 doesn't have to ship the static library? For pupnp, the library name doesn't follow package name. Maybe they can consider a rename for future releases..
Given that they are explicitly consistent with the MS headers, they should use the system headers when available. |
They both provides the same header so I think renaming it would make no sense. The idea of this header was providing it for systems not having it. But if the system provides it (that is Windows target) using the system one should be the same (they should be compatibles). So I think the perfect solution to fix the issue would be for FreeTDS not installing the header if already provided by the system. Not sure 100% if they are really compatibles perfectly. In particular some functions exported by Windows ODBC driver manager are not available by Unix ODBC driver managers so I use some static inline definition in this file to override them, but this should not be necessary on Windows targets (the FreeTDS ODBC driver exports the needed functions for the DM). |
glbinding header conflict was fixed in v3.3 cginternals/glbinding#299 |
Oh, it's a branch actually, apparently forked from master a few weeks ago: https://github.com/cginternals/glbinding/commits/v3.3 @scheibel did you release 3.2.0 and 3.3.0 ? |
For hdf4: I can make a msys2 backport if that helps. In general, I think it should use |
For unixodbc: I tried to compile with the system headers, but it fails. I suggest we use |
We haven't officially released a version |
Many thanks @lazka ! What do you do of the remaining conflicts? |
According to my scripts there aren't any left now. |
There is some potential fallout from this (limited, since I can't reproduce): Though no clue right now. |
python2 build also broken, looks for system headers in old path and refuses to pick them up from current. |
For historical reasons, headers were installed under
${MINGW_PREFIX}/${MINGW_CHOST}, but there is no reason to use a
sub-directory of the target prefix.
This align with other mingw target directory structures in Fedora,
Debian ...
Fixes #10630