Standard DLL provides
by Sandro Mani
Hi
Currently mingw-filesystem contains
# (rpm -ql mingw32-crt | grep '\.a$' | while read f ; do
i686-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr
A-Z a-z > standard-dlls-mingw32
Source20: standard-dlls-mingw32
# (rpm -ql mingw64-crt | grep '\.a$' | while read f ; do
x86_64-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr
A-Z a-z > standard-dlls-mingw64
Source21: standard-dlls-mingw64
# (rpm -ql ucrt64-crt | grep '\.a$' | while read f ; do
x86_64-w64-mingw32ucrt-dlltool -I $f 2>/dev/null ; done) | sort | uniq |
tr A-Z a-z > standard-dlls-ucrt64
Source22: standard-dlls-ucrt64
and
%package -n mingw32-filesystem
[...]
Provides: %(sed "s/\(.*\)/mingw32(\1) /g" %{SOURCE20} | tr "\n" " ")
Provides: mingw32(mscoree.dll)
%package -n mingw64-filesystem
[...]
Provides: %(sed "s/\(.*\)/mingw64(\1) /g" %{SOURCE21} | tr "\n" " ")
Provides: mingw64(mscoree.dll)
%package -n ucrt64-filesystem
[...]
Provides: %(sed "s/\(.*\)/ucrt64(\1) /g" %{SOURCE22} | tr "\n" " ")
Provides: ucrt64(mscoree.dll)
I wonder whether these standard DLL provides should be provided by
mingw32-crt, mingw64 and ucrt64-crt instead? The provided DLLs depend on
the mingw-w64 version (indeed I just had to update them for
mingw-w64-10.0.0), and IMO it would be better to keep mingw-filesystem
independent from the mingw-w64 version, i.e. to allow adding macros etc
and allow simple git merges to update also the other branches. I'd
proceed with removing these from mingw-filesystem, and adding to
mingw-crt.spec:
# Steps:
# - Perform (scratch) build with bootstrap=1
# - Update the standard-dlls-xxx files as documented below, and rebuild
with bootstrap=0
%global bootstrap 0
%if 0%{?bootstrap:1}
# (rpm -ql mingw32-crt | grep '\.a$' | while read f ; do
i686-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr
A-Z a-z > standard-dlls-mingw32
Source1: standard-dlls-mingw32
# (rpm -ql mingw64-crt | grep '\.a$' | while read f ; do
x86_64-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr
A-Z a-z > standard-dlls-mingw64
Source2: standard-dlls-mingw64
# (rpm -ql ucrt64-crt | grep '\.a$' | while read f ; do
x86_64-w64-mingw32ucrt-dlltool -I $f 2>/dev/null ; done) | sort | uniq |
tr A-Z a-z > standard-dlls-ucrt64
Source3: standard-dlls-ucrt64
%endif
%package -n mingw32-crt
[...]
%if 0%{?bootstrap:1}
Provides: %(sed "s/\(.*\)/mingw32(\1) /g" %{SOURCE1} | tr "\n" " ")
Provides: mingw32(mscoree.dll)
%endif
%package -n mingw64-crt
[...]
%if 0%{?bootstrap:1}
Provides: %(sed "s/\(.*\)/mingw64(\1) /g" %{SOURCE2} | tr "\n" " ")
Provides: mingw64(mscoree.dll)
%endif
%package -n ucrt64-crt
[...]
%if 0%{?bootstrap:1}
Provides: %(sed "s/\(.*\)/ucrt64(\1) /g" %{SOURCE3} | tr "\n" " ")
Provides: ucrt64(mscoree.dll)
%endif
Any comments/objections?
Thanks
Sandro
2 months
Fwd: Standard DLL provides
by Sandro Mani
On 03.05.22 17:16, Richard W.M. Jones wrote:
> On Tue, May 03, 2022 at 04:46:34PM +0200, Sandro Mani wrote:
>>>> Any comments/objections?
>>>>
>>>>
>>>> That seems to make sense to me, is there a reason why it wasn't before?
>>>>
>> As far as I see mingw-filesystem provided the standard DLLs since
>> the beginning of the package, perhaps @rjones can recall if there
>> was a reason?
> The reason for having the standard provides at all, or the reason they
> are in mingw-filesystem? The reason for having them at all is just
> for uniformity. You can "BuildRequires: mingw(wsock32.dll)" and not
> care whether that comes from Windows/Wine or from Fedora.
>
> The reason they are in mingw-filesystem and not in mingw-crt is likely
> just because we put them there without thinking about it too much.
> (Or "filesystem" is the system environment).
>
> Anyway moving them seem sensible, I have no objections.
Ok thanks, I'll proceed then.
Sandro
2 months