Win-builds and Mingw-w64: Package manager and modern toolchains for Windows
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 199 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/32664 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
BitDefault (computer science)Formal languageProduct (business)JSONXMLUMLLecture/Conference
00:37
Point (geometry)User interfaceMultiplication sign1 (number)WeightWindowView (database)Binary codeJSONXMLUML
01:23
Computer programmingReverse engineeringDifferent (Kate Ryan album)InformationOpen sourceEmailMathematicsCodePower (physics)Arithmetic meanProjective planeBasis <Mathematik>Lecture/ConferenceXML
03:21
Group actionPressureExecution unitStudent's t-testBuildingDifferent (Kate Ryan album)Patch (Unix)Lecture/ConferenceSource codeXML
04:36
MathematicsClosed setAreaRevision controlSlide ruleObject (grammar)Mixed realityTheoryVideo gameDataflowRule of inferenceSystem callFocus (optics)Water vaporStudent's t-testCodeMultiplication signProjective planeWindowCompilation albumEmailDifferent (Kate Ryan album)1 (number)InformationIntegrated development environmentSingle-precision floating-point formatInstance (computer science)Gastropod shellLecture/ConferenceSource codeXML
08:29
CASE <Informatik>Expert systemPlanningTheory of relativityResultantEuler anglesMachine visionFitness functionInformationWordExecution unitSummierbarkeitINTEGRAL1 (number)Goodness of fitSimilarity (geometry)Level (video gaming)TheoryPosition operatorBuildingDistribution (mathematics)Student's t-testRevision controlCore dumpCompilerWeb applicationPatch (Unix)BitBinary codeLibrary (computing)Projective planeSoftware testingWindowTask (computing)SoftwareFrustrationComputer hardwareMultiplication signFreewareFunction (mathematics)Installation artChainDifferent (Kate Ryan album)Single-precision floating-point formatMultilaterationJava appletRight angleComputer architectureLecture/ConferenceXML
17:21
Dimensional analysisData managementWindowProjective planeWebsiteInformation securityMathematicsSoftware testingInstallation artLibrary (computing)Product (business)Integrated development environmentRevision controlPlanningFlow separationFerry CorstenDistanceUsabilityBitState of matterHeuristicCondition numberMeasurementTheoryLattice (order)ComputerFood energyCASE <Informatik>Lecture/ConferenceXML
23:03
Link (knot theory)ResultantWeb 2.0Projective planeSearch engine (computing)MathematicsDifferent (Kate Ryan album)Installation artWindowElectronic visual displaySource codeXML
23:57
Multiplication signScripting languageBinary codeBayesian networkSynchronizationSource codeProgram flowchart
24:41
Computer fileScripting languageCache (computing)Graphical user interfaceStapeldateiComputer programmingLink (knot theory)WindowMultiplicationChainIntegrated development environmentLengthDuality (mathematics)AdditionVideo gameInstance (computer science)VotingWordGreen's functionFrequencyComputer animation
26:39
Computer fileRight angleMultiplication signProcess (computing)Engineering drawingComputer animation
27:21
VideoconferencingWordPhysical lawAuthorizationBitChainLine (geometry)Video gameUser interfaceSoftware testingLattice (order)Division (mathematics)Game theoryWebsiteElectric generatorSequenceEvent horizonRight angleIntegrated development environmentFigurate numberData managementNumerical analysisDampingStatisticsComputer fileFeedbackElectronic mailing listRevision controlWindowMachine codeCodeInstallation artInternetworkingJunction (traffic)Link (knot theory)LoginProcess (computing)Chemical equationXMLProgram flowchartSource code
32:10
Expected valueElectronic mailing listConfiguration spaceLibrary (computing)Term (mathematics)MathematicsAutomatic differentiationTable (information)Link (knot theory)Key (cryptography)SummierbarkeitMultiplication signFormal languageComputer animationLecture/ConferenceSource code
33:41
MehrplatzsystemLevel (video gaming)2 (number)Scripting languageFile archiverWordOpen source
34:22
Open sourceInformationStapeldateiView (database)Different (Kate Ryan album)Execution unitPatch (Unix)Forcing (mathematics)SoftwareSoftware bugLine (geometry)BitType theoryConfiguration spaceComputer fileRight angleDirected graphMathematicsComputer configurationLecture/ConferenceSource codeXML
36:42
View (database)Library (computing)Theory of relativityDifferent (Kate Ryan album)Right angleCASE <Informatik>Revision controlPattern languageWeb page1 (number)HTTP cookieBookmark (World Wide Web)QuicksortExecution unitArithmetic meanFood energyInstance (computer science)Group actionComputerMachine visionMereologyObservational studyWindowComputer fileCompilerIntegrated development environmentBitMathematicsAuthorizationPhysical systemLinker (computing)String (computer science)Lecture/ConferenceSource codeXML
40:36
WindowDistribution (mathematics)Latent heatServer (computing)Computer configurationNumerical analysisString (computer science)Revision controlCASE <Informatik>Selectivity (electronic)Multiplication signBitData compressionState of matterMoment (mathematics)Right angleBinary fileLattice (order)BuildingWordPower (physics)1 (number)Pattern languageMereologyInterior (topology)Meeting/Interview
Transcript: English(auto-generated)
00:00
And with any further ado, present Adrian Nader. And so, yeah, who's in my space? All right, so, it's actually a bit tangential to wine,
00:20
because I'm going to talk about both Mingu 64, which wine works with, well, it works both ways, and a product of mine, which is windbills.org, which is, which shows you make packages, binary packages for Windows, so you can build from Linux,
00:42
one on Windows, well, build on Windows 2, and at some point, the other way around, if possible. So, yeah. First, let's cover a third of the talk, Mingu 64, what it is, what it wants to do in the future.
01:02
Another view of windbills, and then some more technical details, and a few, and some advice. Yeah, so, 64 was started three years ago
01:25
by a German company who had some program which required, like, more than two gigabytes of memory, so quite a lot more. And, well, because they had huge images,
01:40
so they did changes to Mingu, to DOSBOL, to GCC, to villages, to everything they required, and the really nice thing they did is donate the code to Kai Tix. And Kai then went on and upstreamed it. He did all the paperwork with the SSS,
02:01
but maybe he had it before I landed. Instead of working on GCC, he continued working for several years, so I think it's been, like, at least six, seven years, maybe. And most of it, most of the changes have been upstreamed,
02:24
but the changes to Mingu.org, there's been some politics involved, and Mingu.org saying, No, we are already doing 64-bit stuff, or we'll be doing it in the future. I won't get into the details.
02:41
It's always nice. And again, the Mingu 64 project, which is now hosted on SoFor. And, yeah. So, what's similar to Mingu.org is headers, information comes from MSDN.
03:04
That's the public source of information, no issue. But one big theoretical difference is headers can also be built through reverse engineering. Mingu.org does not want anything with that.
03:21
They say they want to stay clear of any legal issue, so they stay with MSDN. Well, but MSDN isn't exhaustive, it's not even covered sometimes, and you, especially when you go in the lower layers, you're going to have issue with it.
03:43
So, that's why you can't reunite headers, for example, of both projects. Well, not that easily. The difference if you try to build something with Mingu.org, you'll see that usually you couldn't just take the FSL GTC,
04:03
everything else from their website, if you had to add some patches. And Mingu 64, there's no patches required. It can happen, but usually you're fine with anything else. Oh, yeah.
04:21
And one thing I've really enjoyed with Mingu 64 is that it's much more welcoming, and that makes it nice to work with. Oh, yeah. And also, one goal is to reach the ABI of MSDC for C++,
04:40
because right now you can't mix objects from the two, but that's a goal, it's getting closer, and it's why if we want a true GCC version, you have to rebuild all your C++ stuff, because the ABI has changed, and Kelly is a cool person, but I don't think he's here for you to throw stones at him.
05:03
He was here. Ah, he told me so. I haven't seen him yet. Maybe. He's probably hiding here, so he's already gone. Oh, cool. Oh, yeah, he left the force. Ah, I see.
05:22
So, yeah, I work in the Mingu 64 code. So, we have headers, of course, which go up to Windows 8, I think, now. You get additional things quite regularly, unlike Mingu.org, which Mingui.org, sorry,
05:43
which was took last time and looked at, like, five, six, seven years of life. That's why also C++ projects do things together, because the DirectX headers come from Wine,
06:02
and the GDPR ones come from ReactOS. And also, for headers, there's also some code, which is mostly when the single time of Microsoft
06:21
doesn't handle C99, C11, and a lot of it. And Mingui 64 adds code to fill in the gaps. And the nice thing is, for libn, actually, Mingui 64's code is faster than Microsoft's.
06:44
And if you want to build for, well, with Mingui 64, there are quite several possibilities. You can cross-compile from Linux. You can build from any of the POSIX-like environments,
07:02
which run on Windows or Seguin. And this is a fault from Seguin from, like, 10 or 15 years ago. And this, too, is a fault from Seguin, which has pretty much the same difference, but the code from Seguin is only from last year.
07:25
And then there's U-Wing, which is made by DevCom. The other one who uses it, maybe beside him. And I'm really curious to know who performs and when it should be used instead of Seguin, for instance.
07:41
But I have no info on that. Yeah, from what I know, they have licensing differences. I think U-Wing might be something that you would be able to use. I say, yeah, Seguin's GL is GPL. U-Wing not, but I don't know if you have differences
08:01
in, like, performance. Ask Dev, too, but haven't gotten an answer yet. And, well, last point, you can also do native compilation.
08:20
And the last thing to know is that you will be without any shell. Well, without any POSIX shell. So that's mostly when you run from an IDE. And one thing that you are doing in many of these, almost as many as Linux distributions,
08:42
people who make binaries of two chains and possibly libraries and other binaries, other execs as well. So OpenSUSE and Fedora, they are teams which handle,
09:00
they've been using Mingu 64 for quite some time. And if you're working on one of these distributions, just go with them. They are like at least 2,000 packages, probably more. It's very exhaustive, what it is to do. And I think in both cases, you have either a novel
09:22
or a web app which at least uses the packages. So users, really, users who care about quality. It builds from source, and they have quite a lot of packages.
09:43
But sometimes a bit weird with some weird patches. And they do static linking of LGPL libraries, which means you're going to have troubles with, you might have troubles with license,
10:01
because you won't be able to easily swap the LGPL binary for another one. Okay, I'm going to make it shorter. Ruben Givi, he has some nice builds. Well, he does many builds. And he has some nice ones with Clang, and he's been working on LLVM more recently.
10:23
Sigrin, there's a first compiler in it, which is from Jonathan Young, who is a core member of Mingu 64. And WinBuild, which is my, which is a bit sweet also.
10:41
Are you sure there's no Debian or Ubuntu? Oh, yeah, right. There are Debian, there are actually, not actually used directly, but R-U-L, single ones. But the big difference is that OpenCV and Fedora,
11:00
they have many libraries. If you want libvorbis, if you want libidontknowwhat, they're going to ship it. The compiler, they have the toolchain. There are a few other ones, but not that many. Some of them are recently, but it's still fairly small.
11:44
I noticed that everyone was doing their own builds, especially a few years ago. It would be in GCC, it would be in libraries. It took ages, it wasn't easy.
12:00
Frustrating. So I thought maybe with a more systematic approach, I could make it less painful. I also wanted to make it, to have better free software on Windows. If people spend less time building,
12:22
they can spend more time coding, that could give nice results. And also, the last goal is that if you can bring more up-to-date and faster, then we can probably get companies which do
12:42
which do proprietary software to use them instead of other proprietary components, and then they can be supported on Linux, either because they are going to switch to Linux, or to win, more easily.
13:06
You need new Linux to build. You can run it on, if you, well, obviously it's cross-compilation, so you can run the compiler on Linux.
13:22
For the binaries, actually you can install everything on XP to 2012. I've tested like four versions of them. The only thing that XP is, is on issues at the OS level, not mine.
13:42
And I can't do anything to fix them or maybe work around them. So avoid it. Yeah, right now there are only 60 packages. It's not that much, but it actually covers quite a lot of things you might want to do.
14:03
There won't be, I don't think there will be more than a thousand packages, you know. Like, you don't need a package for modprob or kmod on Windows, it makes no sense. So that really means we have less packages.
14:22
Adding packages is actually quite easy. I'll get to that a bit later. But what took time was really to work on the architecture to make it nice and use it everywhere to make installers for Windows. And that was awful.
14:41
But version 1.3 was released a few weeks ago, and it works. It should be easy to set up, even if some people seem to have issues with it, but I will see soon. And version 1.4, which should have many more packages at least. I hope it's 20, well, 10 to 20 more
15:01
in two or three months. As for what's available in more details, you have C, C++, with C11 and C++11, support, w2, I haven't tried,
15:20
Ada, Fortran, Perl, or Ruby, mostly because I need a project to build against them and to use. I have no idea what people could want. We should not use Perl's own tests. Yeah, yeah. But I need it limited,
15:42
because since I do cross-compilation, I'd like to test it a bit more difficult to run. And also, I don't know the Perl one, but I know the GCC one on Windows, I think it would take like 24 hours to run on some very powerful hardware.
16:06
It's very difficult to run in practice. And because you can't call several tasks at the same time, because otherwise the output is going to be mixed. You won't see anything. That's on Windows, yeah.
16:25
Yeah, so, OGTC, I had them, but I built nothing which is OGTC. I know someone who used the next step on Windows, and the compiler works, but I haven't tried since then.
16:41
Oh, yeah. If you care about Java or OGTC, this is support. Well, you better do something now, because I can't build... GCC... GCG 64-bit cannot be built. The copy for libGC, which is in GCC,
17:04
is from 2007, so it does not have 64-bit support, and no one is taking care of it. So it's going to... Honestly, it's probably going to die very soon. Yeah, I've also been working on document post compiler,
17:23
and for Python, I think there's still a week for MSVC to build or to... Well, at some point, they don't handle main week, but they're working on it. So that should come by the end of the year, actually.
17:43
So status again, you can run GTK apps, plus that's only 2.x for now, and you only have 32-bit support. GTK 64-bit simply does not work.
18:01
You have enlightenment stuff, and several other libraries, and Qt is actually missing, because QH is a weird beast, and I haven't been able to... Well, I should try again with Qt 5, but with 4 something, it was not very, very nice.
18:23
All right. What about, as I said, more packages? I need... I seriously need to work on the test suite. When I have to try something on, I need to reboot on Windows,
18:41
and even if I need to do something by hand with even as few as 60 packages, it's going to take a good chunk of the day. When I want to make a release, it's going to take the weekend. That's something which I need to improve on. Well, if someone isn't interested in that,
19:03
get in touch, and I see what I can do too on my site. Yeah. Yeah, well, I don't mention, but I really want to get security fixes on Windows, well, of libraries and Windows in an efficient manner.
19:24
I'm not still sure how to do it efficiently, but to reach people. Long term, more packages, and I'd like to have... to include the package manager inside installers directly.
19:42
The idea is that you get the package manager, you append some payload, and, well, maybe not at the end, but you insert some payload, and you get an exit which you can run, which you will install the package manager, possibly update older version of some packages.
20:04
That's the plan. Let's get done, and I'll be working on that with one enlightenment people. You know E17, so maybe in ten years. Yeah, when I'm Windows, I'd really like to get that. I don't know if it's going to be used much,
20:22
but it's fine. Post-compile out from Linux to Windows. No, sorry, there was only one. From Windows to Linux, I actually know companies which do that, because they have been migrating the product to Windows,
20:42
but people are still working on Windows. They've been used to Windows environments for years, or they have some IT people who don't want to migrate away from Windows, but they're doing Linux ARM, and they use it.
21:05
If you want to start using it, I found the documentation is pretty much exhausted. At least for users, simple users should be good. If you want to package, well, you're supposed to do it from Linux.
21:20
It's easier, but you can also do it from Windows if you'd like to pay now. Prefer 1.4 Dev1, which has some much nicer changes. But if you only want to run it on Windows, 1.3, which is the current version advertised on the website,
21:40
you should not have any issue with it. Well, I hope so. As I mentioned, if you want to help on something, testing is really, really needed, especially testing on various versions of Windows. That's something I can do, but it's probably painful.
22:05
For the previous release, I've been testing installers for... I think I spent one month testing and fixing installers from XP to 2012. That's something I'd really like to share with others.
22:26
Also, if you have some code, please build it. I'll show you why at the end of the talk. There are many, many more issues which take nothing to fix. Usually, currently,
22:41
almost everything builds cleanly, well, mostly cleanly. That's actually pretty nice. It wasn't the case like three, four, five years ago. Yeah, that's quite a bit, looking to our websites. It's because there are quite a lot of websites
23:02
which, when you have new projects or projects which change web homepage, links are not updated, and you get fully owned results in search engines. So just a quick check. You don't have to... I'm not telling you to remove Mingwoo.org
23:22
and to never mention it again, just to add Mingwoo 64 next to it, for instance, users. I've seen from 1,000 to 2,000 installations during January.
23:41
From the one day's pass, I've corrected for February, it may be doubled for February. The only thing is that, well, I'll show you how you install on Windows quickly.
24:03
So you just fire your website, you go there, you fill in the doc, so you are forced to read the doc. You save, it's a zip file, and then you simply export it.
24:20
Simple. And then, you have several binaries which are going to be combined, and you have an install script for MCSource Seguin, if you wanted it. You have an install script for when you are also then,
24:41
you want only Windows stuff, I mean, you are outside of any POSIX layer, and that's why it's a batch file. Hey. And you have a script which you use for MCSource Seguin, which is going to switch which environment you use it. So 32-bit or 64-bit,
25:04
because this does not have multiple tool chains because of name caches. Yeah, so you go from that, the editing starts automatically. And you see something.
25:22
The thing is that, from downloading the zip file to, it's very fast because it was actually on a gigabit type, from downloading the zip file to running the script, it seems like as many as 50% of people give up. I have no idea why.
25:42
I mean, all my Jesus script is not very pretty, but come on, 50% of people? Maybe you should call it setup programming. I should try that, yeah. Well, when I take it, I just want to see if it takes pressure.
26:01
I actually, oh yeah, that was just putting a few things. But yeah, that's why I actually put the link inside the doc, and you're supposed to read it, but yeah, it's possible, and that's also why I want to put a GUI to make it.
26:22
I'm not sure it's a good idea to support people who will never read any documentation. That too. Well, I'm going to finish the video, so directly. For just winning stuff,
26:41
the thing is that if you look here in the background, you actually see many, many files. That's all the packages. That's what you get pretty much automatically. So it has a very nice common window, but apart from that, there's almost nothing involved to use it.
27:01
And that's elementary stuff. There's been some people who have been doing a nice job to make it work. It's not perfect. Like it's trying to say things in the home, like on Linux, but apart from that, it's almost working.
27:22
So yeah, that's it for the video. Now, the stats come from Apigee logs. I hadn't planned to have any stats at first,
27:41
and I've only been able to guess that from various bits here and there. It seems 3% of people are winning from Linux, and 5% from Seguin. That's really a guess for Seguin,
28:00
but I think it should be fair. I'm fairly confident in it. Almost no one gives feedback, of course. I have no idea if for most people it works or if they don't like it. So yeah, again, I really like feedback on that. I have had a few people who've been up here with it, though,
28:20
so I'm fairly confident. Yeah, western version of Windows for most people, and 64-bit for Apigee. It seems like almost everyone who views from Windows, who views the website from Windows, uses a 64-bit OS. I'm really expecting some people,
28:41
but not 90% or more. You're going to need an internet connection, at least. But yeah, they could do that, too.
29:06
I want to carry some more stats. I only guess from Apigee logs. So I see that many users, James. Actually, one which has been pretty interesting is wget, because that's the one I ship in the installer.
29:23
And I've seen, at some point, pop-ups. I think in January I've seen more. 90,000 downloads from wget, something like that, from wget on Windows. And 5,000 wget for Linux.
29:43
That's how I guess how many installations there are. Well, how they are balanced. For the number of installations here, I just check which files have been downloaded and how many times. And yeah, as I said, I want to put more stats in it.
30:02
I don't think much. I only need to know 32 bits, 64 bits, Windows, Linux, something else, and which version. And yeah, MCC or outside any. Because I'm a country, I'm really blind.
30:22
So, a few technical details. I've written a package manager from scratch. It's a very simple one. It was only meant to work like that. You install, you tap XVS, you store the list.
30:41
When you want to install, you remove the files which are in the list. You care not to remove files from another package, but that's it. Not exactly, but it's fully 90% of the work. And there's some weird things to handle theme links.
31:02
No, I hate theme links on Windows. I hate junctions. I even hate hard links. I had to go into ReactOS code to understand how to use junctions on Windows. Very happy about that. Took me like three days to do one junction.
31:24
And yeah, the package manager is actually ultimate code because, well, I know KML. It wasn't so bad tool for the job. And it compares to native code. And it works. You have a nice... You are...
31:41
They are supported most functions. You can write the same code on Linux and Windows. You're not going to have to do if, def, one or the other. I think I've watched it on Linux, made it work on Linux, switched to Windows to, like, I don't know, five, six hours to get everything working.
32:04
Yeah, base scripts, they are from Slapware. Actually, the reason is that... I'm going to try to frame that again. No, that's expected.
32:23
It's only an empty list. So, yeah. Just an example. That's for libarchive or bsd-tar.
32:42
The link changes. Actually, you can't see anything, actually. You change... You set a few paths, like you want to install lib or lib64. So, you keep... I've kept all that.
33:00
Changes, like ten lines, which are quickly passed. That's the same. That's simply extracting sources, getting to the term directory, and giving some safe... Usualtized permissions.
33:21
You won't configure. You configure it. Seems I've added... No, crap. That variable is not defined yet, but anyway. You change host. You set it. And then, you replace health when looking for the key table to sweep, with p.
33:43
And instead of calling Slapware's make-pkg, which takes a folder and makes an archive out of it, you call make.pkg, which is my tool.
34:02
Same here, quickly passed. Porting is very simple. It's like 30 seconds to one minute of work for porting the script itself.
34:22
Of course, that only works when the source can be ported. If your software has been packaged, or something you are interested in, you can just grab the logs,
34:41
check what is in it. You should see everything. Configure options. So if you want one, which is on the chart, if you see a warning, which looks dubious, you can fix it, too.
35:00
Let the theory sink. There is one less package to build for 64 bits, and you have half... You have 6,000 warnings for 62 bits, and 9,000 for 64. So that means that I think we're pretty lucky that most of the software actually were not.
35:24
There are probably bugs everywhere. For the difference, I don't know, maybe because you have different sizes for some types. I don't know. Yeah.
35:41
Actually, there's also 8264, which adds a dash fp to every c file it builds, and GCC is going to say, hey, that's useless for each and every file. There's probably only one or two hundred warnings.
36:02
Yeah, and I challenge subscribe to every bug tracker and start saying, hey, you need to fix that line with that thing. I like that people do it the other way around.
36:21
I'd like to. That means get the sources of wheel bits and look for that tree. It will mean there is a small patch right after that. So you look for it. If you like liborg, you see there's a patch to it. There's a change to it.
36:42
Read it and maybe apply it. Or if it's wrong, let me know. As for the shipment issues, there are in this system, when there's no post-computation, I cannot put that in the packages.
37:02
I am trying to have reproducible builds, but not fully reproducible builds, but at least something which is not just pure log that it works once. And that means I'm doing it from Linux. Everything is supposed to be post-compiled
37:21
because on Windows you are unlikely to be able to keep the same environment for more than a few, I don't know, Windows changes. You're not going to have five years of support for your Windows distribution.
37:44
Also, if you see something which uses libpng-config or anything similar, please convince the author to not use them anymore, to use pkg-config, because the other one does not handle post-compilation.
38:04
So we have one on the system. It's in slash user slash bin, and it's going to say use the Linux one. It's going to fail. But the last one I need to fix, I think is that libpng-c flags equal and call pkg-config.
38:22
That's it. It's a bit annoying to have to do that nowadays. So if you're missing the .exe extensions, well, not many. Yeah, that's the kind of thing which is very easy to fix.
38:41
libsoup was failing because it was using str-chr. It hadn't included string.h, and it was said to fail on warnings. Why it wouldn't fail anyway, but it was really a one-line change
39:00
which applies to everything. If that version of libsoup had been tried on to build for Windows, it would have been fixed at once. Another issue... OpenSSL. Yeah. Yeah, I agree.
39:22
We can flex a little bit. I think it does. Yeah, it should do. OpenSSL does a lot of weird things, including adding a semi from SSL 2.0.2 to the same one but uppercase. I don't think anyone caused that main page,
39:41
but anyway. Last one, which many people do, is that dl files usually go to libd and not libd, so next to .exe files. All right, yeah. So, push enter on the website, if you want to look for things,
40:01
or open a book, please do. Yeah, so you focus very much on getting all sorts of libraries compiled under it, but what I'm still interested in is the actual compiler and linker part solid, or is there still stuff to be solved there?
40:20
Yeah, it's different. It's working well. The main changes that are left are probably things like C++ ABI, PDB support, a few things like that. Otherwise, it works well. Yeah, so I tried to use around November last year,
40:41
for example, the linker, as an error, had been extracted in the past form, which wasn't quite easy. I think it was a problem. I haven't had issues with that. I reported them here. Actually, two reasons I use server.
41:01
Server 1, I use a server based on versions. I like to select that, because it's not too old, and not too new or easy. So I'm going to like updating versions, but at the same time, it should be fairly stable. The one thing with binitils,
41:21
is that you have two versions. You have the SSF1, and one which is meant for Linux, which has five number strings. And that one, you can't not use it for Windows. Sorry, so I'm trying to use Linux host, Windows target, obviously. Yeah, but I meant there are two binitils.
41:43
The SSF1 and the one used by most Linux distribution for their own purpose, I mean, to target Linux. And at some point, I made a mistake of using it. That will not work, because they have Linux specific patches, which are not yet upstream.
42:02
You can recognize them, because they are not like binitils 1.2.3, but 1.2.3, 0.5, 0.something and something. The ideal one, you cannot. Is there an option to treat include files,
42:21
open the case in sensitive, and cross compile it from Linux to Windows? I don't think so. I don't think that. So I filed a feature request. So I was trying to compile some Windows code, and it included the include first, the wrong case, and failed.
42:41
Basically, if you build with, while using NTFS3G on Linux, you have a mount option, which says... But that's what's on X for what? Yeah, yeah. So you need to be bound to that one. I don't think so.
43:00
When you run this Windows installer, how much downloads a lot of libraries? How big is the whole bunch of it? The... The number is you will be downloading like 50 to 60 megabytes, because it's actually XA,
43:22
LZMA2 compression. It compresses nicely, and I think it expands to 2050 something. Maybe a bit more, I need to check. Downloading is really small, but it can expand to three times more quite easily.
43:40
And 50 to 60 is for 32 bits, and you also get 50 to 60 for 64 bits. So twice.