C for Majora (it's partly object based since you can define structures but not inherit polymorph and such)
C++ for Sol (this one the other hand is object oriented)
Oh and Majora, just because you use an object oriented language often doesn't mean you have to use that feature. C++ allows you to write only C code but use some other non object oriented C++ features for example.
If you don't want interpreted languages avoid Python, Perl, PHP, Ruby and all those. Java is a gray area since it is compiled to machine code, but it's compiled to the Java architecture, not the native architecture (such as your processor).
If you want to easily port from one system to another, you should know there is no easy way to do it. And no one is going to blame you for only supporting one system anyway as long as it's free/libre software and you allow people to change the source so they can port it themselves. Write in a portable way so that it's easy to port to more systems as you need. If you use an OO language you can for example do this by creating an abstract class with all platform-dependent functions you need then you create derivate classes from this base class where you actually implement these platform-dependent functions. Example:
class basePlatformDependent
{
public:
virtual CreateWindow(int w, int h)=0;
.....
.....
}
class windowsPlatformDependent : basePlatformDependent
{
public:
CreateWindow()
{
//Code to create a window on the Windows platform
}
}
Just remember that there are other problems with porting. You have the processor architecture, as well as hardware architecture if you were to port to an embedded device (such as handhelds). It's NOT just "Windows, Mac and Linux".
wvWidgets help you with porting the GUI, but not port everything. It mostly do exactly that example code I wrote, but of course it's complete and has a lot more functions and platform-dependent classes (for GUI).
About language compatible. You really can't go wrong unless you choose a proprietary language/syntax (where there's only a proprietary compiler). If it's a free language it will most often work everywhere, and at least on GNU+Linux which is the most popular free operating system. The GNU Compiler Collection has loads of compilers; C, C++, Objective-C, Fortran and much more (and then it can also compile for a hell lot of architectures and platforms if you get the necessary patches). Choosing stuff like Game Maker, any MS product will most likely not work. And even if it would work, you should make sure it will in the future. Remember that MS don't own C and C++ just because they have a C and C++ compiler. C# is a gray area. I think there are free implementation of the dotNET platform, but I'm not sure how these are developed. If they are developed by reverse engineering; avoid them.
Using C and C++ depending on what you're doing is probably the wisest. And use scripting languages such as Python, Ruby, Perl and so on if you want to let people write plug-ins.
With all that said, I hope you both will release the code under a free software license.