Skip to content
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

Open
wants to merge 48 commits into
base: develop
Choose a base branch
from

Conversation

DeclanHoare
Copy link

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.

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!!
@DeclanHoare
Copy link
Author

DeclanHoare commented Sep 27, 2020

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.

@DeclanHoare DeclanHoare changed the title Resolve some build errors on Linux + GCC 10 Resolve build errors for CIDKernel, CIDLib, and tests on Linux + GCC 10 Sep 27, 2020
@DeclanHoare
Copy link
Author

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".

@DeanRoddey
Copy link
Owner

DeanRoddey commented Oct 28, 2020

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.

@DeanRoddey
Copy link
Owner

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".

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.

Copy link

@Kokomo1982 Kokomo1982 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

``

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.

3 participants