-
Notifications
You must be signed in to change notification settings - Fork 20
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
Resolve build errors for CIDKernel, CIDLib, and tests on Linux + GCC 10 #1
base: develop
Are you sure you want to change the base?
Conversation
CIDBuild no longer fails on Linux when the AppIcons and AppImages directories already exist.
This solves "should have been declared inside" errors. Two of the three changed functions were stubs anyway; the third has changed implementation to match.
It does nothing, because it takes an irrelevant MSVC warning number. But, this resolves many compile errors.
This resolves "does not give a valid preprocessing token" errors.
I am not sure about this one, because the comparator is being used to compare a TElem with a TKey. I have to assume, looking at the context, that TKey is required to be a descendant of TElem, in which case, I think the TKey& argument will decay to a TElem&.
This enables a change in the header include order in CIDLib.hpp so that FundStack can be defined before the streams, which the operators depend on.
This is a copy of facCIDLib() that returns the facility as a TModule, allowing it to be declared earlier on.
This allows it to be included after the definition of TError.
This resolves "template argument 1 is invalid".
I'm not really happy about this but I couldn't find any way to re-order the declarations so that the class could declare the operators as friends.
CIDLib.cpp now compiles!
CIDLib_Area.cpp now compiles
This matches Windows. CIDLib_Color.cpp now compiles.
CIDLib (the project) now links successfully on Linux!!
This matches how they are defined and prevents a link error.
This matches Windows
This matches Windows (I think). The CIDKernel tests now finish without crashing (but do not pass) when running *outside* of GDB, but crash during the events test suite with "The operation timed out" inside of GDB.
A small amount of code is copied from the Windows implementation, but most of this does nothing.
I've added many commits enabling CIDLib to build, as well as TestKernel (which I gather already worked on your end, but it wasn't building for me) and TestCIDLib. However, the latter test suite doesn't get anywhere, because it needs bWaitEvOrDeath to be implemented before it can start, and I've only stubbed that so it would link. |
I've made another branch with more changes on top of these, that implement bWaitMultiple and bWaitEvOrDeath, as well as some other fixes, so that TestCIDLib is able to run a lot of the way through, eventually crashing at "Testing Files". |
Oh, I never realized you'd done a pull request. I've never gotten one before so I never really was watching for them, and I guess I don't have anything set up to e-mail me or anything. I'll try to take a look at this before too long here. Sorry for the delay. I'll also have to figure out how to deal with pull requests since I've never gotten one before. I won't incorporate any of these until after the open source release though, since I need to get to that point first. |
A lot of these changes ended up being separately implemented when I did the work to turn off the 'relaxed' mode that the MS compiler stupidly defaulted to and I never realized all those years. Much of the changes you did above were related to that and how templates were resolved. Otherwise, I've started just going through the check ins one at a time and pulling stuff over that way, since too much has changed to want to try to do it via merge. I've almost got them all completed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
``
This resolves some errors I got while trying to run CIDBuild. All the changes are fairly small but as a side-effect, I implemented TFindInfo::m_bIsDir for Linux, because without it, CIDBuild would fail after its first run, saying it could not create the AppIcons and AppImages directories in Output once they already existed. With these changes I am able to build CIDKernel, although I still get errors trying to build the CIDLib project.